Partager via


Connecter des périphériques USB

Ce guide décrit les étapes nécessaires pour connecter un périphérique USB à une distribution Linux exécutée sur WSL 2 à l’aide du projet open source USB/IP, usbipd-win.

La configuration du projet USB/IP sur votre ordinateur Windows permet aux développeurs de scénarios USB courants tels que flasher un Arduino ou accéder à un lecteur de carte à puce.

Conditions préalables

  • Exécution de Windows 11 (build 22000 ou version ultérieure). (La prise en charge de Windows 10 est possible, consultez la remarque ci-dessous).
  • Une machine avec un processeur x64 ou ARM64 est requise. (x86 n’est actuellement pas pris en charge avec usbipd-win).
  • WSL est installé et configuré avec la dernière version.
  • Distribution Linux installée et paramétrée pour WSL 2.

Remarque

Pour vérifier votre version et votre numéro de build Windows, sélectionnez touche de logo Windows + R, tapez winver, sélectionnez OK. Vous pouvez effectuer une mise à jour vers la dernière version de Windows en sélectionnant Démarrer>les paramètres>windows Update>. Pour vérifier votre version du noyau Linux, ouvrez votre distribution Linux et entrez la commande suivante : uname -a. Pour effectuer une mise à jour manuelle vers le noyau le plus récent, ouvrez PowerShell et entrez la commande : wsl --update.

Important

WSL prend désormais en charge Windows 10 et Windows 11 via le Microsoft Store, ce qui signifie que les utilisateurs de Windows 10 ont désormais accès aux dernières versions du noyau sans avoir à compiler à partir de la source. Voir WSL dans le Microsoft Store est désormais en disponibilité générale sur Windows 10 et 11 pour plus d’informations sur la mise à jour vers la version prise en charge par le Windows Store de WSL. Si vous ne parvenez pas à effectuer la mise à jour vers la version prise en charge par le Windows Store de WSL et recevez automatiquement les mises à jour du noyau, consultez le dépôt de projetUSBIPD-WIN pour obtenir des instructions sur la connexion des périphériques USB à une distribution Linux exécutée sur WSL 2 en créant votre propre noyau WSL 2 compatible USBIP.

Installer le projet USBIPD-WIN

La prise en charge de la connexion de périphériques USB n’est pas disponible en mode natif dans WSL. Vous devez donc installer le projet usbipd-win open source.

Configuration requise pour le noyau

Pour utiliser USBIPD avec le sous-système Windows pour Linux (WSL), vous devez disposer d’une version de noyau Linux 5.10.60.1 ou ultérieure. Si la version du noyau installée est antérieure à 5.10.60.1, elle peut être mise à jour en arrêtant d’abord les instances en cours d’exécution de WSL avec wsl --shutdown, puis en exécutant la commande : wsl --update.

Installer USBIPD sur WSL

  1. Accédez à la dernière page de publication du projet usbipd-win.
  2. Sélectionnez le fichier .msi, qui télécharge le programme d’installation. (Vous pouvez recevoir un avertissement vous demandant de confirmer que vous approuvez ce téléchargement).
  3. Exécutez le fichier d’installation usbipd-win_x.msi téléchargé.

Remarque

Vous pouvez également installer le projet usbipd-win à l’aide du Gestionnaire de package Windows (winget). Si vous avez déjà installé winget, utilisez simplement la commande : winget install --interactive --exact dorssel.usbipd-win pour installer usbipd-win. Si vous omettez "--interactive", winget peut redémarrer immédiatement votre ordinateur si cela est nécessaire pour installer les pilotes.

Cette opération installera :

  • Un service appelé usbipd (nom affiché : hôte de périphérique USBIP). Vous pouvez vérifier l’état de ce service à l’aide de l’application Services à partir de Windows.
  • Un outil en ligne de commande usbipd. L’emplacement de cet outil est ajouté à la variable d’environnement PATH.
  • Une règle de pare-feu appelée usbipd pour permettre à tous les sous-réseaux locaux de se connecter au service. Vous pouvez modifier cette règle de pare-feu pour affiner le contrôle d’accès.

Attacher un périphérique USB

Avant de joindre votre périphérique USB, vérifiez qu’une ligne de commande WSL est ouverte. Cela permet de maintenir la machine virtuelle WSL 2 légère active.

Remarque

Ce document part du principe que vous avez usbipd-win 5.0.0 installé ou une version ultérieure

  1. Répertoriez tous les périphériques USB connectés à Windows en ouvrant PowerShell en mode administrateur et en entrant la commande suivante. Une fois que les appareils sont répertoriés, sélectionnez et copiez l’ID de bus de l’appareil que vous souhaitez attacher à WSL.

    usbipd list
    
  2. Avant de joindre le périphérique USB, la commande usbipd bind doit être utilisée pour partager l’appareil, ce qui lui permet d’être attaché à WSL. Cela nécessite des privilèges d’administrateur. Sélectionnez l’ID de bus de l’appareil que vous souhaitez utiliser dans WSL et exécutez la commande suivante. Après avoir exécuté la commande, vérifiez que l’appareil est partagé à l’aide de la commande usbipd list à nouveau.

    usbipd bind --busid 4-4
    
  3. Pour attacher le périphérique USB, exécutez la commande suivante. (Vous n’avez plus besoin d’utiliser une invite d’administrateur avec élévation de privilèges.) Vérifiez qu’une invite de commandes WSL est ouverte afin de maintenir la machine virtuelle WSL 2 légère active. Notez que tant que le périphérique USB est attaché à WSL, il ne peut pas être utilisé par Windows. Une fois attaché à WSL, l’appareil USB peut être utilisé par n’importe quelle distribution exécutée en tant que WSL 2. Vérifiez que l’appareil est attaché à l’aide de usbipd list. À partir de l’invite WSL, exécutez lsusb pour vérifier que l’appareil USB est listé et utilisable avec les outils Linux.

    usbipd attach --wsl --busid <busid>
    
  4. Ouvrez Ubuntu (ou votre ligne de commande WSL préférée) et listez les périphériques USB attachés à l’aide de la commande :

    lsusb
    

    Vous devez voir l’appareil que vous venez d’attacher et être en mesure d’interagir avec lui à l’aide d’outils Linux normaux. Selon votre application, vous devrez peut-être configurer des règles udev pour permettre aux utilisateurs non-root d’accéder au dispositif.

  5. Une fois que vous avez terminé d’utiliser l’appareil dans WSL, vous pouvez soit déconnecter physiquement l’appareil USB, soit exécuter cette commande à partir de PowerShell :

    usbipd detach --busid <busid>
    

Pour en savoir plus sur le fonctionnement de ce processus, consultez le blog de ligne de commande Windows et le dépôt usbipd-win sur GitHub.

Pour une démonstration vidéo, consultez WSL 2 : Connecter des périphériques USB (Onglets et espaces affichés)