Windows 11에서 Linux용 Windows 하위 시스템의 USB 장치를 연결하는 방법

click fraud protection

Windows 11에서 Linux용 Windows 하위 시스템의 USB 장치를 연결하고 직접 작업할 수 있습니다.

빠른 링크

  • usbipd-win이란 무엇입니까?
  • Linux용 Windows 하위 시스템에서 USB 장치 연결
  • GUI 대안이 있습니까?

마이크로소프트가 도입한 Linux용 Windows 하위 시스템 (WSL) 가상 머신을 설정할 필요 없이 Windows 설치에서 바로 Linux 앱을 실행할 수 있도록 지원했습니다. WSL은 복잡한 호환성 계층이기 때문에 몇 가지 제한 사항이 있었습니다. 초기 구현은 완전한 Linux 커널을 사용하지 않았기 때문에 여러 응용 프로그램이 호환성 문제에 직면했습니다. 버전 2는 많은 개선을 이루었지만 여전히 빠진 것이 있습니다. 바로 물리적 USB 장치 연결 지원입니다.

활성 Linux용 Windows 하위 시스템 사용자이고 WSL에서 실행되는 Linux 인스턴스에서 바로 USB 장치에 액세스하려는 경우 상당한 진전 이 앞에서. 오픈 소스에 대한 Microsoft의 기여 덕분에 usbipd-win 이제 WSL에서 USB 패스스루 액세스를 즐길 수 있습니다. 이는 최종 사용자가 Linux용 Windows 하위 시스템에서 Android 장치를 플래싱하는 것과 같은 작업을 수행할 수 있음을 의미합니다. 그렇지 않으면 Linux 하위 시스템에서 지원하지 않습니다.

usbipd-win이란 무엇입니까?

usbipd-win 프로젝트는 로컬로 연결된 USB 장치를 Hyper-V 게스트 및 WSL2를 포함하여 다른 시스템에 공유하기 위한 솔루션을 만드는 것입니다. 그러나 공식 WSL2 Linux 커널은 다음을 지원하지 않았습니다. USB/IP 프로토콜, 사용자가 커널을 직접 빌드해야 합니다.

WSL 커널 버전 5.10.60.1부터 필수 매개변수가 즉시 구성되므로 수동 재컴파일이 필요하지 않습니다. Microsoft는 또한 Windows에서 USB 장치를 공유하고 WSL 내에서 원활하게 연결할 수 있도록 프로젝트에 명령줄 인터페이스를 제공했습니다.

Linux용 Windows 하위 시스템에서 USB 장치 연결

시작하기 전에 실행 중인지 확인하세요. 윈도우 11 모든 WSL 업데이트를 설치했습니다. 앞서 언급했듯이 이 작업을 수행하려면 WSL 2 Linux 배포판이 필요합니다.

  1. WSL 내에서 다음 명령을 실행합니다.
    uname -a
    5.10.60.1 이상의 커널 버전이 표시되면(아래 참조) 잘 진행된 것입니다.
    • 설치된 커널 버전이 5.10.60.1보다 오래된 경우 다음 명령을 사용하여 업데이트할 수 있습니다.
      wsl --shutdown
      wsl --update
  2. usbipd-win 프로젝트의 GitHub 리포지토리로 이동합니다. 그 다음에 최신 릴리스 다운로드 및 설치.
    • 최신 버전의 usbipd-win은 Windows 하드웨어 호환성 프로그램 인증 드라이버 덕분에 자동 드라이버 설치를 지원합니다. 또한 지원합니다 Dev 채널 빌드 윈도우 11의.
    • GitHub의 릴리스 페이지 외에도 다음을 사용하여 앱을 설치하고 업데이트할 수 있습니다. Windows 패키지 관리자 CLI (일명 날개).
      winget install--interactive --exact dorssel.usbipd-win
  3. USB/IP용 사용자 공간 도구와 USB 하드웨어 식별자 데이터베이스를 설치합니다. WSL에서 Ubuntu를 실행하는 경우 다음 명령을 실행합니다.
    sudo apt install linux-tools-virtual hwdata
    sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20
    • 다른 메타 패키지(예: linux-tools-generic) 뿐만 아니라 설치된 배포판에 따라 다릅니다. 그러나 메타 패키지의 버전 번호에 따라 다음 단계에서 경로 변수를 조정해야 할 수도 있습니다.
    • 다른 배포판의 경우 관련 패키지 관리 도구의 설명서를 참조하십시오.
  4. 를 사용하여 만든 심볼릭 링크의 경우 update-alternatives 이전 단계의 명령이 작동하지 않으면 루트 사용자가 찾을 수 있도록 sudo 옵션을 수동으로 수정할 수 있습니다. usbip 명령. 이렇게 하려면 /etc/sudoers 사용하는 파일 sudo visudo 추가 /usr/lib/linux-tools/-generic 처음으로 secure_path. 다음과 같아야 합니다.
    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
  5. 새 터미널 인스턴스를 관리자로 열고 다음 명령을 입력하여 Windows에 연결된 모든 USB 장치를 나열합니다.
    usbipd wsl list
  6. WSL에 연결하려는 USB 장치의 BUSID 값을 기록해 둡니다. 그런 다음 다음 명령을 실행하여 연결 프로세스를 시작합니다. WSL에서 sudo 명령을 실행하기 위한 암호를 묻는 메시지가 표시됩니다.
    usbipd wsl attach --busid <busid>
    예를 들어 여기에서는 호스트 Windows 11 인스턴스에서 WSL에 Android 디바이스의 Fastboot 인터페이스를 연결합니다.
  7. 이제 새 WSL 2 인스턴스를 열고 다음을 실행합니다. lsusb 사용 가능한 USB 장치를 보려면 명령을 사용하십시오. 연결된 장치를 나열해야 합니다.
  8. 그게 다야! 이제 WSL에서 바로 USB 장치로 작업할 수 있습니다.

완료되면 아래 표시된 명령을 사용하여 장치를 분리할 수 있습니다. 다시 한 번 관리자 권한으로 실행되는 터미널 인스턴스에서 실행합니다.

usbipd wsl detach --busid <busid>

GUI 대안이 있습니까?

명령줄 인터페이스가 귀하의 장점이 아닌 경우 다음을 제공할 수 있습니다. wsl-usb-gui 시도. usbipd-win 바이너리 주변의 비공식 GUI 래퍼로, 호스트 OS와 WSL 인스턴스 간의 USB 장치 목록 및 상호 운용성을 크게 단순화합니다.

  1. 최신 버전의 usbipd-win이 설치되어 있고 WSL 커널이 최신인지 확인하십시오.
  2. wsl-usb-gui의 최신 설치 프로그램 다운로드 프로젝트의 GitLab 릴리스 페이지에서.
  3. 다운로드한 MSI 파일을 실행합니다.
    • 프로그램을 설치하기 전에 설치 프로그램도 전제 조건을 확인하고 필요한 경우 설정을 시도합니다. 그러나 예기치 않은 호환성 문제를 피하기 위해 모든 것을 직접 업데이트하는 것이 좋습니다.
  4. 성공적으로 설치되면 이름이 새로 생성된 바로 가기를 찾을 수 있어야 합니다. WSL USB 시작 메뉴에서. 거기에서 앱을 실행하십시오.
  5. 를 클릭하십시오 새로 고치다 버튼을 눌러 호스트 OS에 연결된 USB 장치 목록을 채웁니다.
  6. 사용 붙이다 그리고 분리하다 버튼을 사용하여 USB 패스스루의 잠재력을 최대한 발휘할 수 있습니다.

여기서부터 WSL에서 원하는 모든 USB 장치를 사용할 준비가 되었습니다. 우리의 전체 가이드가 그 과정에서 도움이 될 것이지만 USB 패스스루가 원하는 대로 설정되면 배경으로 사라집니다. 자세히 알아보려면 다음을 살펴보세요. WSL에서 USB 장치 연결에 대한 Microsoft의 공식 문서 그리고 usbipd-win의 GitHub Wiki 섹션.

XDA 시니어 회원에게 감사드립니다. Some_Random_사용자 이름 팁을 위해!