Utiliser un port USB dans WSL

De knowledge
Révision datée du 17 août 2025 à 22:55 par Jpinon (discussion | contributions) (→‎3. Partager le périphérique avec WSL)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Accès à un périphérique USB (COM) depuis WSL2

Pré-requis

  • Windows 10 ou 11 avec WSL2 installé
  • Périphérique USB connecté (ex: convertisseur USB-Série)
  • Outil [[1]] installé sur Windows
  • (Optionnel) Désinstallation du filtre USBPcap si installé avec Wireshark

Étapes

1. Lancer PowerShell en mode administrateur

  1. Appuyer sur la touche Windows
  2. Taper PowerShell
  3. Clic droit → Exécuter en tant qu’administrateur

2. Lister les périphériques USB disponibles

usbipd list

Exemple de sortie :

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
2-3    1a86:7523  USB-SERIAL CH340 (COM3)                                       Shared (forced)
2-5    1c7a:05a1  EgisTec Touch Fingerprint Sensor                              Not shared
2-10   8087:0033  Intel(R) Wireless Bluetooth(R)                                Not shared

Persisted:
GUID                                  DEVICE
c92d89c5-835f-48e0-9253-c3e6479422c3  USB Serial Converter

3. Partager le périphérique avec WSL

usbipd bind --busid 2-3 --force  # --force necessaire si wireshark est installé
usbipd attach --wsl --busid 2-3

Si WLS est arrêtée seule la dernière ligne "attach" doit être relancée.

4. Vérifier dans WSL

ls /dev/ttyUSB*

Le périphérique devrait apparaître comme /dev/ttyUSB0 ou similaire.

Test de communication

Avec screen

sudo apt install screen
screen /dev/ttyUSB0 115200

Quitter avec : Ctrl + A puis KY

Avec Python (pyserial)

sudo apt install python3-pyserial
import serial

ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
ser.write(b'*IDN?\n')  # Exemple de commande SCPI
response = ser.readline()
print("Réponse:", response.decode().strip())
ser.close()

Remarques

  • Le port COM3 de Windows peut correspondre à /dev/ttyUSB0 dans WSL2
  • USBPcap peut interférer avec usbipd-win → désinstallation recommandée si non utilisé