Hello,
je voudrais signaler à ceux qui ne connaissent pas un outil génial pour utiliser les ports USB d’un raspberry déporté (ou un autre Linux d’ailleurs)
Dans mon cas, j’ai un Jeedom en VM et plusieurs raspberry en Wifi dans la maison, connectés à différents devices et protocoles.
Par exemple, j’utilise le module teleinfo branché à mon linky, ou du Zwave.
Dans les 2 cas les controlleurs USB sont branchés sur un raspberry, et sont vu directement dans Jeedom.
Pour cela j’utilise USBIP.
A noter que j’ai eu des soucis d’instabilité et de comportements incohérents en Debian9 sur ma VM et le dernier Raspbian (basé debian 10).
En Debian 10 (et donc Jeedom4), tres stable, un bonheur.
Pour installer sur le jeedom ou le raspberry : apt install usbip et c’est tout.
Sur le raspberry :
modprobe usbip-core
modprobe usbip-host
modprobe vhci-hcd
root@RaspberryST:/# usbip list -l
- busid 1-1.1.1 (0424:7800)
Standard Microsystems Corp. : unknown product (0424:7800)
- busid 1-1.1.3 (0403:6015)
Future Technology Devices International, Ltd : Bridge(I2C/SPI/UART/FIFO) (0403:6015)
- busid 1-1.2.4 (0658:0200)
Sigma Designs, Inc. : Aeotec Z-Stick Gen5 (ZW090) - UZB (0658:0200)
- busid 1-1.3 (04d8:f897)
Microchip Technology, Inc. : unknown product (04d8:f897)
Sur le jeedom : (L’IP 192.168.30.27 étant celle du raspberry concerné)
modprobe vhci-hcd
modprobe usbip-core
usbip attach -d 1-1.1.3 -r 192.168.30.27
usbip attach -d 1-1.2.4 -r 192.168.30.27
Et voila, les devices USB sont disponibles dans Jeedom.
Pour rendre tout cela automatique, j’ai fait un petit script sur le raspberry qui se lance automatiquement au boot et remonte les ports USB sur le Jeedom :
1/
Ajout d’une clé SSH pour pouvoir executer des commandes SSH sur le Jeedom, depuis le raspberry, sans saisie de mot de passe (Le Jeedom est en 192.168.30.43)
Sur le Raspberry :
sudo ssh-keygen -t rsa
SSH_AUTH_SOCK=/tmp/ssh-agVZL13989/agent.13989; export SSH_AUTH_SOCK;
SSH_AGENT_PID=13990; export SSH_AGENT_PID;
eval $(ssh-agent)
ssh-add /root/.ssh/id_rsa
sudo cat /root/.ssh/id_rsa.pub | ssh root@192.168.30.43 'cat >> .ssh/authorized_keys'
2/
puis un petit script sur le raspberry :
root@RaspberryST:/# cat /home/pi/usbip_Server
#!/bin/bash
modprobe usbip-core
modprobe usbip-host
modprobe vhci-hcd
sleep 5
usbip unbind --busid=1-1.1.3
usbip unbind --busid=1-1.2.4
sleep 5
sudo usbipd -D
sudo usbip bind -b 1-1.1.3
sudo usbip bind -b 1-1.2.4
sleep 5
ssh 'root@192.168.30.43' modprobe vhci-hcd
ssh 'root@192.168.30.43' modprobe usbip-core
sleep 2
ssh 'root@192.168.30.43' usbip attach -d 1-1.1.3 -r 192.168.30.27
ssh 'root@192.168.30.43' usbip attach -d 1-1.2.4 -r 192.168.30.27
3/
puis j’ajoute un simple cron au démarrage (crontab -e, prenez nano comme choix si vous débutez)
@reboot sleep 10 && /home/pi/usbip_Server
Voila, si cela peut aider ou donner des idées.
EDIT : N"oubliez pas de mettre des IP fixes partout ou de faire une réservation DHCP…