Come collegare i dispositivi USB nel sottosistema Windows per Linux in Windows 11

È possibile connettere dispositivi USB nel sottosistema Windows per Linux in Windows 11 e lavorare direttamente con essi.

Link veloci

  • Cos'è usbipd-win?
  • Collega i dispositivi USB sotto il sottosistema Windows per Linux
  • Esiste un'alternativa alla GUI?

Microsoft ha introdotto Sottosistema Windows per Linux (WSL) qualche tempo fa, che ha portato il supporto per l'esecuzione di app Linux direttamente dall'installazione di Windows senza la necessità di configurare una macchina virtuale. Essendo un livello di compatibilità così complesso, WSL presentava alcune limitazioni. L'implementazione iniziale non utilizzava nemmeno un kernel Linux completo, quindi diverse applicazioni hanno riscontrato problemi di compatibilità. La versione 2 ha apportato molti miglioramenti, ma mancava ancora qualcosa: il supporto per il collegamento di dispositivi USB fisici.

Se sei un utente attivo del sottosistema Windows per Linux e desideri accedere ai dispositivi USB direttamente dall'istanza Linux in esecuzione in WSL, sarai felice di sapere che è stato

progresso significativo su questo fronte. Grazie ai contributi di Microsoft all'open-source usbipd-win progetto, ora puoi usufruire dell'accesso pass-through USB in WSL. Significa che gli utenti finali possono eseguire attività come il flashing di dispositivi Android nel sottosistema Windows per Linux, che altrimenti non sarebbero supportati dal sottosistema Linux.

Cos'è usbipd-win?

Il progetto usbipd-win riguarda la creazione di una soluzione per la condivisione di dispositivi USB connessi localmente con altre macchine, inclusi i guest Hyper-V e WSL2. Tuttavia, il kernel Linux WSL2 ufficiale era privo di supporto per Protocollo USB/IP, richiedendo agli utenti di compilare il kernel da soli.

A partire dalla versione 5.10.60.1 del kernel WSL, i parametri richiesti sono configurati automaticamente, quindi non è necessaria la ricompilazione manuale. Microsoft ha anche contribuito al progetto con un'interfaccia a riga di comando per abilitare un dispositivo USB per la condivisione su Windows e collegarlo senza problemi dall'interno di WSL.

Collega i dispositivi USB sotto il sottosistema Windows per Linux

Prima di iniziare, assicurati di correre Finestre 11 e hanno installato tutti gli aggiornamenti WSL. Come accennato in precedenza, è necessaria una distribuzione Linux WSL 2 affinché funzioni.

  1. Eseguire il comando seguente da WSL:
    uname -a
    Se mostra una versione del kernel 5.10.60.1 o successiva (come mostrato di seguito), allora sei a posto.
    • Se la versione del kernel installata è precedente alla 5.10.60.1, può essere aggiornata utilizzando i seguenti comandi:
      wsl --shutdown
      wsl --update
  2. Vai al repository GitHub del progetto usbipd-win. Poi scaricare e installare l'ultima versione.
    • L'ultima versione di usbipd-win supporta l'installazione silenziosa dei driver, grazie ai driver certificati dal programma di compatibilità hardware di Windows. Supporta anche Build del canale Dev di Windows 11.
    • Oltre alla pagina di rilascio su GitHub, puoi installare e aggiornare l'app utilizzando CLI di Gestione pacchetti di Windows (alias winget).
      winget install--interactive --exact dorssel.usbipd-win
  3. Installare gli strumenti dello spazio utente per USB/IP e un database di identificatori hardware USB. Se esegui Ubuntu su WSL, esegui i seguenti comandi:
    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
    • Puoi optare per diversi meta pacchetti (ad es. linux-tools-generic) anche, a seconda della distribuzione installata. Tuttavia, potrebbe essere necessario regolare la variabile del percorso nel passaggio successivo, in base al numero di versione del metapacchetto.
    • Per altre distribuzioni, consultare la documentazione del relativo strumento di gestione dei pacchetti.
  4. Nel caso in cui il collegamento simbolico creato utilizzando il file update-alternatives comando nel passaggio precedente non ha funzionato per te, puoi modificare manualmente le opzioni sudo per consentire all'utente root di trovare il usbip comando. Per fare ciò, modifica il file /etc/sudoers file utilizzando sudo visudo e aggiungi /usr/lib/linux-tools/-generic all'inizio di secure_path. Dovrebbe essere simile al seguente:
    Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
  5. Apri una nuova istanza di Terminale come amministratore e digita il seguente comando per elencare tutti i dispositivi USB collegati a Windows.
    usbipd wsl list
  6. Annotare il valore BUSID del dispositivo USB che si desidera collegare a WSL. Successivamente, esegui il seguente comando per avviare il processo di collegamento. WSL ti chiederà una password per eseguire un comando sudo.
    usbipd wsl attach --busid <busid>
    Ad esempio, qui colleghiamo l'interfaccia Fastboot di un dispositivo Android a WSL dall'istanza di Windows 11 host:
  7. Ora apri una nuova istanza WSL 2 ed esegui il file lsusb comando per vedere i dispositivi USB disponibili. Dovrebbe elencare i dispositivi collegati.
  8. Questo è tutto! Ora puoi lavorare con il tuo dispositivo USB direttamente da WSL.

Al termine, puoi scollegare il dispositivo utilizzando il comando mostrato di seguito. Ancora una volta, eseguilo da un'istanza di Terminale in esecuzione come amministratore.

usbipd wsl detach --busid <busid>

Esiste un'alternativa alla GUI?

Nel caso in cui l'interfaccia della riga di comando non sia il tuo forte, puoi dare wsl-usb-gui un tentativo. È un wrapper GUI non ufficiale attorno al binario usbipd-win, che semplifica notevolmente l'elenco dei dispositivi USB e l'interoperabilità tra il sistema operativo host e l'istanza WSL.

  1. Assicurarsi che sia installata la versione più recente di usbipd-win e che il kernel WSL sia aggiornato.
  2. Scarica l'ultimo programma di installazione di wsl-usb-gui dalla pagina dei rilasci di GitLab del progetto.
  3. Esegui il file MSI che hai scaricato.
    • Prima di installare il programma, il programma di installazione verifica anche i prerequisiti e tenta di configurarli se necessario. Tuttavia, sarebbe meglio mantenere tutto aggiornato da soli per evitare problemi di compatibilità imprevisti.
  4. Dopo un'installazione riuscita, dovresti essere in grado di trovare un collegamento appena creato denominato WSL USB nel menu Avvio. Esegui l'app da lì.
  5. Clicca sul ricaricare pulsante per popolare l'elenco dei dispositivi USB collegati al sistema operativo host.
  6. Usa il Allegare E Staccare pulsanti per liberare tutto il potenziale del pass-through USB.

Da qui in poi, sei pronto per andare avanti e armeggiare con tutti i tuoi dispositivi USB che desideri in WSL. La nostra guida completa ti aiuterà lungo il percorso, ma una volta che il passthrough USB è impostato come preferisci, passa semplicemente in secondo piano. Per saperne di più, dai un'occhiata a Documentazione ufficiale di Microsoft sulla connessione di dispositivi USB tramite WSL E sezione GitHub Wiki di usbipd-win.

Grazie a XDA Senior Member Some_Random_Username per la mancia!