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.
Depuis l’été 2024, j’ai complètement abandonné USB Redirector. J’ai revendu mes périphériques Z-Wave, remplacé l’ensemble de mes équipements X10 et migré la Téléinfo vers MQTT.
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 :
