Verbinden von USB-Geräten

In diesem Leitfaden werden die erforderlichen Schritte zum Verbinden eines USB-Geräts mit einer Linux-Distribution in WSL 2 unter Verwendung des USB/IP-Open-Source-Projekts usbipd-win beschrieben.

Die Einrichtung des USB/IP-Projekts auf Ihrem Windows-Computer ermöglicht USB-Entwicklerszenarien wie das Flashen eines Arduino oder das Zugreifen auf einen Smartcardleser.

Voraussetzungen

  • Windows 11 (mindestens Build 22000). (Windows 10-Unterstützung ist möglich; siehe Hinweis weiter unten).
  • Ein Computer mit einem x64-Prozessor ist erforderlich. (x86 und Arm64 werden derzeit nicht mit usbipd-win unterstützt).
  • WSL wird installiert und mit der neuesten Version eingerichtet.
  • Installierte und auf WSL 2 festgelegte Linux-Distribution.

Hinweis

Zum Überprüfen Ihrer Windows-Version und Buildnummer drücken Sie Windows-Logo-Taste+R, geben Sie winver ein, und wählen Sie dann OK aus. Sie können durch Auswählen von Start>Einstellungen>Windows Update>Nach Updates suchen ein Update auf die neueste Windows-Version ausführen. Um Ihre Linux-Kernelversion zu überprüfen, öffnen Sie Ihre Linux-Distribution, und geben Sie den folgenden Befehl ein: uname -a. Um manuell auf den neuesten Kernel zu aktualisieren, öffnen Sie PowerShell, und geben Sie den Befehl „wsl --update“ ein.

Wichtig

WSL unterstützt jetzt sowohl Windows 10 als auch Windows 11 über den Microsoft Store, was bedeutet, dass Windows 10-Benutzer jetzt Zugriff auf die neuesten Kernelversionen haben, ohne aus der Quelle kompilieren zu müssen. Unter WSL im Microsoft Store ist jetzt allgemein unter Windows 10 und 11 verfügbar finden Sie Informationen zum Aktualisieren auf die vom Store unterstützte Version von WSL. Wenn Sie nicht auf die vom Store unterstützte Version von WSL aktualisieren und automatisch Kernelupdates erhalten, lesen Sie das USBIPD-WIN-Projekt-Repository, um Anweisungen zum Verbinden von USB-Geräten mit einer Linux-Verteilung zu erhalten, die auf WSL 2 ausgeführt wird, indem Sie Ihren eigenen USBIP-aktivierten WSL 2-Kernel erstellen.

Installieren des USBIPD-WIN-Projekts

Die Unterstützung der Verbindungsherstellung mit USB-Geräten ist in WSL nicht nativ verfügbar. Daher müssen Sie das Open-Source-Projekt „usbipd-win“ installieren.

  1. Wechseln Sie zur Seite mit dem aktuellen Release für das Projekt „usbipd-win“.
  2. Wählen Sie die MSI-Datei aus. Dadurch wird das Installationsprogramm heruntergeladen. (Möglicherweise erhalten Sie eine Warnung, in der Sie bestätigen müssen, dass Sie diesem Download vertrauen.)
  3. Führen Sie die heruntergeladene Datei „usbipd-win_x.msi“ des Installationsprogramms aus.

Hinweis

Alternativ können Sie das Projekt „usbipd-win“ auch mithilfe von Windows-Paket-Manager (winget) installieren. Falls Sie „winget“ bereits installiert haben, verwenden Sie einfach den Befehl winget install --interactive --exact dorssel.usbipd-win, um „usbipd-win“ zu installieren. Wenn Sie „--interactive“ weglassen, kann „winget“ Ihren Computer sofort neu starten, falls dies für die Treiberinstallation erforderlich ist.

Hierdurch wird Folgendes installiert:

  • Ein Dienst namens usbipd (Anzeigename: USBIP-Gerätehost). Sie können den Status dieses Diensts mithilfe der App „Dienste“ unter Windows überprüfen.
  • Das Befehlszeilentool usbipd. Der Speicherort dieses Tools wird der PATH-Umgebungsvariablen hinzugefügt.
  • Eine Firewallregel namens usbipd, damit alle lokalen Subnetze eine Verbindung mit dem Dienst herstellen können. Sie können diese Firewallregel ändern, um die Zugriffssteuerung zu optimieren.

Anfügen eines USB-Geräts

Vergewissern Sie sich vor dem Anfügen Ihres USB-Geräts, dass eine WSL-Befehlszeile geöffnet ist. Dadurch bleibt der einfache virtuelle WSL 2-Computer aktiv.

Hinweis

In diesem Dokument wird davon ausgegangen, dass Sie usbipd-win 4.0.0 oder höher installiert haben

  1. Listen Sie alle mit Windows verbundenen USB-Geräte auf, indem Sie PowerShell im Administratormodus öffnen und den Befehl eingeben. Nachdem die Geräte aufgelistet sind, wählen Sie die Bus-ID des Geräts aus, das Sie an WSL anfügen möchten, und kopieren Sie sie.

    usbipd list
    
  2. Vor dem Anfügen des USB-Geräts muss der Befehl usbipd bind zum Freigeben des Geräts verwendet werden, sodass es an WSL angeschlossen werden kann. Dies erfordert Administratorrechte. Wählen Sie die Bus-ID des Geräts aus, das Sie in WSL verwenden möchten, und führen Sie den folgenden Befehl aus. Stellen Sie nach dem Ausführen des Befehls sicher, dass das Gerät mit dem Befehl usbipd list freigegeben ist.

    usbipd bind --busid 4-4
    
  3. Führen Sie den folgenden Befehl aus, um das USB-Gerät anzufügen. (Sie müssen keine Eingabeaufforderung mit erhöhten Rechten mehr verwenden.) Stellen Sie sicher, dass eine WSL-Eingabeaufforderung geöffnet ist, um die WSL 2-einfache VM aktiv zu halten. Beachten Sie, dass das USB-Gerät nicht von Windows verwendet werden kann, solange das USB-Gerät an WSL angeschlossen ist. Nach der Verbindung mit WSL kann das USB-Gerät von jeder Verteilung verwendet werden, die als WSL 2 ausgeführt wird. Stellen Sie sicher, dass das Gerät mit usbipd list verbunden ist. Führen Sie an der WSL-Eingabeaufforderung den Befehl lsusb aus, um zu überprüfen, ob das USB-Gerät aufgelistet wird und mit den Linux-Tools interagiert werden kann.

    usbipd attach --wsl --busid <busid>
    
  4. Öffnen Sie Ubuntu (oder Ihre bevorzugte WSL-Befehlszeile), und listen Sie die angefügten USB-Geräte mithilfe des folgenden Befehls auf:

    lsusb
    

    Das soeben angefügte Gerät sollte angezeigt werden, und Sie sollten mithilfe von normalen Linux-Tools mit dem Gerät interagieren können. Je nach Anwendung müssen Sie möglicherweise udev-Regeln konfigurieren, damit Benutzer*innen ohne Root-Berechtigungen auf das Gerät zugreifen können.

  5. Wenn Sie das Gerät in WSL nicht mehr benötigen, können Sie das USB-Gerät entweder physisch trennen oder den folgenden Befehl von PowerShell ausführen:

    usbipd detach --busid <busid>
    

Weitere Informationen zur Funktionsweise finden Sie im Windows-Befehlszeilenblog und im Repository „usbipd-win“ auf GitHub.

Eine Videodemonstration finden Sie unter WSL 2: Connect USB devices.