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 설치 방법은 다음과 같습니다.
- usbipd-win GitHub 페이지에서 최신 버전을 다운로드합니다.
- 다운로드한 설치 파일을 실행하여 설치를 완료합니다.
- 설치 후 시스템을 재부팅하여 변경 사항을 적용합니다.
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 환경 내에서 다음과 같은 방법으로 장치를 확인하고 사용할 수 있습니다:
- WSL2 터미널을 열고 다음 명령어를 실행하여 연결된 USB 장치를 확인합니다:
lsusb
WSL2의 USB 지원 기능은 Windows와 Linux 환경 사이의 경계를 더욱 흐리게 만들어 개발자들에게 큰 이점을 제공합니다.
참고 자료
'기타 > Windows' 카테고리의 다른 글
윈도우용 Git 설치하기 (0) | 2024.07.26 |
---|---|
윈도우 키를 맥북처럼 매핑하기 (0) | 2024.07.26 |
윈도우에서 키보드 변경하기 (0) | 2024.03.16 |
WSL 백업하고 다른 위치에서 복원하기 (0) | 2024.01.20 |
WSL 우분투 22.04 실행 문제 해결하기 (0) | 2024.01.20 |
WSL에서 NVIDIA GPU 드라이버 설치하기 (0) | 2023.12.27 |
WSL2 에서 Docker 설치와 연결문제 (0) | 2023.12.16 |
WSL 에서 Ubuntu 22.04 설치하기 (0) | 2023.04.18 |