USB 디바이스 연결

이 가이드에서는 USB/IP 오픈 소스 프로젝트 usbipd를 사용 하 여 wsl 2에서 실행 되는 Linux 배포에 usb 장치를 연결 하는 데 필요한 단계를 안내 합니다.

Windows 컴퓨터에서 USB/IP 프로젝트를 설정 하면 Arduino 플래시 또는 스마트 카드 판독기 액세스와 같은 일반적인 개발자 USB 시나리오를 사용할 수 있습니다.

필수 구성 요소

  • 실행 중인 Windows 11 (빌드 22000 이상). (Windows 10 지원이 가능 합니다. 아래 참고를 참조 하세요.)
  • Linux 배포가 설치 되었으며 WSL 2로 설정되어 있습니다.
  • Linux 커널 5.10.60.1이상을 실행 하 고 있습니다.

참고

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

중요

Windows 11는 wsl 2에서 실행 되는 Linux 배포에 USB 장치를 연결 하는 데 권장 됩니다. 그러나 Windows 10를 사용 하 여 USB 장치를 연결 하는 데 사용할 수 있습니다. USBIPD-WIN 프로젝트 리포지토리의 지침에 따라 사용자 고유의 aip 사용 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(표시 이름:을 (를) 호출 하는 서비스입니다. Windows에서 서비스 앱을 사용 하 여이 서비스의 상태를 확인할 수 있습니다.
  • 명령줄 도구 usbipd 입니다. 이 도구의 위치가 PATH 환경 변수에 추가 됩니다.
  • usbipd모든 로컬 서브넷이 서비스에 연결 될 수 있도록 하기 위해 호출 되는 방화벽 규칙입니다. 액세스 제어를 미세 조정 하도록이 방화벽 규칙을 수정할 수 있습니다.

Linux에서 설치 되지 않은 IP 도구 및 하드웨어 데이터베이스 설치

USB/IP 프로젝트 설치가 완료 되 면 사용자 공간 도구와 USB 하드웨어 식별자의 데이터베이스를 설치 해야 합니다.

  1. Ubuntu (또는 원하는 Linux 배포)에서 다음 명령을 실행 합니다.

    sudo apt install linux-tools-5.4.0-77-generic hwdata
    
  2. /etc/sudoersLinux 배포와 연결 된 파일을 편집 해야 합니다. 이 파일은 액세스 권한을 제어 하 고 다음 단계에서는 명령줄의 루트를 사용 하 여 명령에 액세스할 수 usbip 있습니다. sudoers명령을 사용 하 여 Nano에서 파일을 엽니다.

    sudo visudo
    
  3. 파일에서 sudoers 섹션을 찾고 secure_path 도구 경로 위치 ( /usr/lib/linux-tools/5.4.0-77-generic )를 sudoers에 추가 해야 합니다. 그러면 줄이 다음과 같이 표시 됩니다.

    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
    

이 시점에서 서비스는 Windows에서 실행 되며 USB 장치를 공유 하 고, 필요한 도구는 wsl에 설치 되어 공유 장치에 연결 됩니다.

USB 장치 연결

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

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

    usbipd wsl list
    
  2. WSL에 연결할 장치의 버스 ID를 선택 하 고이 명령을 실행 합니다. Sudo 명령을 실행 하기 위해 암호를 입력 하 라는 메시지가 표시 됩니다.

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

    lsusb
    

    방금 연결한 장치가 표시 되 고 일반 Linux 도구를 사용 하 여 상호 작용할 수 있습니다. 응용 프로그램에 따라 루트가 아닌 사용자가 장치에 액세스할 수 있도록 udev 규칙을 구성 해야 할 수도 있습니다.

  4. WSL에서 장치를 사용 하 여 완료 한 후에는 USB 장치를 물리적으로 분리 하거나 관리자 모드의 PowerShell에서이 명령을 실행할 수 있습니다.

    usbipd wsl detach --busid <busid>
    

이 기능이 작동 하는 방식에 대 한 자세한 내용은 Windows 명령줄 블로그GitHub에서 usbipd-win 리포지토리를 참조 하세요.

비디오 데모를 보려면 Wsl 2: 커넥트 USB 장치 (탭 Vs 공백 표시)를 참조 하세요.