USB Over IP sous Linux

Vous disposez d’une imprimante USB (et seulement USB). Pour l’instant, vous n’avez aucun moyen de la contrôler depuis un autre ordinateur chez vous. Nous supposons bien entendu que les deux ordinateurs sont en réseaux (par le biais d’une box par exemple).

Je veux pouvoir transformer mon imprimante USB en imprimante réseau (et donc pouvoir l’utiliser et la contrôler partout chez moi).

La première solution qui s’offre à vous consiste à acheter un appareil qui partage sur le réseau les périphériques USB. Prévoyez un budget minimum de 100 euros pour avoir quelque chose de bien.

Mais heureusement que l’Open-Source est là, et nous allons nous débrouiller nous même, avec un budget de… 0 euros !

USB/IP est une excellente solution logicielle.

Procédure coté serveur

1- Téléchargez le logiciel présent dans les dépôts Debian / Ubuntu :

sudo aptitude install usbip

Vous devez charger les modules suivants pour être capable de contrôler vos ports USB :

sudo modprobe usbip
sudo modprobe usbip_common_mod

Pour démarrer le service « usbip » comme un démon :

sudo usbipd -D

Le message suivant s’affiche.

Bind usbip.ko to a usb device to be exportable!

Pas de panique ! C’est normal. Cela signifie vous devez choisir quel sera le port USB à partager.

1- Branchez votre appareil USB (imprimante, webcam, etc…)

2- Exécutez la commande pour trouver l’identifiant du vendeur et de l’appareil :

lsusb

Il est sous la forme :

Bus XXX Device ZZZ: ID VendorID:DeviceID

Les identifiants Vendeur / Appareil (Vendor / Device) sont codés sur 4 digits chacun (03f0:7a11 par exemple).Le premier (03f0) est pour Hewlett-Packard (qui est la marque de mon imprimante), et le second (7a11) est l’appareil USB (ici, mon imprimante en elle même).

Maintenant que nous avons trouvé les identifiants matériel, nous sommes capable de localiser sa position sur le bus.

sudo usbip_bind_driver –list

Résultat :

busid 2-1.2 (03f0:7a11)
2-1.2:1.0 -> none
2-1.2:1.1 -> usblp
2-1.2:1.2 -> none
2-1.2:1.3 -> usb-storage

Trouvez l’identifiant du bus sur lequel est notre imprimante. Ici, c’est « 2-1.2 ».

Il est temps maintenant de connecter l’appareil USB au réseau :

sudo usbip_bind_driver –usbip 2-1

Vous devez avoir une réponse finale du genre :

** Message: bind 2-1.2 to usbip, complete!

Une fois cette commande exécutée, le serveur est maintenant en écoute sur le réseau dans l’attente de connections clients.

Procédure coté client

Installation du logiciel :

sudo apt-get install usbip

Chargez le module “vhci-hcd” :

sudo modprobe vhci-hcd

Pour lister les périphériques USB disponibles sur le serveur :

sudo usbip -l <@ ip>

Bien entendu, remplacer <@ ip> par l’adresse IP du serveur.

Enfin, la commande qui nous apporte un nouveau périphérique USB :

sudo usbip -a <@ ip> X-Y

Remplacer X-Y par le l’identifiant du bus (2-1.2:1.1 pour l’exemple de tout à l’heure).

Si tout va bien, le périphérique est maintenant reconnu par le système. Si c’est un périphérique amovible, le périphérique sera monté; dans le cas d’une imprimante, il faudra l’installer comme une imprimante normale.

Sachez également logiciel client existe aussi sous Windows et je vous donne même le lien de téléchargement.

Tout d’abord, il faut extraire l’archive téléchargée.
En premier lieu, il faut installer le driver en cliquant droit sur le fichier bus.inf, puis sur « Installer ».
Ensuite, exécutez une invite de commande Windows (Menu Démarrer, Exécuter, « cmd »).
Avec la commande « cd » (comme sous Linux !), déplacez vous dans le répertoire où se trouve l’exécutable d’usbip.

Pour lister les périphériques USB disponibles sur le serveur (dans une invite de commande) :

usbip.exe -l <@ ip>

Et ensuite, la commande qui nous apporte un nouveau périphérique USB :

usbip.exe -a <@ ip> USB-ID

C’est bon ! Le périphérique USB doit maintenant être détecté par Windows !

J’espère avoir été clair sur les explications. Si vous avez suivi ce que j’ai fait à la lettre, tout devrait fonctionner. Sinon, vérifiez bien que vous avez choisi le bon identifiant du périphérique USB.
J’ai testé et ça fonctionne : Imprimante USB transformée en imprimante réseau, disque dur USB partagé sur le réseau, Webcam utilisée comme caméra de surveillance.