Déporter des périphériques avec USB Redirector

Préambule

Jusqu’à maintenant, les périphériques USB nécessaires à ma domotique Jeedom étaient connectés à mon hyperviseur.
Ayant besoin de déplacer mon serveur, je devais trouver une solution pour déporter ces périphériques USB sur une autre machine, sans avoir à tirer des câbles, notamment pour le Téléinfo Linky.

Après quelques recherches, j’ai découvert USB Redirector, un outil permettant de partager des périphériques USB sur un réseau.

Présentation de l’architecture

Serveur USB Redirector :

Un Banana Pi M1+ sous Armbian
Connecté aux périphériques USB :

  • Dongle Z-Wave
  • Contrôleur X10
  • Dongle Téléinfo Linky

Client USB Redirector :

Jeedom sous Debian 10 (virtualisé sur mon NAS) 👉 Retrouve le pas à pas de l’installation de Jeedom
Connecté au serveur USB pour utiliser ces périphériques à distance

Étape par étape : Installation du serveur USB Redirector

Pré-requis et mise à jour du système

Sur la machine qui va partager les périphériques USB, je commence par mettre à jour le système :

sudo apt update && sudo apt upgrade -y
sudo apt install make gcc -y

Il est nécessaire d’avoir les headers du noyau pour compiler USB Redirector.

Vérification de la version du noyau :

uname -r

Dans mon cas :

6.1.63-current-sunxi

Je télécharge ensuite le paquet correspondant depuis Armbian et l’installe :

https://imola.armbian.com/apt/pool/main/l/

Je cherche le dossier linux-headers correspondant. Dans mon cas, il s’agit de linux-headers-current-sunxi/. Puis je télécharge dans ce dossier le paquet de la version 6.1.63.

wget https://imola.armbian.com/apt/pool/main/l/linux-headers-current-sunxi/linux-headers-current-sunxi_23.11.1_armhf__6.1.63-S69e4-Df461-Paef8-C88f1Hfe66-HK01ba-V014b-B1743-R448a.deb
sudo dpkg -i linux-headers-edge-sunxi_22.11.4_armhf.deb

Installation et configuration d’USB Redirector

Téléchargement et extraction de la version ARM d’USB Redirector :

wget https://www.incentivespro.com/downloads/usb-redirector-linux-arm-gnueabihf.tar.gz
tar -xvf usb-redirector-linux-arm-gnueabihf.tar.gz

Il existe d’autres versions à cette adresse :
https://www.incentivespro.com/downloads.html#usb-redirector-linux

Dans le dossier, j’exécute le script :

cd usb-redirector-linux-arm-gnueabihf
./installer.sh install-server

Liste des périphériques USB disponibles :

usbsrv -list-devices

Exemple de sortie :

=================== LIST OF LOCAL USB DEVICES ===================

   1: X10 Wireless Technology Inc USB ActiveHome Interface
      Vid: 0bc7   Pid: 0001   Port: 5-1.3
      Status: plugged

   2: CH2i uTinfo-V3.0 - Communications Modem Device
      Vid: 1a86   Pid: 55d4   Serial: TINFO-2098
      Status: plugged

   3: USB Device vendor_id 0x0658 - product_id 0x0200 - Communications Modem Device
      Vid: 0658   Pid: 0200   Serial: 32303136-3131-3033-3030-303031333836
      Status: plugged

===================== ======================= ===================

Partage d’un périphérique spécifique (ici, le premier) :

usbsrv -share 1

Installation du client USB Redirector (Jeedom)

Sur la VM Debian 10 hébergeant Jeedom, je mets à jour le système :

sudo apt update

Téléchargement de la version x86_64 d’USB Redirector :

wget https://www.incentivespro.com/downloads/usb-redirector-linux-x86_64.tar.gz
tar -xvf usb-redirector-linux-x86_64.tar.gz

Si nécessaire, installation des headers du noyau :

sudo apt install make gcc linux-headers-`uname -r`

Et installation d’USB Redirector :

cd usb-redirector-linux-x86_64
./installer.sh install-client

Connexion du client au serveur

Ajout du serveur USB Redirector (remplace 192.168.125.42 par l’IP de ton serveur) :

usbclnt -add-server 192.168.125.42:32032

Liste des périphériques USB partagés :

usbclnt -list-devices

Exemple de sortie :

================== LIST OF REMOTE USB DEVICES ===================

   1: USB server at 192.168.125.42:32032
      Mode: auto-connect     Status: connected
   |
   |-   1: X10 Wireless Technology Inc USB ActiveHome Interface
   |       Vid: 0bc7   Pid: 0001   Port: 5-1.3
   |       Mode: manual-connect   Status: available for connection
   |
   |-   2: CH2i uTinfo-V3.0 - Communications Modem Device
   |       Vid: 1a86   Pid: 55d4   Serial: TINFO-2098
   |       Mode: manual-connect   Status: available for connection
   |
   `-   3: USB Device vendor_id 0x0658 - product_id 0x0200 - Communications Modem Device
           Vid: 0658   Pid: 0200   Serial: 32303136-3131-3033-3030-303031333836
           Mode: manual-connect   Status: available for connection

===================== ======================= ===================

Connexion automatique aux périphériques partagés :

usbclnt -connect 1-1
usbclnt -auto-connect on 1-1

Ainsi, les périphériques USB seront toujours reconnectés automatiquement après un redémarrage.

Conclusion

Grâce à USB Redirector, Jeedom peut utiliser des périphériques USB distants, sans qu’ils soient physiquement connectés à son hyperviseur.

Avantages de cette solution :
– Déplacement facile du serveur sans rebrancher les périphériques USB
Téléinfo Linky accessible sans câblage supplémentaire
Reconnexion automatique après un redémarrage

Sources et références :

Tutoriel sur le forum Jeedom
Site officiel d’USB Redirector

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *