Unter Windows 11 ist es möglich, USB-Geräte im Windows-Subsystem für Linux anzuschließen und direkt damit zu arbeiten.
Quicklinks
- Was ist usbipd-win?
- Schließen Sie USB-Geräte unter dem Windows-Subsystem für Linux an
- Gibt es eine GUI-Alternative?
Microsoft eingeführt Windows-Subsystem für Linux (WSL) vor einiger Zeit, das die Ausführung von Linux-Apps direkt aus Ihrer Windows-Installation unterstützte, ohne dass eine virtuelle Maschine eingerichtet werden musste. Da es sich bei der WSL um eine so komplexe Kompatibilitätsschicht handelt, gab es einige Einschränkungen. Bei der ersten Implementierung wurde nicht einmal ein vollwertiger Linux-Kernel verwendet, sodass bei mehreren Anwendungen Kompatibilitätsprobleme auftraten. Version 2 brachte viele Verbesserungen, aber etwas fehlte noch: die Unterstützung für den Anschluss physischer USB-Geräte.
Wenn Sie ein aktiver Benutzer des Windows-Subsystems für Linux sind und direkt über die unter WSL ausgeführte Linux-Instanz auf USB-Geräte zugreifen möchten, werden Sie froh sein, dass dies der Fall ist
erhebliche Fortschritte an dieser Front. Vielen Dank an Microsofts Beiträge zur Open Source usbipd-win Projekt können Sie jetzt den USB-Pass-Through-Zugriff in WSL genießen. Dies bedeutet, dass Endbenutzer Aufgaben wie das Flashen von Android-Geräten unter dem Windows-Subsystem für Linux ausführen können, die ansonsten vom Linux-Subsystem nicht unterstützt werden.Was ist usbipd-win?
Beim usbipd-win-Projekt geht es darum, eine Lösung für die gemeinsame Nutzung lokal angeschlossener USB-Geräte mit anderen Maschinen zu schaffen, einschließlich Hyper-V-Gästen und WSL2. Allerdings fehlte dem offiziellen WSL2-Linux-Kernel früher die Unterstützung USB/IP-Protokoll, sodass Benutzer den Kernel selbst erstellen müssen.
Seit der WSL-Kernel-Version 5.10.60.1 sind die erforderlichen Parameter sofort konfiguriert, sodass keine manuelle Neukompilierung erforderlich ist. Microsoft hat dem Projekt außerdem eine Befehlszeilenschnittstelle beigesteuert, um sowohl die gemeinsame Nutzung eines USB-Geräts unter Windows zu ermöglichen als auch das nahtlose Anschließen innerhalb der WSL.
Schließen Sie USB-Geräte unter dem Windows-Subsystem für Linux an
Stellen Sie vor dem Start sicher, dass Sie laufen Windows 11 und alle WSL-Updates installiert haben. Wie bereits erwähnt, benötigen Sie eine WSL 2-Linux-Distribution, damit dies funktioniert.
- Führen Sie den folgenden Befehl in der WSL aus:
Wenn eine Kernelversion von 5.10.60.1 oder höher angezeigt wird (wie unten gezeigt), können Sie loslegen.uname -a
- Wenn die installierte Kernel-Version älter als 5.10.60.1 ist, kann sie mit den folgenden Befehlen aktualisiert werden:
wsl --shutdown
wsl --update
- Wenn die installierte Kernel-Version älter als 5.10.60.1 ist, kann sie mit den folgenden Befehlen aktualisiert werden:
- Besuchen Sie das GitHub-Repo des usbipd-win-Projekts. Dann Laden Sie die neueste Version herunter und installieren Sie sie.
- Die neueste Version von usbipd-win unterstützt dank der vom Windows Hardware Compatibility Program zertifizierten Treiber die stille Treiberinstallation. Es unterstützt auch Entwicklerkanal-Builds von Windows 11.
- Zusätzlich zur Release-Seite auf GitHub können Sie die App über installieren und aktualisieren Windows-Paketmanager-CLI (auch bekannt als Winget).
winget install--interactive --exact dorssel.usbipd-win
- Installieren Sie die User-Space-Tools für USB/IP und eine Datenbank mit USB-Hardware-IDs. Wenn Sie Ubuntu unter WSL ausführen, führen Sie die folgenden Befehle aus:
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- Sie können sich für verschiedene Metapakete entscheiden (z. B.
linux-tools-generic
), abhängig von der installierten Distribution. Möglicherweise müssen Sie jedoch im nächsten Schritt die Pfadvariable entsprechend der Versionsnummer des Metapakets anpassen. - Informationen zu anderen Distributionen finden Sie in der Dokumentation des entsprechenden Paketverwaltungstools.
- Sie können sich für verschiedene Metapakete entscheiden (z. B.
- Falls der symbolische Link mit erstellt wurde
update-alternatives
Wenn der Befehl im vorherigen Schritt bei Ihnen nicht funktioniert hat, können Sie die Sudo-Optionen manuell ändern, damit der Root-Benutzer den finden kannusbip
Befehl. Bearbeiten Sie dazu die/etc/sudoers
Datei verwendensudo visudo
und hinzufügen/usr/lib/linux-tools/
bis zum Anfang-generic secure_path
. Es sollte wie folgt aussehen:Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
- Öffnen Sie als Administrator eine neue Terminalinstanz und geben Sie den folgenden Befehl ein, um alle mit Windows verbundenen USB-Geräte aufzulisten.
usbipd wsl list
- Notieren Sie sich den BUSID-Wert des USB-Geräts, das Sie an WSL anschließen möchten. Führen Sie als Nächstes den folgenden Befehl aus, um den Anhangsprozess zu starten. Sie werden von der WSL aufgefordert, ein Passwort einzugeben, um einen Sudo-Befehl auszuführen.
Hier fügen wir beispielsweise die Fastboot-Schnittstelle eines Android-Geräts von der Host-Windows 11-Instanz an WSL an:usbipd wsl attach --busid <busid>
- Öffnen Sie nun eine neue WSL 2-Instanz und führen Sie die aus
lsusb
Befehl, um verfügbare USB-Geräte anzuzeigen. Es sollte die angeschlossenen Geräte auflisten. - Das ist es! Sie können jetzt direkt von der WSL aus mit Ihrem USB-Gerät arbeiten.
Wenn Sie fertig sind, können Sie das Gerät mit dem unten gezeigten Befehl trennen. Führen Sie es erneut von einer Terminalinstanz aus, die als Administrator ausgeführt wird.
usbipd wsl detach --busid <busid>
Gibt es eine GUI-Alternative?
Falls die Befehlszeilenschnittstelle nicht Ihre Stärke ist, können Sie nachgeben wsl-usb-gui ein Versuch. Es handelt sich um einen inoffiziellen GUI-Wrapper um die Binärdatei usbipd-win, der die Auflistung von USB-Geräten und die Interoperabilität zwischen dem Host-Betriebssystem und der WSL-Instanz erheblich vereinfacht.
- Stellen Sie sicher, dass die neueste Version von usbipd-win installiert ist und der WSL-Kernel auf dem neuesten Stand ist.
- Laden Sie das neueste Installationsprogramm von wsl-usb-gui herunter von der GitLab-Releases-Seite des Projekts.
- Führen Sie die heruntergeladene MSI-Datei aus.
- Vor der Installation des Programms prüft der Installer außerdem die Voraussetzungen und versucht diese ggf. einzurichten. Es wäre jedoch besser, alles selbst auf dem neuesten Stand zu halten, um unvorhergesehene Kompatibilitätsprobleme zu vermeiden.
- Nach einer erfolgreichen Installation sollten Sie eine neu erstellte Verknüpfung mit dem Namen finden können WSL-USB im Startmenü. Führen Sie die App von dort aus aus.
- Klick auf das Aktualisierung Klicken Sie auf die Schaltfläche, um die Liste der mit dem Host-Betriebssystem verbundenen USB-Geräte zu füllen.
- Benutzen Sie die Anfügen Und Ablösen Tasten, um das volle Potenzial von USB-Pass-Through auszuschöpfen.
Von hier aus können Sie loslegen und an allen gewünschten USB-Geräten in der WSL herumbasteln. Unser ausführlicher Leitfaden hilft Ihnen dabei, aber sobald der USB-Passthrough nach Ihren Wünschen eingerichtet ist, tritt er einfach in den Hintergrund. Um mehr zu erfahren, werfen Sie einen Blick auf Die offizielle Dokumentation von Microsoft zum Anschließen von USB-Geräten unter WSL Und GitHub-Wiki-Bereich von usbipd-win.
Vielen Dank an XDA Senior Member Some_Random_Username für den Tipp!