본문 바로가기
기타/Windows

WSL2에서 USB 장치 사용하기

by makepluscode 2024. 8. 3.
반응형

WSL2에서 USB 장치 사용하기

이번 포스팅에서는 WSL2에서 USB 장치를 사용하는 방법을 구체적으로 설명합니다.

WSL2에서 USB 장치 사용하기

1. 소개

Windows Subsystem for Linux 2 (WSL2)는 Windows 환경에서 Linux를 사용할 수 있게 해주는 강력한 도구입니다. 최근 WSL2에 USB 장치 지원 기능이 추가되어, 개발자들은 Windows에 연결된 USB 장치를 Linux 환경에서 직접 사용할 수 있게 되었습니다. 이는 임베디드 시스템 개발, 하드웨어 디버깅, IoT 프로젝트 등에서 매우 유용하게 활용될 수 있습니다.

2. 테스트 환경

본 가이드에서는 다음과 같은 환경에서 테스트를 진행했습니다:

  • Windows 11 (Build 22631)
  • Windows 내부의 WSL2
  • 우분투 리눅스 22.04

참고: WSL2의 USB 지원 기능은 Windows 11 Build 22000 이후 버전에서 사용 가능합니다.

3. 필요한 도구

WSL2에서 USB 장치를 사용하기 위해서는 usbipd-win이라는 도구가 필요합니다. 이 도구는 USB/IP 프로토콜을 사용하여 USB 장치를 네트워크를 통해 공유할 수 있게 해줍니다. usbipd-win 설치 방법은 다음과 같습니다.

  1. usbipd-win GitHub 페이지에서 최신 버전을 다운로드합니다.
  2. 다운로드한 설치 파일을 실행하여 설치를 완료합니다.
  3. 설치 후 시스템을 재부팅하여 변경 사항을 적용합니다.

4. USB 장치 연결 과정

4.1 사용 가능한 USB 장치 목록 확인

먼저, Windows PowerShell을 관리자 권한으로 실행한 후, 다음 명령어를 사용하여 연결된 USB 장치 목록을 확인합니다:

usbipd list

아래는 실제 제 PC에서 usbpid list 를 실행한 결과 입니다. BUSID 1-8의 USB 디바이스를 WSL에서 사용해보려고 합니다.

PS C:\> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-8    0c72:0011  PCAN-USB Pro FD CAN, PCAN-USB Pro FD LIN                      Not shared
...

이 명령어는 현재 시스템에 연결된 모든 USB 장치의 목록을 보여줍니다. 각 장치에 대한 BUSID, VID:PID, 장치 이름, 그리고 현재 상태 정보를 확인할 수 있습니다.

4.2 USB 장치 공유 설정

목록에서 WSL2와 공유하고 싶은 장치의 BUSID를 확인한 후, 다음 명령어를 사용하여 해당 장치를 공유 상태로 설정합니다:

usbipd bind --busid <BUSID>

아래는 실제 제 PC에서 usbpid list 를 실행한 결과 입니다. bind 명령 실행 후에는 STATE가 Shared로 바뀌었습니다.

PS C:\> usbipd bind --busid 1-8
PS C:\> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-8    0c72:0011  PCAN-USB Pro FD CAN, PCAN-USB Pro FD LIN                      Shared

이 명령어를 실행하면 선택한 USB 장치가 공유 가능한 상태로 변경됩니다. 변경 후 usbipd list 명령어를 다시 실행하여 해당 장치의 상태가 "Shared"로 변경되었는지 확인할 수 있습니다.

4.3 WSL2에 USB 장치 연결

이제 공유된 USB 장치를 WSL2에 연결할 수 있습니다. 다음 명령어를 사용하여 WSL2에 장치를 연결합니다:

usbipd attach --wsl --busid <BUSID>

아래는 실제 제 PC에서 usbpid list 를 실행한 결과 입니다. 1-8을 wsl에 attach 시켰습니다.

PS C:\> usbipd attach --wsl --busid 1-8

이후에 wsl (우분투 22.04)에서 확인해보면 해당 usb가 attach 된 것을 확인할 수 있습니다.

PS C:\> usbipd attach --wsl --busid 1-8
usbipd: info: Using WSL distribution 'Ubuntu-22.04' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Using IP address 172.22.160.1 to reach the host.

이 명령어는 지정된 BUSID의 USB 장치를 WSL2에 연결합니다. 연결이 성공적으로 이루어지면, WSL2 내부에서 해당 장치를 사용할 수 있게 됩니다.

5. WSL2에서 USB 장치 사용하기

USB 장치가 성공적으로 WSL2에 연결되면, WSL2 환경 내에서 다음과 같은 방법으로 장치를 확인하고 사용할 수 있습니다:

  1. WSL2 터미널을 열고 다음 명령어를 실행하여 연결된 USB 장치를 확인합니다:
  2. lsusb

WSL2에서 USB 장치 사용하기

 

WSL2의 USB 지원 기능은 Windows와 Linux 환경 사이의 경계를 더욱 흐리게 만들어 개발자들에게 큰 이점을 제공합니다.

참고 자료

반응형