Kako spojiti USB uređaje u Windows podsustav za Linux pod Windows 11

Moguće je povezati USB uređaje u podsustavu Windows za Linux u sustavu Windows 11 i izravno raditi s njima.

Brze veze

  • Što je usbipd-win?
  • Povežite USB uređaje pod Windows podsustavom za Linux
  • Postoji li alternativa za GUI?

Microsoft predstavio Podsustav Windows za Linux (WSL) prije nekog vremena, koji je donio podršku za pokretanje Linux aplikacija izravno iz vaše Windows instalacije bez potrebe za postavljanjem virtualnog stroja. Budući da je tako složen sloj kompatibilnosti, WSL je imao neka ograničenja. Početna implementacija čak nije koristila potpuni Linux kernel, tako da je nekoliko aplikacija imalo problema s kompatibilnošću. Verzija 2 napravila je mnogo poboljšanja, ali nešto je još nedostajalo: podrška za povezivanje fizičkih USB uređaja.

Ako ste aktivni korisnik podsustava Windows za Linux i želite pristupiti USB uređajima izravno iz Linux instance koja se izvodi pod WSL-om, tada ćete biti sretni znati da postoji značajan napredak na ovoj fronti. Zahvaljujući Microsoftovom doprinosu otvorenom kodu

usbipd-win projekta, sada možete uživati ​​u USB prolaznom pristupu u WSL-u. To znači da krajnji korisnici mogu obavljati zadatke poput fleširanja Android uređaja pod Windows podsustavom za Linux, koje inače ne podržava Linux podsustav.

Što je usbipd-win?

Usbipd-win projekt se bavi stvaranjem rješenja za dijeljenje lokalno povezanih USB uređaja s drugim strojevima, uključujući Hyper-V goste i WSL2. Međutim, službeni WSL2 Linux kernel prije nije imao podršku za USB/IP protokol, zahtijevajući od korisnika da sami izgrade kernel.

Od verzije WSL kernela 5.10.60.1, potrebni parametri konfigurirani su odmah, tako da nije potrebna ručna ponovna kompilacija. Microsoft je također doprinio sučelju naredbenog retka projektu kako bi omogućio USB uređaj za dijeljenje u sustavu Windows i neprimjetno ga priključio unutar WSL-a.

Povežite USB uređaje pod Windows podsustavom za Linux

Prije početka provjerite trčite li Windows 11 i instalirali sva WSL ažuriranja. Kao što je ranije spomenuto, potreban vam je WSL 2 Linux distro da bi ovo radilo.

  1. Izvedite sljedeću naredbu unutar WSL-a:
    uname -a
    Ako prikazuje verziju kernela 5.10.60.1 ili noviju (kao što je prikazano u nastavku), spremni ste.
    • Ako je instalirana verzija kernela starija od 5.10.60.1, tada se može ažurirati pomoću sljedećih naredbi:
      wsl --shutdown
      wsl --update
  2. Prijeđite na GitHub repo usbipd-win projekta. Zatim preuzmite i instalirajte najnovije izdanje.
    • Najnovija verzija usbipd-win podržava tihu instalaciju upravljačkog programa, zahvaljujući upravljačkim programima certificiranim Windows Hardware Compatibility Programom. Također podržava Izgradnje razvojnih kanala sustava Windows 11.
    • Osim stranice izdanja na GitHubu, aplikaciju možete instalirati i ažurirati pomoću Windows Package Manager CLI (aka krilo).
      winget install--interactive --exact dorssel.usbipd-win
  3. Instalirajte alate korisničkog prostora za USB/IP i bazu podataka USB hardverskih identifikatora. Ako pokrećete Ubuntu na WSL-u, izvršite sljedeće naredbe:
    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
    • Možete se odlučiti za različite meta pakete (npr. linux-tools-generic) također, ovisno o instaliranoj distribuciji. Međutim, možda ćete morati prilagoditi varijablu staze u sljedećem koraku, prema broju verzije meta paketa.
    • Za ostale distribucije, pogledajte dokumentaciju relevantnog alata za upravljanje paketima.
  4. U slučaju da je simbolička veza stvorena pomoću update-alternatives naredba u prethodnom koraku nije radila za vas, možete ručno izmijeniti sudo opcije kako biste root korisniku omogućili da pronađe usbip naredba. Da biste to učinili, uredite /etc/sudoers pomoću datoteke sudo visudo i dodajte /usr/lib/linux-tools/-generic do početka secure_path. Trebao bi izgledati ovako:
    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
  5. Otvorite novu instancu terminala kao administrator i upišite sljedeću naredbu za popis svih USB uređaja povezanih sa sustavom Windows.
    usbipd wsl list
  6. Zabilježite BUSID vrijednost USB uređaja koji želite priključiti na WSL. Zatim pokrenite sljedeću naredbu da započnete proces privitka. WSL će od vas zatražiti lozinku za pokretanje naredbe sudo.
    usbipd wsl attach --busid <busid>
    Na primjer, ovdje prilažemo Fastboot sučelje Android uređaja na WSL s glavne instance Windows 11:
  7. Sada otvorite novu instancu WSL 2 i pokrenite lsusb naredba za pregled dostupnih USB uređaja. Trebao bi navesti priključene uređaje.
  8. To je to! Sada možete raditi sa svojim USB uređajem izravno iz WSL-a.

Kada završite, možete odvojiti uređaj pomoću naredbe prikazane u nastavku. Još jednom, pokrenite ga s instance terminala koja se izvodi kao administrator.

usbipd wsl detach --busid <busid>

Postoji li alternativa za GUI?

U slučaju da vam sučelje naredbenog retka nije jača strana, možete dati wsl-usb-gui pokušaj. To je neslužbeni GUI omotač oko usbipd-win binarnog, koji uvelike pojednostavljuje popis USB uređaja i interoperabilnost između glavnog OS-a i WSL instance.

  1. Provjerite je li instalirana najnovija verzija usbipd-wina i je li WSL kernel ažuriran.
  2. Preuzmite najnoviji instalacijski program wsl-usb-gui sa stranice GitLab izdanja projekta.
  3. Pokrenite MSI datoteku koju ste preuzeli.
    • Prije instaliranja programa, instalacijski program također provjerava preduvjete i pokušava ih postaviti ako je potrebno. Međutim, bilo bi bolje da sve ažurirate sami kako biste izbjegli nepredviđene probleme s kompatibilnošću.
  4. Nakon uspješne instalacije, trebali biste moći pronaći novostvoreni prečac pod nazivom WSL USB u izborniku Start. Pokrenite aplikaciju od tamo.
  5. Klikni na Osvježiti gumb za popunjavanje popisa USB uređaja spojenih na glavni OS.
  6. Koristiti Priložiti i Odvojiti tipke za oslobađanje punog potencijala USB prolaza.

Od sada pa nadalje, spremni ste ići naprijed i petljati sa svim svojim USB uređajima koje želite u WSL-u. Naš potpuni vodič pomoći će vam na tom putu, ali nakon što je USB prolaz postavljen kako vam se sviđa, on jednostavno nestaje u pozadini. Da biste saznali više, pogledajte Microsoftova službena dokumentacija o povezivanju USB uređaja pod WSL-om i usbipd-win GitHub Wiki odjeljak.

Hvala starijem članu XDA Neko_Slučajno_korisničko ime za napojnicu!