Guide des technologies

Installer et utiliser USB/IP côté client

5 min read Administration système Mis à jour 27 Sep 2025
USB/IP — installer et utiliser côté client
USB/IP — installer et utiliser côté client

Prérequis

  • Accès root ou sudo sur la machine cliente.
  • Paquet usbip disponible (exemple OpenSUSE 11.2).
  • Adresse IP du serveur USB/IP (ex. 192.168.0.100).
  • Connexion réseau fiable entre client et serveur.

Installation sur le client

Sur OpenSUSE, installez le paquet usbip :

yast2 -i usbip

Le paquet s’attend à trouver le fichier usb.ids dans /usr/share/hwdata. Sur OpenSUSE 11.2, il se trouve dans /usr/share/usbip/usb.ids : créez donc un lien symbolique :

mkdir /usr/share/hwdata
ln -sf /usr/share/usbip/usb.ids /usr/share/hwdata/

Charger le module vhci-hcd

Chargez le module du noyau qui crée un contrôleur hôte USB virtuel :

modprobe vhci-hcd

Vérifiez qu’il est chargé :

lsmod | grep vhci_hcd

Exemple de sortie :

client1:~ # lsmod | grep vhci_hcd
vhci_hcd 26576 0
usbip_common_mod 25232 1 vhci_hcd
client1:~ #

Important: si lsmod ne retourne rien, vérifiez la compatibilité du noyau et les logs avec dmesg.

Automatiser le chargement au démarrage

Pour charger le module automatiquement au démarrage, ajoutez-le à la variable MODULES_LOADED_ON_BOOT dans /etc/sysconfig/kernel :

vi /etc/sysconfig/kernel

Insérer (ou modifier) la ligne :

MODULES_LOADED_ON_BOOT="vhci-hcd"

Puis exécutez :

SuSEconfig

Note: sur les distributions récentes, utilisez systemd avec un fichier .conf ou modprobe.d pour rendre le module persistant.

Connexion au serveur et attachement du périphérique

Listez les périphériques disponibles sur le serveur (remplacez l’IP par celle de votre serveur) :

usbip -l 192.168.0.100

Sortie attendue (exemple) :

client1:~ # usbip -l 192.168.0.100

  • 192.168.0.100
    2-5: SanDisk Corp. : Cruzer Micro 256/512MB Flash Drive (0781:5151)
    : /sys/devices/pci0000:00/0000:00:04.1/usb2/2-5
    : (Defined at Interface level) (00/00/00)
    : 0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)

Attachez le périphérique au client en utilisant le BUSID (2-5) :

usbip -a 192.168.0.100 2-5

Exemple :

client1:~ # usbip -a 192.168.0.100 2-5
8 ports available

port 0 attached
client1:~ #

Vérifiez avec lsusb :

lsusb

Exemple :

client1:~ # lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0781:5151 SanDisk Corp. Cruzer Micro Flash Drive
client1:~ #

Vous pouvez maintenant utiliser le périphérique (monter, formater, lire/écrire) comme s’il était local.

Détacher un périphérique USB distant

Pour détacher, identifiez d’abord le port utilisé par le périphérique :

usbip --port

Exemple :

client1:~ # usbip –port
8 ports available

Port 00: at High Speed(480Mbps)
SanDisk Corp. : Cruzer Micro 256/512MB Flash Drive (0781:5151)
1-1 -> usbip://192.168.0.100:3240/2-5 (remote devid 00020002 (bus/dev 002/002))
1-1:1.0 used by usb-storage
/sys/devices/platform/vhci_hcd/usb1/1-1/1-1:1.0/host4/scsi_host/host4/device
Port 01:
Port 02:
Port 03:
Port 04:
Port 05:
Port 06:
Port 07:
client1:~ #

Puis détachez le port (ici 00) :

usbip -d 00

Exemple :

client1:~ # usbip -d 00
8 ports available

port 0 detached
client1:~ #

Sur le serveur : réaffecter le périphérique localement

Sur le serveur, utilisez le BUSID pour binder le périphérique à d’autres pilotes locaux et le retirer du pool usbip :

bind_driver --other 2-5

Exemple :

server1:~ # bind_driver –other 2-5
(process:3484): DEBUG: write “del 2-5” to /sys/bus/usb/drivers/usbip/match_busid Message: bind 2-5 to other drivers than usbip, complete!
server1:~#

Retournez sur le client et vérifiez que le périphérique n’est plus listé :

lsusb

Exemple :

client1:~ # lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
client1:~ #

Bonnes pratiques et sécurité

  • Évitez d’exposer le port usbip (par défaut 3240) sur des réseaux non fiables. Utilisez un VPN ou des règles de pare-feu strictes.
  • Restreignez l’accès au serveur usbip par adresse IP.
  • Sur des distributions avec SELinux/AppArmor, vérifiez les politiques qui peuvent bloquer l’attachement.
  • Testez d’abord sur un périphérique non critique.
  • Surveillez les logs (dmesg, journalctl) pour détecter des erreurs au moment de l’attachement.

Important: usbip ne chiffre pas le trafic par défaut. Ne transmettez pas de données sensibles sans tunnel sécurisé.

Dépannage rapide

  • Module non chargé : exécutez modprobe vhci-hcd; vérifiez dmesg pour les erreurs.
  • usb.ids manquant : assurez-vous que le fichier usb.ids est accessible ou créez le lien symbolique.
  • Connexion refusée : vérifiez que le serveur écoute sur le port 3240 et que le pare-feu autorise la connexion. Utilisez ss ou netstat pour confirmer.
  • Périphérique non visible après attachement : vérifiez usbip –port pour lier correctement; redémarrez le service vhci si nécessaire.
  • Conflits de pilotes : le périphérique peut être pris par un pilote local; sur le serveur, utilisez bind_driver pour réaffecter.

Commands utiles :

modprobe -r vhci-hcd && modprobe vhci-hcd
dmesg | tail -n 50
usbip -r 192.168.0.100  # (si disponible)
ss -ltnp | grep 3240

Playbook rapide (admin)

  1. Installer usbip.
  2. Charger vhci-hcd sur le client.
  3. Lister les périphériques sur le serveur : usbip -l .
  4. Attacher : usbip -a .
  5. Vérifier avec lsusb et monter si besoin.
  6. Détacher : usbip -d .
  7. Sur le serveur, binder avec bind_driver –other .

Exemple concret :

yast2 -i usbip
modprobe vhci-hcd
usbip -l 192.168.0.100
usbip -a 192.168.0.100 2-5
lsusb
# utilisation...
usbip --port
usbip -d 00
bind_driver --other 2-5

Checklists

Administrateur:

  • Vérifier compatibilité du noyau.
  • Bloquer le port 3240 sur Internet.
  • Documenter BUSID et IP des périphériques partagés.

Utilisateur:

  • Confirmer l’IP du serveur.
  • Demander l’attachement par l’administrateur si nécessaire.
  • Ne pas formater un périphérique critique sans sauvegarde.

Glossaire

  • usbip : protocole et outil pour partager des périphériques USB sur le réseau.
  • vhci-hcd : module noyau qui crée un hôte USB virtuel côté client.
  • BUSID : identifiant du périphérique USB sur le serveur (ex. 2-5).
  • bind_driver : utilitaire pour relier un périphérique à des pilotes locaux sur le serveur.

Résumé

Ce guide montre comment installer usbip sur un client OpenSUSE, charger et persister le module vhci-hcd, attacher/détacher un périphérique USB distant et résoudre les problèmes courants. Pour la production, protégez le trafic et testez soigneusement avant d’exposer des périphériques critiques.

Liens

Auteur
Édition

Matériaux similaires

Erreur Python oxzep7 : guide de réparation
Support technique

Erreur Python oxzep7 : guide de réparation

Récupérer fichiers après vidage Corbeille Mac
Données & Sauvegarde

Récupérer fichiers après vidage Corbeille Mac

Évitez les numéros frauduleux dans les résumés IA
Sécurité

Évitez les numéros frauduleux dans les résumés IA

Utiliser iMessage sur Android via AirMessage
Guides Techniques

Utiliser iMessage sur Android via AirMessage

Démarrer Windows Server 2019 en mode sans échec
Windows Server

Démarrer Windows Server 2019 en mode sans échec

Raccourcis Snapchat : créer et gérer rapidement
Guides

Raccourcis Snapchat : créer et gérer rapidement