Hur man ansluter USB-enheter i Windows Subsystem för Linux under Windows 11

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.

  1. Kör följande kommando inifrån WSL:
    uname -a
    Om den visar en kärnversion av 5.10.60.1 eller senare (som visas nedan), är du bra att gå.
    • Om den installerade kärnversionen är äldre än 5.10.60.1 kan den uppdateras med följande kommandon:
      wsl --shutdown
      wsl --update
  2. 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
  3. 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.
  4. 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 hitta usbip kommando. För att göra det, redigera /etc/sudoers fil med hjälp av sudo visudo och lägg till /usr/lib/linux-tools/-generic till början av secure_path. Det ska se ut så här:
    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
  5. Ö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
  6. 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.
    usbipd wsl attach --busid <busid>
    Till exempel, här kopplar vi en Android-enhets Fastboot-gränssnitt till WSL från värd-Windows 11-instansen:
  7. Ö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.
  8. 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.

  1. Se till att den senaste versionen av usbipd-win är installerad och att WSL-kärnan är uppdaterad.
  2. Ladda ner det senaste installationsprogrammet för wsl-usb-gui från projektets GitLab-utgivningssida.
  3. 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.
  4. 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.
  5. Klicka på Uppdatera för att fylla i listan över USB-enheter som är anslutna till värdoperativsystemet.
  6. 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!