Sådan tilsluttes USB-enheder i Windows Subsystem til Linux under Windows 11

Det er muligt at tilslutte USB-enheder i Windows Subsystem til Linux under Windows 11 og arbejde med dem direkte.

hurtige links

  • Hvad er usbipd-win?
  • Tilslut USB-enheder under Windows Subsystem til Linux
  • Er der et GUI-alternativ?

Microsoft introducerede Windows-undersystem til Linux (WSL) for et stykke tid tilbage, hvilket gav support til at køre Linux-apps direkte fra din Windows-installation uden behov for at konfigurere en virtuel maskine. Da WSL er et så komplekst kompatibilitetslag, havde WSL nogle begrænsninger. Den indledende implementering brugte ikke engang en fuldgyldig Linux-kerne, så flere applikationer stod over for kompatibilitetsproblemer. Version 2 gjorde en masse forbedringer, men der manglede stadig noget: understøttelse af tilslutning af fysiske USB-enheder.

Hvis du er en aktiv Windows-undersystem til Linux-bruger og ønsker at få adgang til USB-enheder direkte fra Linux-instansen, der kører under WSL, så vil du være glad for at vide, at der har været betydelige fremskridt på denne front. Takket være Microsofts bidrag til open source

usbipd-win projekt, kan du nu nyde USB-pass-through-adgang i WSL. Det betyder, at slutbrugere kan udføre opgaver som blinkende Android-enheder under Windows Subsystem til Linux, som ellers ikke understøttes af Linux-undersystemet.

Hvad er usbipd-win?

Usbipd-win-projektet handler om at skabe en løsning til deling af lokalt tilsluttede USB-enheder til andre maskiner, inklusive Hyper-V-gæster og WSL2. Den officielle WSL2 Linux-kerne plejede dog at mangle understøttelse af USB/IP protokol, hvilket kræver, at brugerne selv bygger kernen.

Siden WSL-kerneversion 5.10.60.1 er de påkrævede parametre konfigureret ud af boksen, så ingen manuel rekompilering er nødvendig. Microsoft har også bidraget med en kommandolinjegrænseflade til projektet for både at aktivere en USB-enhed til deling på Windows og problemfrit vedhæfte den inde fra WSL.

Tilslut USB-enheder under Windows Subsystem til Linux

Før du starter, skal du sikre dig, at du løber Windows 11 og har installeret alle WSL-opdateringer. Som tidligere nævnt skal du have en WSL 2 Linux-distro for at dette kan fungere.

  1. Kør følgende kommando fra WSL:
    uname -a
    Hvis den viser en kerneversion af 5.10.60.1 eller nyere (som vist nedenfor), så er du godt i gang.
    • Hvis den installerede kerneversion er ældre end 5.10.60.1, kan den opdateres ved hjælp af følgende kommandoer:
      wsl --shutdown
      wsl --update
  2. Gå over til GitHub-reposen for usbipd-win-projektet. Derefter download og installer den seneste udgivelse.
    • Den seneste version af usbipd-win understøtter lydløs driverinstallation takket være de certificerede drivere til Windows Hardware Compatibility Program. Det understøtter også Udvikler kanal builds af Windows 11.
    • Ud over udgivelsessiden på GitHub kan du installere og opdatere appen vha Windows Package Manager CLI (alias winget).
      winget install--interactive --exact dorssel.usbipd-win
  3. Installer brugerpladsværktøjerne til USB/IP og en database med USB-hardware-id'er. Hvis du kører Ubuntu på WSL, skal du udføre 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 vælge forskellige metapakker (f.eks. linux-tools-generic) også, afhængigt af den installerede distro. Du skal dog muligvis justere stivariablen i det næste trin i henhold til metapakkens versionsnummer.
    • For andre distros, se dokumentationen til det relevante pakkehåndteringsværktøj.
  4. I tilfælde af at det symbolske link oprettet ved hjælp af update-alternatives kommandoen i det forrige trin ikke virkede for dig, kan du manuelt ændre sudo-indstillingerne for at tillade root-brugeren at finde usbip kommando. For at gøre det skal du redigere /etc/sudoers fil ved hjælp af sudo visudo og tilføje /usr/lib/linux-tools/-generic til begyndelsen af secure_path. Det skal se ud som følgende:
    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
  5. Åbn en ny Terminal-instans som administrator, og skriv følgende kommando for at få vist alle USB-enheder, der er tilsluttet Windows.
    usbipd wsl list
  6. Noter BUSID-værdien for den USB-enhed, du vil tilslutte til WSL. Kør derefter følgende kommando for at starte vedhæftningsprocessen. Du bliver bedt af WSL om en adgangskode for at køre en sudo-kommando.
    usbipd wsl attach --busid <busid>
    For eksempel vedhæfter vi her en Android-enheds Fastboot-grænseflade til WSL fra værts-Windows 11-forekomsten:
  7. Åbn nu en ny WSL 2-instans og kør lsusb kommando for at se tilgængelige USB-enheder. Den skal angive den eller de tilsluttede enheder.
  8. Det er det! Du kan nu arbejde med din USB-enhed direkte fra WSL.

Når du er færdig, kan du afmontere enheden ved hjælp af kommandoen vist nedenfor. Kør det igen fra en Terminal-instans, der kører som administrator.

usbipd wsl detach --busid <busid>

Er der et GUI-alternativ?

Hvis kommandolinjegrænsefladen ikke er din stærke side, kan du give wsl-usb-gui et forsøg. Det er en uofficiel GUI-indpakning omkring usbipd-win-binæren, hvilket i høj grad forenkler USB-enhedslisten og interoperabiliteten mellem værts-OS og WSL-instansen.

  1. Sørg for, at den seneste version af usbipd-win er installeret, og at WSL-kernen er opdateret.
  2. Download den seneste installation af wsl-usb-gui fra projektets GitLab-udgivelsesside.
  3. Kør den MSI-fil, du downloadede.
    • Inden du installerer programmet, tjekker installationsprogrammet også for forudsætningerne og forsøger at sætte dem op, hvis det er nødvendigt. Det ville dog være bedre at holde alt opdateret af dig selv for at undgå uforudsete kompatibilitetsproblemer.
  4. Efter en vellykket installation bør du være i stand til at finde en nyoprettet genvej med navnet WSL USB i menuen Start. Kør appen derfra.
  5. Klik på Opdater knappen for at udfylde listen over USB-enheder, der er tilsluttet værtens OS.
  6. Brug Vedhæft og Løsrive knapper for at frigøre det fulde potentiale ved USB-pass-through.

Herfra og ud er du klar til at gå videre og pille ved alle dine USB-enheder, du ønsker i WSL. Vores fulde guide vil hjælpe dig på vej, men når USB-passthrough er sat op, som du kan lide det, toner den bare i baggrunden. For at lære mere, tag et kig på Microsofts officielle dokumentation om tilslutning af USB-enheder under WSL og usbipd-wins GitHub Wiki-sektion.

Tak til XDA Senior Member Some_Random_Username for tippet!