Delen via


USB-apparaten aansluiten

In deze handleiding worden de stappen beschreven die nodig zijn om een USB-apparaat te verbinden met een Linux-distributie die wordt uitgevoerd op WSL 2 met behulp van het opensource-project USB/IP, usbipd-win.

Door het USB/IP-project op uw Windows-computer in te stellen, kunnen veelvoorkomende USB-scenario's voor ontwikkelaars, zoals het knipperen van een Arduino of het openen van een smartcardlezer, worden gebruikt.

Vereiste voorwaarden

  • Windows 11 (build 22000 of hoger) wordt uitgevoerd. (Ondersteuning voor Windows 10 is mogelijk, zie onderstaande opmerking).
  • Een machine met een x64- of ARM64-processor is vereist. (x86 wordt momenteel niet ondersteund met usbipd-win).
  • WSL is geïnstalleerd en ingesteld met de nieuwste versie.
  • Linux-distributie geïnstalleerd en ingesteld op WSL 2.

Opmerking

Als u uw Windows-versie en buildnummer wilt controleren, selecteert u de Windows-logotoets + R, typt u winver en selecteert u OK. U kunt bijwerken naar de nieuwste Windows-versie door Start>Instellingen>Windows Update> te selecteren en vervolgens op Controleren op updates te klikken. Als u de Linux-kernelversie wilt controleren, opent u uw Linux-distributie en voert u de volgende opdracht in: uname -a Als u handmatig wilt bijwerken naar de nieuwste kernel, opent u PowerShell en voert u de volgende opdracht in: wsl --update

Belangrijk

WSL ondersteunt nu zowel Windows 10 als Windows 11 via de Microsoft Store, wat betekent dat Windows 10-gebruikers nu toegang hebben tot de nieuwste kernelversies zonder dat ze vanuit de bron hoeven te compileren. Zie WSL in de Microsoft Store is nu algemeen beschikbaar in Windows 10 en 11 voor informatie over het bijwerken naar de door de Store ondersteunde versie van WSL. Als u niet kunt bijwerken naar de door de Store ondersteunde versie van WSL en automatisch kernelupdates ontvangt, raadpleegt u de USBIPD-WIN projectopslagplaats voor instructies voor het verbinden van USB-apparaten met een Linux-distributie die wordt uitgevoerd op WSL 2 door uw eigen WSL 2-kernel met USBIP te bouwen.

Het USBIPD-WIN-project installeren

Ondersteuning voor het aansluiten van USB-apparaten is niet systeemeigen beschikbaar in WSL, dus u moet het opensource-usbipd-win-project installeren.

Kernelvereisten

Als u USBIPD wilt gebruiken met windows-subsysteem voor Linux (WSL), moet u een Linux-kernelversie van 5.10.60.1 of hoger hebben. Als de geïnstalleerde kernelversie ouder is dan 5.10.60.1, kan deze worden bijgewerkt door eerst actieve exemplaren van WSL af te sluiten met wsl --shutdownen vervolgens de opdracht uit te voeren: wsl --update

USBIPD installeren op WSL

  1. Ga naar de meest recente releasepagina voor het usbipd-win-project.
  2. Selecteer het .msi-bestand, waarmee het installatieprogramma wordt gedownload. (Er wordt mogelijk een waarschuwing weergegeven waarin u wordt gevraagd om te bevestigen dat u deze download vertrouwt).
  3. Voer het gedownloade usbipd-win_x.msi-installatiebestand uit.

Opmerking

U kunt ook het usbipd-win-project installeren met Windows Package Manager (winget). Als u winget al hebt geïnstalleerd, gebruikt u de opdracht: winget install --interactive --exact dorssel.usbipd-win om usbipd-win te installeren. Als u --interactive weglaat, kan winget uw computer onmiddellijk opnieuw opstarten als dat nodig is om de stuurprogramma's te installeren.

Hiermee wordt het volgende geïnstalleerd:

  • Een service met de naam usbipd (weergavenaam: USBIP Device Host). U kunt de status van deze service controleren met behulp van de Services-app van Windows.
  • Een opdrachtregelprogramma usbipd. De locatie van dit hulpprogramma wordt toegevoegd aan de omgevingsvariabele PATH.
  • Een firewallregel genaamd usbipd om alle lokale subnetten verbinding te laten maken met de service. U kunt deze firewallregel wijzigen om toegangsbeheer af te stemmen.

Een USB-apparaat aansluiten

Voordat u uw USB-apparaat koppelt, moet u ervoor zorgen dat een WSL-opdrachtregel is geopend. Hierdoor blijft de lichtgewicht WSL 2-VM actief.

Opmerking

In dit document wordt ervan uitgegaan dat u versie usbipd-win 5.0.0 of hoger hebt geïnstalleerd.

  1. Vermeld alle USB-apparaten die zijn verbonden met Windows door PowerShell in de beheerdersmodus te openen en de volgende opdracht in te voeren. Zodra de apparaten worden weergegeven, selecteert en kopieert u de bus-id van het apparaat dat u wilt koppelen aan WSL.

    usbipd list
    
  2. Voordat u het USB-apparaat koppelt, moet de opdracht usbipd bind worden gebruikt om het apparaat te delen, zodat het kan worden gekoppeld aan WSL. Hiervoor zijn beheerdersbevoegdheden vereist. Selecteer de bus-id van het apparaat dat u wilt gebruiken in WSL en voer de volgende opdracht uit. Nadat u de opdracht hebt uitgevoerd, controleert u of het apparaat opnieuw wordt gedeeld met behulp van de opdracht usbipd list .

    usbipd bind --busid 4-4
    
  3. Voer de volgende opdracht uit om het USB-apparaat te koppelen. (U hoeft geen beheerdersprompt met verhoogde bevoegdheid meer te gebruiken.) Zorg ervoor dat een WSL-opdrachtprompt is geopend om de lichtgewicht WSL-VM actief te houden. Houd er rekening mee dat het USB-apparaat niet kan worden gebruikt door Windows zolang het USB-apparaat aan WSL is gekoppeld. Zodra het is gekoppeld aan WSL, kan het USB-apparaat worden gebruikt door elke distributie die wordt uitgevoerd als WSL 2. Controleer of het apparaat is gekoppeld met behulp van usbipd list. Voer vanaf de WSL-prompt uit lsusb om te controleren of het USB-apparaat wordt vermeld en kan worden gebruikt met behulp van Linux-hulpprogramma's.

    usbipd attach --wsl --busid <busid>
    
  4. Open Ubuntu (of de gewenste WSL-opdrachtregel) en vermeld de gekoppelde USB-apparaten met behulp van de opdracht:

    lsusb
    

    U zou het apparaat dat u zojuist hebt gekoppeld, moeten zien en er interactie mee kunnen hebben met behulp van normale Linux-tools. Afhankelijk van uw toepassing moet u mogelijk udev-regels configureren om niet-hoofdgebruikers toegang te geven tot het apparaat.

  5. Zodra u klaar bent met het apparaat in WSL, kunt u het USB-apparaat fysiek loskoppelen of deze opdracht uitvoeren vanuit PowerShell:

    usbipd detach --busid <busid>
    

Zie de Windows-opdrachtregelblog en de usbipd-win-opslagplaats op GitHub voor meer informatie over hoe dit werkt.

Zie voor een videodemonstratie WSL 2: USB-apparaten verbinden (Tabs vs Spaces show).