USB 디바이스 연결

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

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

사전 요구 사항

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

참고

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

중요

WSL 2에서 실행되는 Linux 배포판에 USB 디바이스를 연결하는 데 Windows 11을 사용하는 것이 좋습니다. 그러나, Windows 10 USBIPD-WIN 프로젝트 리포지토리의 지침에 따라 고유한 USBIP 사용 WSL 2 커널을 빌드하여 USB 디바이스를 연결하는 데 사용할 수 있습니다.

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라는 방화벽 규칙. 이 방화벽 규칙을 수정하여 액세스 제어를 미세 조정할 수 있습니다.

Linux에서 USBIP 도구 및 하드웨어 데이터베이스 설치

USB/IP 프로젝트 설치가 완료되면 사용자 공간 도구와 USB 하드웨어 식별자의 데이터베이스를 설치해야 합니다. 이러한 지침은 Ubuntu를 위한 것입니다. 다른 배포에는 다른 usbip 클라이언트 패키지가 필요할 수 있습니다.

Ubuntu에서 다음 명령을 실행합니다.

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

이 시점에서 USB 디바이스를 공유하기 위해 Windows에서 서비스가 실행되고 있으며 공유 디바이스에 연결하기 위해 필요한 도구가 WSL에 설치됩니다.

USB 디바이스 연결

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

  1. 관리자 모드에서 PowerShell을 열고 명령을 입력하여 Windows에 연결된 모든 USB 디바이스를 나열합니다.

    usbipd wsl list
    
  2. WSL에 연결하려는 디바이스의 버스 ID를 선택하고 이 명령을 실행합니다. WSL에서 sudo 명령을 실행할 비밀번호를 묻는 메시지가 표시됩니다. 연결할 Linux 배포판은 기본 배포여야 합니다. (기본 배포를 변경하려면 WSL용 기본 명령 문서를 참조하십시오.)

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

    lsusb
    

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

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

    usbipd wsl detach --busid <busid>
    

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

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