usbipd 사용법 (WSL로 usb를 연결할때 사용하는거)

KiJungKong·2023년 12월 24일
0

기초적인 사용법

https://github.com/dorssel/usbipd-win/releases 들어가서

usbipd-win_[버전].msi를 설치한다.

제대로 설치 안됐을 수도 있어 파워셀상에서 한번 더 설치한다.

winget install --interactive --exact dorssel.usbipd-win

[출처: https://learn.microsoft.com/ko-kr/windows/wsl/connect-usb]

그리고 WSL상에서

sudo apt install linux-tools-virtual hwdata

sudo update-alternatives --install /usr/local/bin/usbip usbip ls /usr/lib/linux-tools/*/usbip | tail -n1 20

[출처: https://choiseokwon.tistory.com/]

전부 설치 완료되면 WSL은 일단 나가고 파워셀을 나갔다 다시 들어간다.

파워셀상에서

usbipd list

하면


이게 뜬다 맨 왼쪽 BUSID를 주목한다. 3-2에 Serial이라고 써져있는거 보니 이거를 WSL에 연결하면 될 것 같다.

usbipd bind --force -b 3-2

3-2을 윈도우상에서 사용 중이면 연결이 안되기 때문에 bind명령을 통해 usbipd가 usb 장치를 먼저 점유하도록 한다.

usbipd wsl attach -b 3-2

attach 명령으로 3-2을 WSL에 연결한다.

제대로 연결 되었는지 확인하기 위해

usbipd list


맨 오른쪽에 STATE를 주목한다 Attached라고 써져있는 것을 보니 제대로 연결되었다

WSL에 다시 들어간다.

lsusb


Bus 001 Device 002에 제대로 잡힌 것을 볼 수 있다.

파워쉘 스크립트

이 번거로운 것들을 한번에 하는 파워쉘 스크립트를 만들었다.

wslusb.ps1는 usb를 연결할때 wslusbdet.ps1는 usb를 해제할때 사용하며

관리자 권한이 필요하기 때문에 터미널을 관리자 권한으로 실행하도록 설정해놓고 사용하면 편리하다.

# wslusb.ps1
echo "연결된 USB의 list를 출력합니다."
echo ""
usbipd list
echo ""
[string]$usbipdBUSID = Read-host "WSL에 연결할 USB의 BUSID를 입력하세요"
echo ""
usbipd bind --force -b $usbipdBUSID
usbipd wsl attach -b $usbipdBUSID
echo ""
echo "연결된 USB의 list를 출력합니다."
echo ""
usbipd list
# wslusbdet.ps1
echo "연결된 USB의 list를 출력합니다."
echo ""
usbipd list
echo ""
[string]$usbipdBUSID = Read-host "WSL로부터 되찾을 USB의 BUSID를 입력하세요"
echo ""
usbipd wsl detach -b $usbipdBUSID
Start-Sleep -Seconds 5
usbipd unbind -b $usbipdBUSID
echo ""
echo "연결된 USB의 list를 출력합니다."
echo ""
usbipd list

만들어 놓고 프로필 설정 파일인 $profile에 alias를 등록해서 사용하면 매우 편리하다.

vscode로 $profile 수정

code $profile

$profile에 추가할 내용

# Set-alias [단축어] [실행파일]

Set-alias wslusb C:\tools\usbipd\wslusb.ps1
Set-alias wslusbdet C:\tools\usbipd\wslusbdet.ps1

추가하고 나면 . $profile를 입력한다

. $profile

실행

# 연결
wslusb
# 제거
wslusbdet

연결과정

결과

해제 과정

결과

그리고 나서

dmesg | grep ttyUSB

이를 실행하면 USB 장치 이름(ex. ttyUSB0)을 확인 가능하다.

profile
공기정

0개의 댓글

관련 채용 정보