Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida illustra i passaggi necessari per connettere un dispositivo USB a una distribuzione Linux in esecuzione in WSL 2 usando il progetto open source USB/IP, usbipd-win.
La configurazione del progetto USB/IP nel computer Windows consentirà scenari USB comuni per sviluppatori, ad esempio il flashing di un Arduino o l'accesso a un lettore di smart card.
Prerequisiti
- Esecuzione di Windows 11 (Build 22000 o versione successiva). (Il supporto di Windows 10 è possibile, vedi la nota seguente).
- È necessario un computer con processore x64 o ARM64. (x86 non è attualmente supportato con usbipd-win).
- WSL è installato e configurato con la versione più recente.
- Distribuzione linux installata e impostata su WSL 2.
Annotazioni
Per controllare la versione di Windows e il numero di build, selezionare Tasto logo Windows + R, digitare winver, selezionare OK. È possibile eseguire l'aggiornamento alla versione più recente di Windows selezionando Start>Impostazioni>Aggiornamento Windows>Verifica disponibilità aggiornamenti.
Per controllare la versione del kernel Linux, aprire la distribuzione di Linux e immettere il comando : uname -a. Per eseguire manualmente l'aggiornamento al kernel più recente, aprire PowerShell e immettere il comando : wsl --update.
Importante
WSL ora supporta sia Windows 10 che Windows 11 tramite Microsoft Store, ovvero che gli utenti di Windows 10 ora hanno accesso alle versioni più recenti del kernel senza dover compilare dall'origine. Vedi WSL in Microsoft Store è ora disponibile a livello generale in Windows 10 e 11 per informazioni su come eseguire l'aggiornamento alla versione supportata dallo Store di WSL. Se non è possibile eseguire l'aggiornamento alla versione supportata dallo Store di WSL e ricevere automaticamente gli aggiornamenti del kernel, vedere il repository del progettoUSBIPD-WIN per istruzioni sulla connessione di dispositivi USB a una distribuzione Linux in esecuzione in WSL 2 creando il proprio kernel WSL abilitato per USBIP 2.
Installare il progetto USBIPD-WIN
Il supporto per la connessione di dispositivi USB non è disponibile in modo nativo in WSL, quindi è necessario installare il progetto usbipd-win open source.
Requisiti del kernel
Per usare USBIPD con sottosistema Windows per Linux (WSL), è necessario avere una versione del kernel Linux 5.10.60.1 o successiva. Se la versione del kernel installata è precedente alla 5.10.60.1, può essere aggiornata arrestando prima tutte le istanze in esecuzione di WSL con wsl --shutdown, quindi eseguendo il comando : wsl --update.
Installare USBIPD in WSL
- Passare alla pagina di versione più recente per il progetto usbipd-win.
- Selezionare il file .msi, che scaricherà il programma di installazione. È possibile che venga visualizzato un avviso che chiede di confermare che si considera attendibile il download.
- Eseguire il file del programma di installazione usbipd-win_x.msi scaricato.
Annotazioni
In alternativa, è anche possibile installare il progetto usbipd-win usando Gestione pacchetti di Windows (winget). Se winget è già stato installato, usare semplicemente il comando : winget install --interactive --exact dorssel.usbipd-win per installare usbipd-win. Se si esce da --interactive, winget potrebbe riavviare immediatamente il computer se necessario per installare i driver.
Verrà installato:
- Un servizio denominato
usbipd(nome visualizzato: Host dispositivo USBIP). È possibile controllare lo stato di questo servizio usando l'app Servizi da Windows. - Uno strumento da riga di comando
usbipd. Il percorso di questo strumento verrà aggiunto alla variabile di ambiente PATH. - Una regola del firewall chiamata
usbipdper consentire a tutte le subnet locali di connettersi al servizio. È possibile modificare questa regola del firewall per ottimizzare il controllo di accesso.
Collegare un dispositivo USB
Prima di collegare il dispositivo USB, assicurarsi che sia aperta una riga di comando WSL. In questo modo la macchina virtuale leggera WSL 2 sarà attiva.
Annotazioni
Questo documento presuppone che sia installato usbipd-win 5.0.0 o una versione successiva
Elencare tutti i dispositivi USB connessi a Windows aprendo PowerShell in modalità amministratore e immettendo il comando seguente. Dopo aver elencato i dispositivi, selezionare e copiare l'ID bus del dispositivo da collegare a WSL.
usbipd listPrima di collegare il dispositivo USB, il comando
usbipd binddeve essere usato per condividere il dispositivo, consentendo di collegarlo a WSL. Questo richiede privilegi di amministratore. Selezionare l'ID bus del dispositivo che si vuole usare in WSL ed eseguire il comando seguente. Dopo aver eseguito il comando, verificare che il dispositivo sia condiviso usando di nuovo il comandousbipd list.usbipd bind --busid 4-4Per collegare il dispositivo USB, eseguire il comando seguente. Non è più necessario usare un prompt degli amministratori con privilegi elevati. Assicurarsi che un prompt dei comandi WSL sia aperto per mantenere attiva la macchina virtuale leggera WSL 2. Si noti che, purché il dispositivo USB sia collegato a WSL, non può essere usato da Windows. Una volta collegato a WSL, il dispositivo USB può essere usato da qualsiasi distribuzione in esecuzione come WSL 2. Verificare che il dispositivo sia collegato tramite
usbipd list. Dal prompt WSL eseguirelsusbper verificare che il dispositivo USB sia elencato e che sia possibile interagire con gli strumenti Linux.usbipd attach --wsl --busid <busid>Aprire Ubuntu (o la riga di comando WSL preferita) ed elencare i dispositivi USB collegati usando il comando :
lsusbVerrà visualizzato il dispositivo appena collegato e sarà possibile interagire con esso usando i normali strumenti Linux. A seconda dell'applicazione, potrebbe essere necessario configurare le regole udev per consentire agli utenti non radice di accedere al dispositivo.
Al termine dell'uso del dispositivo in WSL, è possibile disconnettere fisicamente il dispositivo USB o eseguire questo comando da PowerShell:
usbipd detach --busid <busid>
Per altre informazioni sul funzionamento, vedere il blog della riga di comando di Windows e il repository usbipd-win su GitHub.
Per una dimostrazione video, vedere WSL 2: Collegare dispositivi USB (confronto tabulazioni vs spazi).
Windows Subsystem for Linux