USB-seadmete ühendamine Windowsi alamsüsteemis Linuxi jaoks Windows 11 all

Windows 11 all olevas Windowsi alamsüsteemis Linuxi jaoks on võimalik USB-seadmeid ühendada ja nendega otse töötada.

Kiirlingid

  • Mis on usbipd-win?
  • Ühendage USB-seadmed Windowsi alamsüsteemiga Linuxile
  • Kas on mõni GUI alternatiiv?

Microsoft tutvustas Windowsi alamsüsteem Linuxi jaoks (WSL), mis tõi Linuxi rakenduste käitamise toe otse teie Windowsi installist ilma virtuaalset masinat seadistamata. Kuna WSL on nii keeruline ühilduvuskiht, oli sellel mõned piirangud. Esialgne juurutamine ei kasutanud isegi täisväärtuslikku Linuxi tuuma, nii et mitmel rakendusel tekkisid ühilduvusprobleemid. Versioon 2 tegi palju täiustusi, kuid midagi jäi siiski puudu: tugi füüsiliste USB-seadmete ühendamiseks.

Kui olete aktiivne Windowsi Linuxi alamsüsteemi kasutaja ja soovite pääseda juurde USB-seadmetele otse WSL-i all töötavast Linuxi eksemplarist, siis on teil hea meel teada saada, et märkimisväärset edu sellel rindel. Tänu Microsofti panusele avatud lähtekoodiga usbipd-win projektiga, saate nüüd WSL-is nautida USB-läbipääsu. See tähendab, et lõppkasutajad saavad Windowsi alamsüsteemis Linuxi jaoks teha selliseid toiminguid nagu Android-seadmete vilkumine, mida Linuxi alamsüsteem muidu ei toeta.

Mis on usbipd-win?

Projekti usbipd-win eesmärk on luua lahendus kohalikult ühendatud USB-seadmete jagamiseks teistele masinatele, sealhulgas Hyper-V külalistele ja WSL2-le. Ametlikul WSL2 Linuxi tuumal puudus aga tugi USB/IP protokoll, mis nõuab, et kasutajad ehitaksid kerneli ise.

Alates WSL-i kerneli versioonist 5.10.60.1 on nõutavad parameetrid kohe konfigureeritud, seega pole vaja käsitsi ümberkompileerimist. Microsoft on projekti lisanud ka käsurea liidese, et võimaldada USB-seadet Windowsis jagamiseks ja ühendada see sujuvalt WSL-i kaudu.

Ühendage USB-seadmed Windowsi alamsüsteemiga Linuxile

Enne alustamist veenduge, et jooksete Windows 11 ja olete installinud kõik WSL-i värskendused. Nagu varem mainitud, vajate selle toimimiseks WSL 2 Linuxi distributsiooni.

  1. Käivitage WSL-is järgmine käsk:
    uname -a
    Kui see näitab kerneli versiooni 5.10.60.1 või uuemat (nagu allpool näidatud), siis on kõik korras.
    • Kui installitud kerneli versioon on vanem kui 5.10.60.1, saab seda värskendada järgmiste käskude abil:
      wsl --shutdown
      wsl --update
  2. Minge usbipd-win projekti GitHubi repole. Siis laadige alla ja installige uusim versioon.
    • Usbipd-win uusim versioon toetab vaikset draiverite installimist tänu Windowsi riistvara ühilduvusprogrammi sertifitseeritud draiveritele. Samuti toetab Arenduskanalite järgud Windows 11.
    • Lisaks GitHubi väljalaskelehele saate rakenduse installida ja värskendada Windowsi paketihalduri CLI (teise nimega winget).
      winget install--interactive --exact dorssel.usbipd-win
  3. Installige USB/IP kasutajaruumi tööriistad ja USB-riistvaraidentifikaatorite andmebaas. Kui kasutate Ubuntut WSL-is, käivitage järgmised käsud:
    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
    • Saate valida erinevaid metapakette (nt. linux-tools-generic) samuti, olenevalt installitud distrost. Siiski peate võib-olla kohandama teemuutujat järgmises etapis vastavalt metapaketi versiooninumbrile.
    • Teiste distrode puhul vaadake vastava paketihaldustööriista dokumentatsiooni.
  4. Kui sümboolne link on loodud kasutades update-alternatives eelmise sammu käsk ei töötanud teie jaoks, saate sudo valikuid käsitsi muuta, et võimaldada juurkasutajal leida usbip käsk. Selleks muutke /etc/sudoers faili kasutades sudo visudo ja lisage /usr/lib/linux-tools/-generic alguseni secure_path. See peaks välja nägema järgmine:
    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
  5. Avage administraatorina uus terminali eksemplar ja tippige järgmine käsk, et loetleda kõik Windowsiga ühendatud USB-seadmed.
    usbipd wsl list
  6. Märkige üles selle USB-seadme BUSID väärtus, mille soovite WSL-iga ühendada. Järgmisena käivitage manustamisprotsessi käivitamiseks järgmine käsk. WSL küsib sudo käsu käivitamiseks parooli.
    usbipd wsl attach --busid <busid>
    Näiteks lisame siin Android-seadme Fastboot-liidese WSL-i hosti Windows 11 eksemplarist:
  7. Nüüd avage uus WSL 2 eksemplar ja käivitage lsusb saadaolevate USB-seadmete kuvamiseks. See peaks loetlema ühendatud seadmed.
  8. See on kõik! Nüüd saate oma USB-seadmega töötada otse WSL-i kaudu.

Kui olete lõpetanud, saate seadme lahti ühendada, kasutades allpool näidatud käsku. Käivitage see veel kord administraatorina töötavast terminali eksemplarist.

usbipd wsl detach --busid <busid>

Kas on mõni GUI alternatiiv?

Kui käsurea liides pole teie tugevus, võite anda wsl-usb-gui proovi. See on mitteametlik GUI ümbris usbipd-win binaarfaili ümber, mis lihtsustab oluliselt USB-seadmete loendit ja koostalitlusvõimet hosti OS-i ja WSL-i eksemplari vahel.

  1. Veenduge, et usbipd-win uusim versioon oleks installitud ja WSL-i tuum oleks ajakohane.
  2. Laadige alla wsl-usb-gui uusim installiprogramm projekti GitLabi väljaannete lehelt.
  3. Käivitage allalaaditud MSI-fail.
    • Enne programmi installimist kontrollib installija ka eeltingimusi ja proovib vajadusel neid seadistada. Siiski oleks parem kõike ise värskendada, et vältida ettenägematuid ühilduvusprobleeme.
  4. Pärast edukat installimist peaksite leidma äsja loodud otsetee nimega WSL USB menüüs Start. Käivitage rakendus sealt.
  5. Klõpsake nuppu Värskenda nuppu host OS-iga ühendatud USB-seadmete loendi täitmiseks.
  6. Kasuta Kinnitage ja Eralda nupud, et vabastada USB-läbipääsu kogu potentsiaal.

Siit edasi olete valmis WSL-is kõigi soovitud USB-seadmetega tegelema. Meie täielik juhend aitab teid sellel teel, kuid kui USB-läbipääs on teile meelepäraselt seadistatud, taandub see lihtsalt taustale. Lisateabe saamiseks vaadake Microsofti ametlik dokumentatsioon USB-seadmete ühendamise kohta WSL-i all ja usbipd-wini GitHubi Wiki jaotis.

Aitäh XDA vanemliikmele Mõni_juhuslik_kasutajanimi jootraha eest!