Este posibil să conectați dispozitive USB în subsistemul Windows pentru Linux sub Windows 11 și să lucrați direct cu ele.
Legături rapide
- Ce este usbipd-win?
- Conectați dispozitive USB în subsistemul Windows pentru Linux
- Există vreo alternativă GUI?
Microsoft a prezentat Subsistemul Windows pentru Linux (WSL) cu ceva timp în urmă, ceea ce a adus suport pentru rularea aplicațiilor Linux direct din instalația dvs. Windows, fără a fi nevoie să configurați o mașină virtuală. Fiind un strat de compatibilitate atât de complex, WSL avea unele limitări. Implementarea inițială nici măcar nu a folosit un nucleu Linux cu drepturi depline, așa că mai multe aplicații s-au confruntat cu probleme de compatibilitate. Versiunea 2 a adus o mulțime de îmbunătățiri, dar încă lipsea ceva: suport pentru conectarea dispozitivelor fizice USB.
Dacă sunteți un utilizator activ subsistem Windows pentru Linux și doriți să accesați dispozitive USB direct din instanța Linux care rulează sub WSL, atunci veți fi bucuroși să aflați că a existat
progres semnificativ pe acest front. Mulțumită contribuțiilor Microsoft la open-source usbipd-win proiect, vă puteți bucura acum de acces USB pass-through în WSL. Înseamnă că utilizatorii finali pot efectua sarcini precum intermiterea dispozitivelor Android în subsistemul Windows pentru Linux, care altfel nu sunt acceptate de subsistemul Linux.Ce este usbipd-win?
Proiectul usbipd-win se referă la crearea unei soluții pentru partajarea dispozitivelor USB conectate local către alte mașini, inclusiv oaspeții Hyper-V și WSL2. Cu toate acestea, kernel-ul oficial WSL2 Linux nu avea suport pentru protocol USB/IP, solicitând utilizatorilor să construiască ei înșiși nucleul.
Deoarece kernel-ul WSL versiunea 5.10.60.1, parametrii necesari sunt configurați imediat, deci nu este necesară o recompilare manuală. Microsoft a contribuit, de asemenea, la proiect cu o interfață de linie de comandă, atât pentru a activa un dispozitiv USB pentru partajare pe Windows, cât și pentru a-l atașa fără probleme din WSL.
Conectați dispozitive USB în subsistemul Windows pentru Linux
Înainte de a începe, asigurați-vă că alergați Windows 11 și au instalat toate actualizările WSL. După cum am menționat mai devreme, aveți nevoie de o distribuție Linux WSL 2 pentru ca aceasta să funcționeze.
- Rulați următoarea comandă din WSL:
Dacă afișează o versiune de kernel a 5.10.60.1 sau o versiune ulterioară (după cum se arată mai jos), atunci ești gata.uname -a
- Dacă versiunea de nucleu instalată este mai veche decât 5.10.60.1, atunci poate fi actualizată folosind următoarele comenzi:
wsl --shutdown
wsl --update
- Dacă versiunea de nucleu instalată este mai veche decât 5.10.60.1, atunci poate fi actualizată folosind următoarele comenzi:
- Mergeți la depozitul GitHub al proiectului usbipd-win. Apoi descărcați și instalați cea mai recentă versiune.
- Cea mai recentă versiune de usbipd-win acceptă instalarea silențioasă a driverelor, datorită driverelor certificate Windows Hardware Compatibility Program. De asemenea, susține Constructii de canal de dezvoltare de Windows 11.
- Pe lângă pagina de lansare de pe GitHub, puteți instala și actualiza aplicația folosind CLI Windows Package Manager (aka aripioară).
winget install--interactive --exact dorssel.usbipd-win
- Instalați instrumentele spațiului utilizator pentru USB/IP și o bază de date de identificatori hardware USB. Dacă rulați Ubuntu pe WSL, executați următoarele comenzi:
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- Puteți opta pentru diferite meta-pachete (de ex.
linux-tools-generic
), de asemenea, în funcție de distribuția instalată. Cu toate acestea, s-ar putea să fie nevoie să ajustați variabila cale în pasul următor, în funcție de numărul de versiune al pachetului meta. - Pentru alte distribuții, consultați documentația instrumentului relevant de gestionare a pachetelor.
- Puteți opta pentru diferite meta-pachete (de ex.
- În cazul în care legătura simbolică creată folosind
update-alternatives
comanda din pasul anterior nu a funcționat pentru dvs., puteți modifica manual opțiunile sudo pentru a permite utilizatorului root să găseascăusbip
comanda. Pentru a face acest lucru, editați/etc/sudoers
fișier folosindsudo visudo
si adauga/usr/lib/linux-tools/
până la începutul lui-generic secure_path
. Ar trebui să arate așa:Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
- Deschideți o nouă instanță Terminal ca administrator și tastați următoarea comandă pentru a lista toate dispozitivele USB conectate la Windows.
usbipd wsl list
- Notați valoarea BUSID a dispozitivului USB pe care doriți să îl atașați la WSL. Apoi, rulați următoarea comandă pentru a iniția procesul de atașare. WSL vi se va solicita o parolă pentru a rula o comandă sudo.
De exemplu, aici atașăm interfața Fastboot a unui dispozitiv Android la WSL din instanța gazdă Windows 11:usbipd wsl attach --busid <busid>
- Acum deschideți o nouă instanță WSL 2 și rulați
lsusb
comandă pentru a vedea dispozitivele USB disponibile. Ar trebui să enumere dispozitivele atașate. - Asta este! Acum puteți lucra cu dispozitivul USB direct de la WSL.
Când ați terminat, puteți detașa dispozitivul folosind comanda prezentată mai jos. Încă o dată, rulați-l dintr-o instanță Terminal care rulează ca administrator.
usbipd wsl detach --busid <busid>
Există vreo alternativă GUI?
În cazul în care interfața liniei de comandă nu este punctul tău forte, poți oferi wsl-usb-gui o incercare. Este un înveliș neoficial GUI în jurul binarului usbipd-win, care simplifică foarte mult listarea dispozitivelor USB și interoperabilitatea între sistemul de operare gazdă și instanța WSL.
- Asigurați-vă că cea mai recentă versiune de usbipd-win este instalată și că kernel-ul WSL este actualizat.
- Descărcați cel mai recent program de instalare al wsl-usb-gui de pe pagina de lansări GitLab a proiectului.
- Rulați fișierul MSI pe care l-ați descărcat.
- Înainte de a instala programul, programul de instalare verifică și cerințele preliminare și încearcă să le configureze dacă este necesar. Cu toate acestea, ar fi mai bine să păstrați totul actualizat singur pentru a evita orice probleme de compatibilitate neprevăzute.
- După o instalare reușită, ar trebui să puteți găsi o comandă rapidă nou creată numită USB WSL în meniul Start. Rulați aplicația de acolo.
- Faceți clic pe Reîmprospăta butonul pentru a completa lista de dispozitive USB conectate la sistemul de operare gazdă.
- Folosește Atașați și Desprinde butoane pentru a elibera întregul potențial al trecerii prin USB.
De aici încolo, sunteți gata să mergeți mai departe și să lucrați cu toate dispozitivele USB pe care le doriți în WSL. Ghidul nostru complet vă va ajuta pe parcurs, dar odată ce trecerea USB este configurată așa cum vă place, se estompează în fundal. Pentru a afla mai multe, aruncați o privire la Documentația oficială Microsoft privind conectarea dispozitivelor USB sub WSL și secțiunea GitHub Wiki a usbipd-win.
Mulțumim membrului senior XDA Some_Random_Username pentru pont!