Ako pripojiť zariadenia USB v podsystéme Windows pre Linux v systéme Windows 11

V systéme Windows Subsystem for Linux pod Windows 11 je možné pripojiť USB zariadenia a pracovať s nimi priamo.

Rýchle odkazy

  • Čo je usbipd-win?
  • Pripojte USB zariadenia pod Windows Subsystem for Linux
  • Existuje nejaká alternatíva GUI?

Microsoft predstavil Subsystém Windows pre Linux (WSL), čo prinieslo podporu pre spúšťanie aplikácií pre Linux priamo z inštalácie systému Windows bez potreby nastavovania virtuálneho počítača. Keďže ide o zložitú vrstvu kompatibility, WSL mala určité obmedzenia. Počiatočná implementácia dokonca nepoužívala plnohodnotné jadro Linuxu, takže niekoľko aplikácií čelilo problémom s kompatibilitou. Verzia 2 priniesla veľa vylepšení, ale niečo stále chýbalo: podpora pripojenia fyzických USB zariadení.

Ak ste aktívnym používateľom podsystému Windows pre systém Linux a chcete pristupovať k zariadeniam USB priamo z inštancie systému Linux spustenej pod WSL, budete radi, že došlo k výrazný pokrok na tomto fronte. Vďaka príspevkom Microsoftu k open-source usbipd-win projektu, teraz si môžete vychutnať priechodný prístup cez USB vo WSL. Znamená to, že koncoví používatelia môžu vykonávať úlohy, ako je napríklad blikanie zariadení so systémom Android pod podsystémom Windows pre Linux, ktoré inak podsystém Linux nepodporuje.

Čo je usbipd-win?

Projekt usbipd-win je o vytvorení riešenia na zdieľanie lokálne pripojených zariadení USB s inými strojmi, vrátane hostí Hyper-V a WSL2. Oficiálne linuxové jadro WSL2 však nemalo podporu pre USB/IP protokol, čo vyžaduje, aby si používatelia vytvorili jadro sami.

Od verzie jadra WSL 5.10.60.1 sú požadované parametre nakonfigurované hneď po vybalení, takže nie je potrebná žiadna manuálna rekompilácia. Spoločnosť Microsoft tiež prispela k projektu rozhraním príkazového riadka, ktoré umožňuje zdieľanie zariadenia USB v systéme Windows a jeho bezproblémové pripojenie z WSL.

Pripojte USB zariadenia pod Windows Subsystem for Linux

Pred spustením sa uistite, že bežíte Windows 11 a nainštalovali všetky aktualizácie WSL. Ako už bolo spomenuté, potrebujete distribúciu WSL 2 Linux, aby to fungovalo.

  1. Spustite nasledujúci príkaz z WSL:
    uname -a
    Ak zobrazuje verziu jadra 5.10.60.1 alebo novšiu (ako je uvedené nižšie), môžete začať.
    • Ak je nainštalovaná verzia jadra staršia ako 5.10.60.1, možno ju aktualizovať pomocou nasledujúcich príkazov:
      wsl --shutdown
      wsl --update
  2. Prejdite na repozitár GitHub projektu usbipd-win. Potom stiahnuť a nainštalovať najnovšiu verziu.
    • Najnovšia verzia usbipd-win podporuje tichú inštaláciu ovládačov vďaka certifikovaným ovládačom Windows Hardware Compatibility Program. Tiež podporuje Vytváranie kanálov pre vývojárov systému Windows 11.
    • Okrem stránky vydania na GitHub môžete aplikáciu nainštalovať a aktualizovať pomocou Windows Package Manager CLI (aka winget).
      winget install--interactive --exact dorssel.usbipd-win
  3. Nainštalujte nástroje používateľského priestoru pre USB/IP a databázu hardvérových identifikátorov USB. Ak používate Ubuntu na WSL, vykonajte nasledujúce príkazy:
    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
    • Môžete sa rozhodnúť pre rôzne meta balíčky (napr. linux-tools-generic) tiež v závislosti od nainštalovanej distribúcie. Možno však budete musieť v ďalšom kroku upraviť premennú cesty podľa čísla verzie meta balíčka.
    • V prípade iných distribúcií si pozrite dokumentáciu príslušného nástroja na správu balíkov.
  4. V prípade, že symbolický odkaz vytvorený pomocou update-alternatives príkaz v predchádzajúcom kroku pre vás nefungoval, môžete manuálne upraviť možnosti sudo, aby ste umožnili používateľovi root nájsť usbip príkaz. Ak to chcete urobiť, upravte súbor /etc/sudoers pomocou súboru sudo visudo a pridať /usr/lib/linux-tools/-generic do začiatku secure_path. Malo by to vyzerať takto:
    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
  5. Otvorte novú inštanciu terminálu ako správca a zadajte nasledujúci príkaz, aby ste zobrazili zoznam všetkých zariadení USB pripojených k systému Windows.
    usbipd wsl list
  6. Poznačte si hodnotu BUSID zariadenia USB, ktoré chcete pripojiť k WSL. Potom spustite nasledujúci príkaz na spustenie procesu pripojenia. WSL vás vyzve na zadanie hesla na spustenie príkazu sudo.
    usbipd wsl attach --busid <busid>
    Napríklad tu pripájame rozhranie Fastboot zariadenia Android k WSL z hostiteľskej inštancie Windows 11:
  7. Teraz otvorte novú inštanciu WSL 2 a spustite lsusb príkaz na zobrazenie dostupných zariadení USB. Mal by obsahovať zoznam pripojených zariadení.
  8. To je všetko! Teraz môžete pracovať so zariadením USB priamo z WSL.

Po dokončení môžete zariadenie odpojiť pomocou príkazu uvedeného nižšie. Ešte raz ho spustite z inštancie terminálu spustenej ako správca.

usbipd wsl detach --busid <busid>

Existuje nejaká alternatíva GUI?

V prípade, že rozhranie príkazového riadku nie je vašou silnou stránkou, môžete dať wsl-usb-gui pokus. Je to neoficiálny obal GUI okolo binárneho súboru usbipd-win, ktorý výrazne zjednodušuje zoznam zariadení USB a interoperabilitu medzi hostiteľským OS a inštanciou WSL.

  1. Uistite sa, že je nainštalovaná najnovšia verzia usbipd-win a že jadro WSL je aktuálne.
  2. Stiahnite si najnovší inštalačný program wsl-usb-gui zo stránky vydaní projektu GitLab.
  3. Spustite stiahnutý súbor MSI.
    • Pred inštaláciou programu inštalátor tiež skontroluje predpoklady a v prípade potreby sa ich pokúsi nastaviť. Bolo by však lepšie aktualizovať všetko sami, aby ste sa vyhli nepredvídaným problémom s kompatibilitou.
  4. Po úspešnej inštalácii by ste mali byť schopní nájsť novovytvorenú skratku s názvom WSL USB v ponuke Štart. Spustite aplikáciu odtiaľ.
  5. Klikni na Obnoviť tlačidlo na vyplnenie zoznamu zariadení USB pripojených k hostiteľskému OS.
  6. Použi Priložiť a Oddeliť tlačidlá na uvoľnenie plného potenciálu USB pass-through.

Odteraz ste pripravení ísť ďalej a pohrať sa so všetkými vašimi USB zariadeniami, ktoré chcete vo WSL. Náš úplný sprievodca vám pomôže na ceste, ale akonáhle je priechod USB nastavený tak, ako sa vám páči, jednoducho zmizne do pozadia. Ak sa chcete dozvedieť viac, pozrite si Oficiálna dokumentácia spoločnosti Microsoft o pripájaní zariadení USB pod WSL a sekcia GitHub Wiki usbipd-win.

Ďakujeme Senior Member XDA Some_Random_Username za tip!