Det är möjligt att ansluta USB-enheter i Windows Subsystem för Linux under Windows 11 och arbeta med dem direkt.
snabblänkar
- Vad är usbipd-win?
- Anslut USB-enheter under Windows Subsystem för Linux
- Finns det något GUI-alternativ?
Microsoft introducerade Windows undersystem för Linux (WSL) för ett tag sedan, vilket gav stöd för att köra Linux-appar direkt från din Windows-installation utan att behöva ställa in en virtuell maskin. Eftersom WSL var ett så komplext kompatibilitetsskikt hade vissa begränsningar. Den initiala implementeringen använde inte ens en fullfjädrad Linux-kärna, så flera applikationer stod inför kompatibilitetsproblem. Version 2 gjorde många förbättringar, men något saknades fortfarande: stöd för anslutning av fysiska USB-enheter.
Om du är en aktiv Windows-undersystem för Linux-användare och vill komma åt USB-enheter direkt från Linux-instansen som körs under WSL, kommer du gärna att veta att det har funnits betydande framsteg på denna front. Tack vare Microsofts bidrag till öppen källkod
usbipd-win projekt kan du nu njuta av USB-åtkomst i WSL. Det betyder att slutanvändare kan utföra uppgifter som att blinka Android-enheter under Windows Subsystem for Linux, som annars inte stöds av Linux-subsystemet.Vad är usbipd-win?
Usbipd-win-projektet handlar om att skapa en lösning för att dela lokalt anslutna USB-enheter till andra maskiner, inklusive Hyper-V-gäster och WSL2. Den officiella WSL2 Linux-kärnan brukade dock sakna stöd för USB/IP-protokoll, vilket kräver att användarna bygger kärnan själva.
Sedan WSL-kärnan version 5.10.60.1 konfigureras de nödvändiga parametrarna direkt, så ingen manuell omkompilering behövs. Microsoft har också bidragit med ett kommandoradsgränssnitt till projektet för att både möjliggöra en USB-enhet för delning på Windows och sömlöst ansluta den från WSL.
Anslut USB-enheter under Windows Subsystem för Linux
Innan du börjar, se till att du springer Windows 11 och har installerat alla WSL-uppdateringar. Som nämnts tidigare behöver du en WSL 2 Linux-distro för att detta ska fungera.
- Kör följande kommando inifrån WSL:
Om den visar en kärnversion av 5.10.60.1 eller senare (som visas nedan), är du bra att gå.uname -a
- Om den installerade kärnversionen är äldre än 5.10.60.1 kan den uppdateras med följande kommandon:
wsl --shutdown
wsl --update
- Om den installerade kärnversionen är äldre än 5.10.60.1 kan den uppdateras med följande kommandon:
- Gå över till GitHub-repo för usbipd-win-projektet. Sedan ladda ner och installera den senaste versionen.
- Den senaste versionen av usbipd-win stöder tyst drivrutinsinstallation, tack vare Windows Hardware Compatibility Program-certifierade drivrutiner. Det stödjer också Utvecklingskanalbyggen av Windows 11.
- Förutom releasesidan på GitHub kan du installera och uppdatera appen med hjälp av Windows Package Manager CLI (alias winget).
winget install--interactive --exact dorssel.usbipd-win
- Installera användarutrymmesverktygen för USB/IP och en databas med USB-hårdvaruidentifierare. Om du kör Ubuntu på WSL, kör följande kommandon:
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- Du kan välja olika metapaket (t.ex.
linux-tools-generic
) också, beroende på installerad distro. Du kan dock behöva justera sökvägsvariabeln i nästa steg, enligt versionsnumret för metapaketet. - För andra distros, se dokumentationen för det relevanta pakethanteringsverktyget.
- Du kan välja olika metapaket (t.ex.
- Om den symboliska länken skapas med hjälp av
update-alternatives
kommandot i föregående steg inte fungerade för dig, du kan manuellt ändra sudo-alternativen för att låta rotanvändaren hittausbip
kommando. För att göra det, redigera/etc/sudoers
fil med hjälp avsudo visudo
och lägg till/usr/lib/linux-tools/
till början av-generic secure_path
. Det ska se ut så här:Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
- Öppna en ny Terminal-instans som administratör och skriv följande kommando för att lista alla USB-enheter som är anslutna till Windows.
usbipd wsl list
- Notera BUSID-värdet för den USB-enhet du vill ansluta till WSL. Kör sedan följande kommando för att initiera bifogningsprocessen. Du kommer att bli tillfrågad av WSL om ett lösenord för att köra ett sudo-kommando.
Till exempel, här kopplar vi en Android-enhets Fastboot-gränssnitt till WSL från värd-Windows 11-instansen:usbipd wsl attach --busid <busid>
- Öppna nu en ny WSL 2-instans och kör
lsusb
kommando för att se tillgängliga USB-enheter. Den bör lista de anslutna enheterna. - Det är allt! Du kan nu arbeta med din USB-enhet direkt från WSL.
När du är klar kan du koppla loss enheten med kommandot som visas nedan. Återigen, kör den från en Terminal-instans som körs som administratör.
usbipd wsl detach --busid <busid>
Finns det något GUI-alternativ?
Om kommandoradsgränssnittet inte är din starka sida kan du ge wsl-usb-gui ett försök. Det är ett inofficiellt GUI-omslag runt usbipd-win-binären, vilket avsevärt förenklar listan över USB-enheter och interoperabilitet mellan värdoperativsystemet och WSL-instansen.
- Se till att den senaste versionen av usbipd-win är installerad och att WSL-kärnan är uppdaterad.
- Ladda ner det senaste installationsprogrammet för wsl-usb-gui från projektets GitLab-utgivningssida.
- Kör MSI-filen du laddade ner.
- Innan du installerar programmet kontrollerar installationsprogrammet också förutsättningarna och försöker ställa in dem vid behov. Det skulle dock vara bättre att hålla allt uppdaterat själv för att undvika oförutsedda kompatibilitetsproblem.
- Efter en lyckad installation bör du kunna hitta en nyskapad genväg som heter WSL USB i Start-menyn. Kör appen därifrån.
- Klicka på Uppdatera för att fylla i listan över USB-enheter som är anslutna till värdoperativsystemet.
- Använd Bifoga och Lösgöra knappar för att frigöra den fulla potentialen av USB-genomföring.
Härifrån och ut är du redo att gå vidare och mixtra med alla dina USB-enheter du vill ha i WSL. Vår fullständiga guide hjälper dig på vägen, men när USB-genomgången har ställts in som du gillar den, tonar den bara in i bakgrunden. För att lära dig mer, ta en titt på Microsofts officiella dokumentation om anslutning av USB-enheter under WSL och usbipd-wins GitHub Wiki-sektion.
Tack till XDA Senior Member Some_Random_Username för tipset!