Il est possible de connecter des périphériques USB dans le sous-système Windows pour Linux sous Windows 11 et de travailler directement avec eux.
Liens rapides
- Qu'est-ce que usbipd-win ?
- Connectez des périphériques USB sous le sous-système Windows pour Linux
- Existe-t-il une alternative à l'interface graphique ?
Microsoft a présenté Sous-système Windows pour Linux (WSL) il y a quelque temps, qui apportait la prise en charge de l'exécution d'applications Linux directement à partir de votre installation Windows sans avoir besoin de configurer une machine virtuelle. Étant une couche de compatibilité si complexe, WSL avait certaines limites. L'implémentation initiale n'utilisait même pas de noyau Linux à part entière, de sorte que plusieurs applications rencontraient des problèmes de compatibilité. La version 2 a apporté de nombreuses améliorations, mais il manquait encore quelque chose: la prise en charge de la connexion de périphériques USB physiques.
Si vous êtes un utilisateur actif du sous-système Windows pour Linux et que vous souhaitez accéder aux périphériques USB directement à partir de l'instance Linux exécutée sous WSL, vous serez heureux de savoir qu'il y a eu
progrés significatif sur ce front. Grâce aux contributions de Microsoft à l'open-source usbipd-gagnant projet, vous pouvez désormais profiter d'un accès direct USB dans WSL. Cela signifie que les utilisateurs finaux peuvent effectuer des tâches telles que le flashage des appareils Android sous le sous-système Windows pour Linux, qui ne sont pas pris en charge par le sous-système Linux.Qu'est-ce que usbipd-win?
Le projet usbipd-win consiste à créer une solution pour partager des périphériques USB connectés localement avec d'autres machines, y compris les invités Hyper-V et WSL2. Cependant, le noyau Linux WSL2 officiel manquait de support pour le Protocole USB/IP, obligeant les utilisateurs à construire le noyau eux-mêmes.
Depuis la version 5.10.60.1 du noyau WSL, les paramètres requis sont configurés prêts à l'emploi, aucune recompilation manuelle n'est donc nécessaire. Microsoft a également fourni une interface de ligne de commande au projet pour à la fois activer un périphérique USB pour le partage sur Windows et le connecter de manière transparente à partir de WSL.
Connectez des périphériques USB sous le sous-système Windows pour Linux
Avant de commencer, assurez-vous que vous courez Windows 11 et avoir installé toutes les mises à jour WSL. Comme mentionné précédemment, vous avez besoin d'une distribution Linux WSL 2 pour que cela fonctionne.
- Exécutez la commande suivante depuis WSL :
S'il affiche une version du noyau 5.10.60.1 ou ultérieure (comme indiqué ci-dessous), vous êtes prêt à partir.uname -a
- Si la version du noyau installée est antérieure à 5.10.60.1, elle peut être mise à jour à l'aide des commandes suivantes :
wsl --shutdown
wsl --update
- Si la version du noyau installée est antérieure à 5.10.60.1, elle peut être mise à jour à l'aide des commandes suivantes :
- Rendez-vous sur le dépôt GitHub du projet usbipd-win. Alors télécharger et installer la dernière version.
- La dernière version de usbipd-win prend en charge l'installation silencieuse des pilotes, grâce aux pilotes certifiés Windows Hardware Compatibility Program. Il prend également en charge Versions du canal de développement de Windows 11.
- En plus de la page de publication sur GitHub, vous pouvez installer et mettre à jour l'application à l'aide de CLI du gestionnaire de packages Windows (alias winget).
winget install--interactive --exact dorssel.usbipd-win
- Installez les outils de l'espace utilisateur pour USB/IP et une base de données d'identificateurs matériels USB. Si vous exécutez Ubuntu sur WSL, exécutez les commandes suivantes :
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- Vous pouvez opter pour différents méta-packages (par ex.
linux-tools-generic
) également, selon la distribution installée. Cependant, vous devrez peut-être ajuster la variable de chemin à l'étape suivante, en fonction du numéro de version du méta-paquet. - Pour les autres distributions, consultez la documentation de l'outil de gestion de packages correspondant.
- Vous pouvez opter pour différents méta-packages (par ex.
- Dans le cas où le lien symbolique créé à l'aide du
update-alternatives
commande à l'étape précédente n'a pas fonctionné pour vous, vous pouvez modifier manuellement les options sudo pour permettre à l'utilisateur root de trouver leusbip
commande. Pour ce faire, éditez le/etc/sudoers
fichier utilisantsudo visudo
et ajouter/usr/lib/linux-tools/
au début de-generic secure_path
. Cela devrait ressembler à ce qui suit :Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:/usr/local/sbin:..."
- Ouvrez une nouvelle instance de terminal en tant qu'administrateur et tapez la commande suivante pour répertorier tous les périphériques USB connectés à Windows.
usbipd wsl list
- Notez la valeur BUSID du périphérique USB que vous souhaitez connecter au WSL. Ensuite, exécutez la commande suivante pour lancer le processus de pièce jointe. WSL vous demandera un mot de passe pour exécuter une commande sudo.
Par exemple, nous attachons ici l'interface Fastboot d'un appareil Android à WSL à partir de l'instance hôte Windows 11 :usbipd wsl attach --busid <busid>
- Ouvrez maintenant une nouvelle instance WSL 2 et exécutez le
lsusb
commande pour voir les périphériques USB disponibles. Il doit répertorier le ou les périphériques connectés. - C'est ça! Vous pouvez désormais travailler avec votre périphérique USB directement depuis WSL.
Lorsque vous avez terminé, vous pouvez détacher l'appareil à l'aide de la commande ci-dessous. Encore une fois, exécutez-le à partir d'une instance de terminal exécutée en tant qu'administrateur.
usbipd wsl detach --busid <busid>
Existe-t-il une alternative à l'interface graphique?
Si l'interface de ligne de commande n'est pas votre point fort, vous pouvez donner wsl-usb-gui un essai. Il s'agit d'un wrapper d'interface graphique non officiel autour du binaire usbipd-win, qui simplifie grandement la liste des périphériques USB et l'interopérabilité entre le système d'exploitation hôte et l'instance WSL.
- Assurez-vous que la dernière version de usbipd-win est installée et que le noyau WSL est à jour.
- Téléchargez le dernier programme d'installation de wsl-usb-gui à partir de la page des versions GitLab du projet.
- Exécutez le fichier MSI que vous avez téléchargé.
- Avant d'installer le programme, le programme d'installation vérifie également les prérequis et essaie de les configurer si nécessaire. Cependant, il serait préférable de tout garder à jour par vous-même pour éviter tout problème de compatibilité imprévu.
- Une fois l'installation réussie, vous devriez pouvoir trouver un raccourci nouvellement créé nommé WSLUSB dans le menu Démarrer. Exécutez l'application à partir de là.
- Clique sur le Rafraîchir pour remplir la liste des périphériques USB connectés au système d'exploitation hôte.
- Utilisez le Attacher et Détacher boutons pour libérer tout le potentiel du pass-through USB.
À partir de maintenant, vous êtes prêt à bricoler tous vos périphériques USB que vous voulez dans WSL. Notre guide complet vous aidera tout au long du processus, mais une fois que le relais USB est configuré comme vous l'aimez, il s'estompe en arrière-plan. Pour en savoir plus, jetez un œil à Documentation officielle de Microsoft sur la connexion de périphériques USB sous WSL et Section Wiki GitHub de usbipd-win.
Merci à XDA Senior Member Some_Random_Username pour le pourboire !