WSL2를 사용하다 보면, 아쉬운 점 중 하나가 PC에 연결된 hardware 인식이 어렵다는 점이다.
VirtualHere를 이용하면 Windows에 연결된 USB device를 WSL2에서 인식할 수 있다.
WSL2 kernel 버전 확인 및 업데이트
VirtualHere을 이용하기 위해서는 Kernel이 USB/IP를 지원해야 한다. WSL2 Linux kernel 5.10.60.1 버전 이전까지만 하더라도 정식 배포 버전에는 USB/IP를 지원해주지 않아서 kernel을 수정하여 USB/IP를 활성화시켜줘야 했다.
하지만 kernel 5.10.60.1부터는 USB/IP를 지원해 주기 시작했다. WSL command창에서 아래 명령어를 통해 버전을 확인해보자.
$ uname -r
5.10.60.1-microsoft-standard-WSL2 #5.10.60.1 또는 이상 필요
만약 kernel 버전이 5.10.60.1보다 낮다면, Windows PowerShell에서 아래 명령어를 통해 WSL kernel 업데이트를 수행해야한다.
PS> wsl --update
VirtualHere USB Server
아래 link에서 Windows USB Server를 다운로드 받는다.
다운로드 받은 vhusbdwin64.exe를 실행하면 다음과 같은 화면이 실행된다.
VirtualHere USB Client
아래 명령어를 통해 Linux USB Client를 다운로드 받고 USB client를 실행시킨다.
참고로 다운로드 받은 USB Client는 GUI 버전이다. ("WSL설치 (WINDOWS에서 Linux GUI apps 이용하기" 참조)
* console client 사용법은 Reference에 link되어 있는 VirtualHere homepage 참조
$ wget https://www.virtualhere.com/sites/default/files/usbclient/vhuit64
$ chmod +x ./vhuit64
$ sudo ./vhuit64
아래와 같이 GUI화면에 Windows에 연결된 USB 항목들이 보일 것이다. 이 중에서 원하는 device를 선택하여 "Use this device"를 선택한다. (예시를 위해 smartphone을 연결해보았다.)
마지막으로 WSL terminal에서 lsusb명령어를 통해 usb가 인식된 것을 확인한다.
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy series, misc. (MTP mode) # 선택한 device가 인식된 것이 보인다.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Reference
'기타 > WSL' 카테고리의 다른 글
WSL설치 (WINDOWS에서 Linux GUI apps 이용하기) (0) | 2022.02.10 |
---|