Het is mogelijk om USB-apparaten aan te sluiten in Windows Subsystem voor Linux onder Windows 11 en er direct mee te werken.
Snelle links
- Wat is usbipd-win?
- Sluit USB-apparaten aan onder Windows Subsystem voor Linux
- Is er een GUI-alternatief?
Microsoft geïntroduceerd Windows-subsysteem voor Linux (WSL) een tijdje geleden, die ondersteuning bood voor het uitvoeren van Linux-apps rechtstreeks vanuit uw Windows-installatie zonder dat u een virtuele machine hoeft in te stellen. Omdat het zo'n complexe compatibiliteitslaag was, had WSL enkele beperkingen. De eerste implementatie maakte niet eens gebruik van een volwaardige Linux-kernel, dus verschillende applicaties hadden te maken met compatibiliteitsproblemen. Versie 2 bracht veel verbeteringen, maar er ontbrak nog iets: ondersteuning voor het aansluiten van fysieke USB-apparaten.
Als u een actieve Windows Subsystem for Linux-gebruiker bent en rechtstreeks toegang wilt tot USB-apparaten vanaf de Linux-instantie die onder WSL draait, dan zult u blij zijn te weten dat er
aanzienlijke vooruitgang op dit front. Dankzij de bijdragen van Microsoft aan de open-source usbipd-win project, kunt u nu genieten van USB pass-through-toegang in WSL. Het betekent dat eindgebruikers taken kunnen uitvoeren zoals het flashen van Android-apparaten onder Windows Subsystem for Linux, die anders niet worden ondersteund door het Linux-subsysteem.Wat is usbipd-win?
Bij het usbipd-win-project draait alles om het creëren van een oplossing voor het delen van lokaal aangesloten USB-apparaten met andere machines, waaronder Hyper-V-gasten en WSL2. De officiële WSL2 Linux-kernel had echter geen ondersteuning voor de USB/IP-protocol, waarbij gebruikers de kernel zelf moeten bouwen.
Sinds WSL-kernelversie 5.10.60.1 zijn de vereiste parameters kant-en-klaar geconfigureerd, zodat handmatige hercompilatie niet nodig is. Microsoft heeft ook een opdrachtregelinterface aan het project toegevoegd om zowel een USB-apparaat voor delen op Windows mogelijk te maken als om het naadloos vanuit WSL aan te sluiten.
Sluit USB-apparaten aan onder Windows Subsystem voor Linux
Zorg ervoor dat je aan het hardlopen bent voordat je begint Windows 11 en alle WSL-updates hebben geïnstalleerd. Zoals eerder vermeld, heb je een WSL 2 Linux-distro nodig om dit te laten werken.
- Voer de volgende opdracht uit vanuit WSL:
Als het een kernelversie van 5.10.60.1 of hoger laat zien (zoals hieronder getoond), dan ben je klaar om te gaan.uname -a
- Als de geïnstalleerde kernelversie ouder is dan 5.10.60.1, kan deze worden bijgewerkt met de volgende opdrachten:
wsl --shutdown
wsl --update
- Als de geïnstalleerde kernelversie ouder is dan 5.10.60.1, kan deze worden bijgewerkt met de volgende opdrachten:
- Ga naar de GitHub-repo van het usbipd-win-project. Dan download en installeer de nieuwste versie.
- De nieuwste versie van usbipd-win ondersteunt stille installatie van stuurprogramma's dankzij de door het Windows Hardware Compatibility Program gecertificeerde stuurprogramma's. Het ondersteunt ook Ontwikkelaarskanaal bouwt van Windows 11.
- Naast de releasepagina op GitHub kun je de app installeren en bijwerken met behulp van Windows Pakketbeheer CLI (ook bekend als winget).
winget install--interactive --exact dorssel.usbipd-win
- Installeer de gebruikersruimtetools voor USB/IP en een database met USB-hardware-ID's. Als u Ubuntu op WSL uitvoert, voert u de volgende opdrachten uit:
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- U kunt kiezen voor verschillende metapakketten (bijv.
linux-tools-generic
) ook, afhankelijk van de geïnstalleerde distro. Het is echter mogelijk dat u de padvariabele in de volgende stap moet aanpassen, afhankelijk van het versienummer van het metapakket. - Raadpleeg voor andere distro's de documentatie van de relevante pakketbeheertool.
- U kunt kiezen voor verschillende metapakketten (bijv.
- In het geval dat de symbolische link die is gemaakt met behulp van de
update-alternatives
opdracht in de vorige stap niet voor u werkte, kunt u de sudo-opties handmatig wijzigen zodat de rootgebruiker deusbip
commando. Bewerk hiervoor de/etc/sudoers
bestand gebruikensudo visudo
en voeg toe/usr/lib/linux-tools/
naar het begin van-generic secure_path
. Het zou er als volgt uit moeten zien:Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
- Open een nieuwe Terminal-instantie als beheerder en typ de volgende opdracht om alle USB-apparaten weer te geven die op Windows zijn aangesloten.
usbipd wsl list
- Noteer de BUSID-waarde van het USB-apparaat dat u aan WSL wilt koppelen. Voer vervolgens de volgende opdracht uit om het bijlageproces te starten. U wordt door WSL om een wachtwoord gevraagd om een sudo-opdracht uit te voeren.
Hier koppelen we bijvoorbeeld de Fastboot-interface van een Android-apparaat aan WSL vanaf de host Windows 11-instantie:usbipd wsl attach --busid <busid>
- Open nu een nieuwe WSL 2-instantie en voer het
lsusb
opdracht om beschikbare USB-apparaten te zien. Het zou de aangesloten apparaten moeten vermelden. - Dat is het! U kunt nu rechtstreeks vanuit WSL met uw USB-apparaat werken.
Wanneer u klaar bent, kunt u het apparaat loskoppelen met behulp van de onderstaande opdracht. Voer het nogmaals uit vanuit een Terminal-instantie die als beheerder wordt uitgevoerd.
usbipd wsl detach --busid <busid>
Is er een GUI-alternatief?
Als de opdrachtregelinterface niet jouw sterkste punt is, kun je geven wsl-usb-gui een poging. Het is een niet-officiële GUI-verpakking rond het binaire bestand usbipd-win, wat de lijst met USB-apparaten en de interoperabiliteit tussen het host-besturingssysteem en de WSL-instantie aanzienlijk vereenvoudigt.
- Zorg ervoor dat de nieuwste versie van usbipd-win is geïnstalleerd en dat de WSL-kernel up-to-date is.
- Download het nieuwste installatieprogramma van wsl-usb-gui van de GitLab-releasepagina van het project.
- Voer het MSI-bestand uit dat u hebt gedownload.
- Voordat het programma wordt geïnstalleerd, controleert het installatieprogramma ook op de vereisten en probeert het indien nodig in te stellen. Het is echter beter om alles zelf up-to-date te houden om onvoorziene compatibiliteitsproblemen te voorkomen.
- Na een succesvolle installatie zou u een nieuw gemaakte snelkoppeling met de naam moeten kunnen vinden WSL-USB in het Startmenu. Start de app vanaf daar.
- Klik op de Vernieuwen om de lijst met USB-apparaten die zijn aangesloten op het host-besturingssysteem te vullen.
- Gebruik de Bijvoegen En Losmaken knoppen om het volledige potentieel van USB pass-through te ontketenen.
Vanaf nu ben je klaar om verder te gaan en te sleutelen aan al je USB-apparaten die je in WSL wilt hebben. Onze volledige gids helpt je op weg, maar als de USB-doorvoer eenmaal is ingesteld zoals jij dat wilt, verdwijnt deze gewoon naar de achtergrond. Voor meer informatie, neem een kijkje op Officiële documentatie van Microsoft over het aansluiten van USB-apparaten onder WSL En usbipd-win's GitHub Wiki-sectie.
Met dank aan XDA Senior-lid Some_Random_Username voor de fooi!