AI 탐구노트

윈도우 WSL에서 외장 USB 카메라 인식 본문

기술 팁

윈도우 WSL에서 외장 USB 카메라 인식

42morrow 2024. 8. 7. 10:13

 

Windows에서 Linux를 사용하기 위해서는 WSL(Windows Subsystem for Linux) 을 이용해야 합니다.

최근에는 초기보다 훨씬 안정화되어 생각보다 손쉽게 구성할 수 있고 기능 또한 잘 작동합니다. 

 

다만, 본체가 되는 Windows에서 손쉽게 사용하던 USB 카메라 등을 WSL 상의 Linux에서는 제대로 인식시켜 사용하기 어렵다는 문제가 있습니다. 이것을 Windows와 WSL 간의 가상 네트워크를 이용해 USB 연결을 지원하는 방법이 있는데 그때 사용되는 것이 USB/IP 인데 Windows와 WSL 상의 Linux에서 각각 이를 지원해야 합니다. 각각의 도구를 설치하고 연결하는 과정을 정리해 보고자 합니다. 

 

 

참고로 제가 테스트한 환경은 다음과 같으며 Windows Console은 Powershell (admin 권한)으로 진행됩니다. 

  • Windows 11 
  • WSL 2 - Ubuntu 20.04 LTS
  • usbipd-win 4.3.0 (최신)

 

Win) usbipd 도구 설치

  • 링크에서 usbipd-win 최신 설치파일 ('*.msi') 다운로드 및 설치, 재부팅

 

WSL) USB/IP 용 사용자 도구 및 USB 하드웨어 식별자 DB 설치

$ sudo apt install linux-tools-5.4.0-77-generic hwdata
$ sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

 

Win) USB 장치 bind 하기

  • 아래 예) BUSID 1-3의 USB Camera 의 상태가 Not Shared 에서 Shared로 변경됨을 확인할 것
PS D:\project> usbipd list
Connected:
BUSID  DEVICE                                                        STATE
1-3    Microsoft LifeCam HD-3000, Microsoft® LifeCam HD-3000         Not shared
1-6    Integrated Camera                                             Shared
1-14   Realtek Bluetooth Adapter                                     Not shared
1-18   알 수 없는 USB 장치(포트 다시 설정 실패)                      Not shared
3-2    USB 입력 장치                                                 Not shared
3-3    USB 입력 장치                                                 Not shared


PS D:\project> usbipd bind --busid 1-3
PS D:\project> usbipd list
Connected:
BUSID  DEVICE                                                        STATE
1-3    Microsoft LifeCam HD-3000, Microsoft® LifeCam HD-3000         Shared
1-6    Integrated Camera                                             Shared
1-14   Realtek Bluetooth Adapter                                     Not shared
1-18   알 수 없는 USB 장치(포트 다시 설정 실패)                      Not shared
3-2    USB 입력 장치                                                 Not shared
3-3    USB 입력 장치                                                 Not shared

 

 

Win) usb 장치 attatch 하기

  • 참고) wsl에 붙이면 윈도우 사용 불가. dettach하면 WSL에서 사용 불가
# bind한 장치를 attach하기
PS D:\project> usbipd attach --wsl --busid 1-3
usbipd: info: Using WSL distribution 'Ubuntu-20.04' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Using IP address 172.20.240.1 to reach the host.

# 목록 확인 
PS D:\project> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-3    045e:0810  Microsoft LifeCam HD-3000, Microsoft® LifeCam HD-3000         Attached
1-6    04f2:b604  Integrated Camera                                             Shared
1-14   0bda:b023  Realtek Bluetooth Adapter                                     Not shared
2-4    0bda:8153  Realtek USB GbE Family Controller                             Not shared
3-2    12c9:1017  USB 입력 장치                                                 Not shared
3-3    0483:5222  USB 입력 장치                                                 Not shared

 

WSL) 카메라 장치 인식 확인

# usb 장치 확인
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 045e:0810 Microsoft Corp. LifeCam HD-3000
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# 장치 확인
$ ll /dev/video*
crw-rw---- 1 root video 81, 0 Jul 24 16:27 /dev/video0
crw-rw---- 1 root video 81, 1 Jul 24 16:27 /dev/video1

$ v4l2-ctl --list-devices
Microsoft® LifeCam HD-3000: Mi (usb-vhci_hcd.0-1):
        /dev/video0
        /dev/video1
        /dev/media0

 

 

관련정보

'기술 팁' 카테고리의 다른 글

FastHTML  (0) 2024.08.14
유튜브 영상/음성 다운로드 받기  (0) 2024.08.09
우분투에서 shutter (스크린캡처) 툴 단축키 등록  (0) 2024.08.09
Intel 내장 GPU로 xorg 설정  (0) 2024.08.09
Conda 가상 환경 만들기  (0) 2024.08.05