USB 디바이스 연결

이 가이드에서는 USB/IP 오픈 소스 프로젝트인 usbipd-win을 사용하여 WSL 2에서 실행되는 Linux 배포판에 USB 디바이스를 연결하는 데 필요한 단계를 안내합니다.

Windows 장치에서 USB/IP 프로젝트를 설정하면 Arduino 플래시 또는 스마트 카드 리더 액세스와 같은 공통 개발자 USB 시나리오를 사용할 수 있습니다.

필수 조건

  • Windows 11 실행(빌드 22000 이상) (Windows 10 지원 가능, 아래 참조)
  • x64 프로세서가 있는 컴퓨터가 필요합니다. (x86 및 Arm64는 현재 usbipd-win에서 지원되지 않습니다).
  • WSL이 설치되고 최신 버전으로 설정됩니다.
  • Linux 배포판이 설치되고 WSL 2로 설정됩니다.

참고 항목

Windows 버전 및 빌드 번호를 확인하려면 Windows 로고 키 + R을 선택하고, winver를 입력하고, 확인을 선택합니다. 시작>설정>Windows 업데이트>업데이트 확인을 선택하여 최신 Windows 버전으로 업데이트할 수 있습니다. Linux 커널 버전을 확인하려면 Linux 배포판을 열고 uname -a 명령을 입력합니다. 최신 커널로 수동으로 업데이트하려면 PowerShell을 열고 'wsl --update' 명령을 입력합니다.

Important

이제 WSL은 Microsoft Store를 통해 Windows 10 및 Windows 11을 모두 지원하므로 Windows 10 사용자는 원본에서 컴파일할 필요 없이 최신 커널 버전에 액세스할 수 있습니다. Microsoft Store의 WSL은 이제 Windows 10 및 11에서 일반 공급되며, Microsoft Store에서 지원되는 WSL 버전으로 업데이트하는 방법에 대한 정보를 참조하세요. Microsoft Store 지원 버전의 WSL로 업데이트할 수 없고 커널 업데이트를 자동으로 수신할 수 없는 경우 USBIP-WIN 프로젝트 리포지토리 에서 USB 디바이스를 WSL 2에서 실행되는 Linux 배포판에 연결하는 방법에 대한 지침은 사용자 고유의 USBIP 지원 WSL 2 커널을 빌드합니다.

USBIPD-WIN 프로젝트 설치

USB 디바이스 연결에 대한 지원은 WSL에서 기본적으로 사용할 수 없으므로 오픈 소스 usbipd-win 프로젝트를 설치해야 합니다.

  1. usbipd-win 프로젝트의 최신 릴리스 페이지로 이동합니다.
  2. 설치 관리자를 다운로드할 .msi 파일을 선택합니다. (다운로드한 설치 프로그램을 신뢰하는지 확인하라는 경고가 표시될 수 있습니다.)
  3. 다운로드한 usbipd-win_x.msi 설치 관리자 파일을 실행합니다.

참고 항목

또는 Windows 패키지 관리자(winget)를 사용하여 usbipd-win 프로젝트를 설치할 수도 있습니다. 이미 winget을 설치한 경우, winget install --interactive --exact dorssel.usbipd-win 명령을 사용하여 usbipd-win을 설치합니다. --interactive를 종료하면 드라이버를 설치하는 데 필요한 경우 winget이 컴퓨터를 즉시 다시 시작할 수 있습니다.

그러면 다음이 설치됩니다.

  • 서비스 이름 usbipd(표시 이름: USBIP 장치 호스트) Windows의 서비스 앱을 사용하여 이 서비스의 상태를 확인할 수 있습니다.
  • 명령줄 도구 usbipd입니다. 이 도구의 위치는 PATH 환경 변수에 추가됩니다.
  • 모든 로컬 서브넷이 서비스에 연결하도록 허용하는 usbipd라는 방화벽 규칙. 이 방화벽 규칙을 수정하여 액세스 제어를 미세 조정할 수 있습니다.

USB 디바이스 연결

USB 디바이스를 연결하기 전에 WSL 명령줄이 열려 있는지 확인합니다. 이렇게 하면 WSL 2 경량 VM이 활성 상태로 유지됩니다.

참고 항목

이 문서에서는 사용자가 설치되어 있거나 usbipd-win 4.0.0 그 이상 설치되어 있다고 가정합니다.

  1. 관리자 모드에서 PowerShell을 열고 다음 명령을 입력하여 Windows에 연결된 모든 USB 디바이스를 나열합니다. 디바이스가 나열되면 WSL에 연결하려는 디바이스의 버스 ID를 선택하고 복사합니다.

    usbipd list
    
  2. USB 디바이스를 연결하기 전에 WSL에 연결할 수 있도록 디바이스를 공유하는 데 명령을 usbipd bind 사용해야 합니다. 이렇게 하려면 관리자 권한이 필요합니다. WSL에서 사용하려는 디바이스의 버스 ID를 선택하고 다음 명령을 실행합니다. 명령을 실행한 후 디바이스가 명령을 usbipd list 사용하여 다시 공유되는지 확인합니다.

    usbipd bind --busid 4-4
    
  3. USB 디바이스를 연결하려면 다음 명령을 실행합니다. (관리자 권한 관리자 프롬프트를 더 이상 사용할 필요가 없습니다.) WSL 2 경량 VM을 활성 상태로 유지하기 위해 WSL 명령 프롬프트가 열려 있는지 확인합니다. USB 디바이스가 WSL에 연결되어 있으면 Windows에서 사용할 수 없습니다. WSL에 연결되면 WSL 2로 실행되는 모든 배포에서 USB 디바이스를 사용할 수 있습니다. 를 사용하여 디바이스가 연결되어 있는지 확인합니다 usbipd list. WSL 프롬프트에서 실행 lsusb 하여 USB 디바이스가 나열되고 Linux 도구를 사용하여 상호 작용할 수 있는지 확인합니다.

    usbipd attach --wsl --busid <busid>
    
  4. Ubuntu(또는 원하는 WSL 명령줄)를 열고 명령을 사용하여 연결된 USB 디바이스를 나열합니다.

    lsusb
    

    방금 연결한 디바이스가 표시되고 일반 Linux 도구를 사용하여 디바이스와 상호 작용할 수 있어야 합니다. 애플리케이션에 따라 루트가 아닌 사용자가 디바이스에 액세스할 수 있도록 udev 규칙을 구성해야 할 수 있습니다.

  5. WSL에서 디바이스 사용을 완료한 후에는 USB 디바이스의 연결을 물리적으로 끊거나 PowerShell에서 다음 명령을 실행할 수 있습니다.

    usbipd detach --busid <busid>
    

작동 방식에 대한 자세한 내용은 GitHub의 Windows 명령줄 블로그usbipd-win 리포지토리를 참조하십시오.

비디오 데모는 WSL 2: USB 디바이스 연결(탭 및 공간 표시)을 참조하십시오.