Hvordan koble til USB-enheter i Windows Subsystem for Linux under Windows 11

Det er mulig å koble til USB-enheter i Windows Subsystem for Linux under Windows 11 og jobbe med dem direkte.

Hurtigkoblinger

  • Hva er usbipd-win?
  • Koble til USB-enheter under Windows Subsystem for Linux
  • Er det noe GUI-alternativ?

Microsoft introduserte Windows-undersystem for Linux (WSL) for en stund tilbake, noe som ga støtte for å kjøre Linux-apper rett fra Windows-installasjonen din uten å måtte sette opp en virtuell maskin. Som et så komplekst kompatibilitetslag hadde WSL noen begrensninger. Den første implementeringen brukte ikke engang en fullverdig Linux-kjerne, så flere applikasjoner sto overfor kompatibilitetsproblemer. Versjon 2 gjorde mange forbedringer, men noe manglet fortsatt: støtte for tilkobling av fysiske USB-enheter.

Hvis du er en aktiv Windows Subsystem for Linux-bruker og ønsker å få tilgang til USB-enheter rett fra Linux-forekomsten som kjører under WSL, vil du gjerne vite at det har vært betydelig fremgang på denne fronten. Takket være Microsofts bidrag til åpen kildekode

usbipd-vinn prosjektet, kan du nå nyte USB-pass-through-tilgang i WSL. Det betyr at sluttbrukere kan utføre oppgaver som å blinke Android-enheter under Windows Subsystem for Linux, som ellers ikke støttes av Linux-undersystemet.

Hva er usbipd-win?

Usbipd-win-prosjektet handler om å lage en løsning for å dele lokalt tilkoblede USB-enheter til andre maskiner, inkludert Hyper-V-gjester og WSL2. Imidlertid manglet den offisielle WSL2 Linux-kjernen støtte for USB/IP-protokoll, som krever at brukere bygger kjernen selv.

Siden WSL-kjerneversjon 5.10.60.1, er de nødvendige parameterne konfigurert ut av esken, så ingen manuell rekompilering er nødvendig. Microsoft har også bidratt med et kommandolinjegrensesnitt til prosjektet for både å aktivere en USB-enhet for deling på Windows og sømløst koble den fra WSL.

Koble til USB-enheter under Windows Subsystem for Linux

Før du starter, sørg for at du løper Windows 11 og har installert alle WSL-oppdateringer. Som nevnt tidligere trenger du en WSL 2 Linux distro for at dette skal fungere.

  1. Kjør følgende kommando fra WSL:
    uname -a
    Hvis den viser en kjerneversjon av 5.10.60.1 eller nyere (som vist nedenfor), så er du i gang.
    • Hvis den installerte kjerneversjonen er eldre enn 5.10.60.1, kan den oppdateres ved hjelp av følgende kommandoer:
      wsl --shutdown
      wsl --update
  2. Gå over til GitHub-repoen til usbipd-win-prosjektet. Deretter last ned og installer den nyeste versjonen.
    • Den nyeste versjonen av usbipd-win støtter stille driverinstallasjon, takket være sertifiserte drivere for Windows Hardware Compatibility Program. Den støtter også Utviklerkanalbygg av Windows 11.
    • I tillegg til utgivelsessiden på GitHub, kan du installere og oppdatere appen ved hjelp av Windows Package Manager CLI (aka winget).
      winget install--interactive --exact dorssel.usbipd-win
  3. Installer brukerplassverktøyene for USB/IP og en database med USB-maskinvareidentifikatorer. Hvis du kjører Ubuntu på WSL, kjør følgende kommandoer:
    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 velge forskjellige metapakker (f.eks. linux-tools-generic) også, avhengig av installert distro. Imidlertid må du kanskje justere banevariabelen i neste trinn, i henhold til versjonsnummeret til metapakken.
    • For andre distroer, se dokumentasjonen til det relevante pakkehåndteringsverktøyet.
  4. I tilfelle den symbolske lenken opprettet ved hjelp av update-alternatives kommandoen i forrige trinn ikke fungerte for deg, kan du manuelt endre sudo-alternativene for å la rotbrukeren finne usbip kommando. For å gjøre det, rediger /etc/sudoers fil ved hjelp av sudo visudo og legg til /usr/lib/linux-tools/-generic til begynnelsen av secure_path. Det skal se slik ut:
    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
  5. Åpne en ny Terminal-forekomst som administrator og skriv inn følgende kommando for å vise alle USB-enhetene som er koblet til Windows.
    usbipd wsl list
  6. Noter BUSID-verdien til USB-enheten du vil koble til WSL. Kjør deretter følgende kommando for å starte vedleggsprosessen. Du vil bli bedt av WSL om et passord for å kjøre en sudo-kommando.
    usbipd wsl attach --busid <busid>
    For eksempel, her kobler vi en Android-enhets Fastboot-grensesnitt til WSL fra verts-Windows 11-forekomsten:
  7. Åpne nå en ny WSL 2-forekomst og kjør lsusb kommando for å se tilgjengelige USB-enheter. Den skal vise tilkoblede enheter.
  8. Det er det! Du kan nå jobbe med USB-enheten din rett fra WSL.

Når du er ferdig, kan du koble fra enheten ved å bruke kommandoen vist nedenfor. Igjen, kjør den fra en Terminal-forekomst som kjører som administrator.

usbipd wsl detach --busid <busid>

Er det noe GUI-alternativ?

I tilfelle kommandolinjegrensesnittet ikke er din sterke side, kan du gi wsl-usb-gui et forsøk. Det er en uoffisiell GUI-innpakning rundt usbipd-win-binæren, som i stor grad forenkler listen over USB-enheter og interoperabilitet mellom verts-OS og WSL-forekomsten.

  1. Sørg for at den nyeste versjonen av usbipd-win er installert og at WSL-kjernen er oppdatert.
  2. Last ned det siste installasjonsprogrammet for wsl-usb-gui fra prosjektets GitLab-utgivelsesside.
  3. Kjør MSI-filen du lastet ned.
    • Før du installerer programmet, sjekker installasjonsprogrammet også for forutsetningene og prøver å sette dem opp om nødvendig. Det ville imidlertid være bedre å holde alt oppdatert selv for å unngå uforutsette kompatibilitetsproblemer.
  4. Etter en vellykket installasjon, bør du kunne finne en nyopprettet snarvei kalt WSL USB i Start-menyen. Kjør appen derfra.
  5. Klikk på Forfriske for å fylle ut listen over USB-enheter koblet til verts-OS.
  6. Bruke Feste og Løsne knapper for å frigjøre det fulle potensialet til USB-gjennomføring.

Herfra og ut er du klar til å gå videre og tukle med alle USB-enhetene du vil ha i WSL. Vår komplette guide vil hjelpe deg på veien, men når USB-gjennomgangen er satt opp slik du liker den, forsvinner den bare i bakgrunnen. For å lære mer, ta en titt på Microsofts offisielle dokumentasjon om tilkobling av USB-enheter under WSL og usbipd-wins GitHub Wiki-seksjon.

Takk til XDA Senior Member Some_Random_Username for tipset!