USBIP - connexion automatique serveur

Bonjour à tous,
Voilà j’aimerais exposer mon problème qui peu peut être servir à plusieurs personnes.
J’utilise un Raspberry comme concentrateur USB réseau.
J’ai 2 machines qui ne fonctionnent que en USB et j’aimerais les rendre « IP », je me suis donc tourné vers le formidable outil USBIP, qui est assez facile à utiliser.
J’arrive à acceder au stockage de mes machines en réseau sans soucis mais voilà mon problème.
Quand j’arrête la machine, l’USB n’est donc plus reconnu par le raspberry et donc quand je remet en marche la machine, il faut que je remonte la machine dans USBIP

J’aimerais donc qu’a chaque fois que je branche un USB sur le raspberry, qu’il remonte automatiquement dans USBIP
Coté client je suis moins inquiet, il suffit de faire un petit script windows pour que l’USB remonte c’est assez simple mais coté serveur j’aimerais vraiment ne pas avoir à remettre les mains dans la raspberry a chaque redémarrage de machine et/ou du Raspberry.
Pour info j’utilise raspberry OS sur un Raspberry 1 (un vieux truc qui traine au fond d’un tiroir mais qui est je pense largement suffisant pour faire ca)
je vous joint les liens que j’ai utilisé pour faire ca :
http://usbip.sourceforge.net

Merci de votre aide
Cordialement
Theuma

hello,

en créant un service ds systemd ça devrait fonctionner dès le démarrage.
c’est expliqué là :
https://derushadigital.com/other%20projects/2019/02/19/RPi-USBIP-ZWave.html

Super merci à toi,
J’ai bien creer le service, mais impossible de le rendre automatique quand je rentre une clé USB sur le raspberry.

Je ne sais également pas comment mettre plusieurs clé USB, j’aurais 3 clé USB a mettre dessus … donc .

encore merci de ton aide

hello,

le paquet usblib se contente ( c’est déjà beaucoup ) de fournir le daemon (usbipd) , le(s) module(s) ( usbip_host …) et un programme qui permet de lister et attacher, détacher les périphériques à partager (usbip)
pour gérer l"insertion automatique il faudra donc trouver ou créer un script shell qui se « réveillera » lors de l’insertion - ça devrait pouvoir se faire en s’appuyant sur udev ! pas simple !

là c’est plus accessible il suffit de rajouter dans le service de systemd autant de ligne ExecStartPost que de clé en changeant simplement les numéros fabriquant:device que l’on obtient avec lsusb de la forme: NNNN:NNNN
ça fonctionne sur le serveur (usbidd) ça devrait aussi marcher sur le client service (usbip)

l’autre solution c’est d’utiliser dans un script bash ou en commande les fonction du programme usbip:

sur serveur ( adresse 192.168.1.17 )

  • lister les usb a partager
    pi@hotspot:~ $ /usr/sbin/usbip list -p -l
    busid=1-1.3#usbid=18a5:0243#
    busid=1-1.4#usbid=154b:00d2#
    busid=2-1#usbid=0781:5581#

  • voir a quoi ça correspond :
    pi@hotspot:~ $ lsusb
    Bus 002 Device 002: ID 0781:5581 SanDisk Corp. Ultra // disque system
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 004: ID 154b:00d2 PNY // cle partageable
    Bus 001 Device 005: ID 18a5:0243 Verbatim, Ltd Flash Drive (Store’n’Go) // cle partageable
    Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

  • lancer le partage (là j’ai choisi Verbatim, Ltd Flash Drive (Store’n’Go) )
    pi@hotspot:~ $ usbip bind --busid=1-1.3

sur le client

  • on liste les périphériques partagés par usbipd
    pi@raspberrypi3:~ $ usbip list -r 192.168.1.17
    Exportable USB devices
    ======================
    . 192.168.1.17
    1-1.3: Verbatim, Ltd : Flash Drive (Store’n’Go) (18a5:0243)
    : /sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3
    : (Defined at Interface level) (00/00/00)
  • on l’attache’ au client
    pi@raspberrypi3:~ $ sudo usbip attach -r 192.168.1.17 -b 1-1.3

pour faire « propre » mais je ne suis pas sur que ça soit très utile il faudrait aussi pour retirer une clé:

sur le client

pi@raspberrypi3:~ $ sudo usbip port
Imported USB devices

Port 00: at High Speed(480Mbps)
Verbatim, Ltd : Flash Drive (Store’n’Go) (18a5:0243)
2-1 → usbip://192.168.1.17:3240/1-1.3
→ remote bus/dev 001/005
Port 01: at High Speed(480Mbps)
PNY : unknown product (154b:00d2)
2-2 → usbip://192.168.1.17:3240/1-1.4
→ remote bus/dev 001/004
puis en fonction de l’usb à virer la j’ai choisi la cle PNY :
pi@raspberrypi3:~ $ sudo usbip detach --port=01
usbip: info: Port 1 is now detached!

sur le serveur

apres un lsusb pour s’y retrouver
pi@hotspot:~ $ sudo usbip list -p -l
busid=1-1.3#usbid=18a5:0243#
busid=1-1.4#usbid=154b:00d2#
busid=2-1#usbid=0781:5581#
pi@hotspot:~ $ sudo usbip unbind --busid=1-1.4
usbip: info: unbind device on busid 1-1.4: complete

voilà en gros les manips ! peut être plus simple de transformer le pi en NAS ( Comment configurer un serveur multimédia Raspberry Pi: 7 façons)