USB-apparaten aansluiten in Windows Subsystem voor Linux onder Windows 11

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.

  1. Voer de volgende opdracht uit vanuit WSL:
    uname -a
    Als het een kernelversie van 5.10.60.1 of hoger laat zien (zoals hieronder getoond), dan ben je klaar om te gaan.
    • Als de geïnstalleerde kernelversie ouder is dan 5.10.60.1, kan deze worden bijgewerkt met de volgende opdrachten:
      wsl --shutdown
      wsl --update
  2. 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
  3. 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.
  4. 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 de usbip commando. Bewerk hiervoor de /etc/sudoers bestand gebruiken sudo visudo en voeg toe /usr/lib/linux-tools/-generic naar het begin van 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:..."
  5. 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
  6. 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.
    usbipd wsl attach --busid <busid>
    Hier koppelen we bijvoorbeeld de Fastboot-interface van een Android-apparaat aan WSL vanaf de host Windows 11-instantie:
  7. 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.
  8. 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.

  1. Zorg ervoor dat de nieuwste versie van usbipd-win is geïnstalleerd en dat de WSL-kernel up-to-date is.
  2. Download het nieuwste installatieprogramma van wsl-usb-gui van de GitLab-releasepagina van het project.
  3. 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.
  4. 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.
  5. Klik op de Vernieuwen om de lijst met USB-apparaten die zijn aangesloten op het host-besturingssysteem te vullen.
  6. 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!