vous pouvez utiliser cette clé USB du logiciel et voici comment configurer le logiciel et l'utiliser à la fois côté serveur et côté client
Remarques:
Dans ce tutoriel , utilisez le server server1.example.com with IP
192.168.0.100
et client client1.example.com with IP 192.168.0.101
, à la fois en cours d' exécution Ubuntu Ces paramètres peuvent varier pour vous, donc vous devez les remplacer le cas échéant.
De plus, le compte utilisé dans ce didacticiel est le root
si une commande ne fonctionne pas, utilisez la root
ou utilisez sudo
avant la commande
Installation et utilisation d'USB / IP sur le serveur
Nous pouvons installer usbip comme suit:
apt-get install usbip
Ensuite, nous chargeons les modules du noyau usbip:
modprobe usbip
modprobe usbip_common_mod
Pour vérifier s'ils ont vraiment été chargés, exécutez:
lsmod | grep usbip
La sortie doit être similaire à celle-ci:
root@server1:~# lsmod | grep usbip
usbip 15124 0
usbip_common_mod 13605 1 usbip
root@server1:~#
Pour vous assurer que les deux modules sont chargés automatiquement à chaque démarrage du système, vous pouvez les ajouter à / etc / modules:
vi /etc/modules
[...]
usbip
usbip_common_mod
Maintenant, nous pouvons démarrer le démon usbip:
root@server1:~# usbipd -D
Bind usbip.ko to a usb device to be exportable!
Maintenant, connectez un périphérique USB que vous souhaitez exporter vers le serveur - j'utilise ici une clé USB SanDisk.
Exécutez la commande lsusb
pour trouver l'ID de fournisseur / périphérique correspondant qui se présente sous la forme de:
Bus XXX Device YYY: ID VendorID:DeviceID
La sortie sur mon serveur est la suivante:
root@server1:~# lsusb
Bus 001 Device 002: ID 0781:5151 SanDisk Corp. Cruzer Micro Flash Drive
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
L'ID de fournisseur / périphérique de ma clé USB SanDisk est 0781: 5151.
Maintenant, lancez
usbip_bind_driver --list
root@server1:~# usbip_bind_driver --list
List USB devices
- busid 1-1 (0781:5151)
1-1:1.0 -> usb-storage
Comme vous le voyez, l'ID de fournisseur / périphérique de ma clé USB SanDisk (0781: 5151) correspond au BUSID 1-1. Nous en avons besoin BUSID
pour connecter le périphérique USB au serveur:
root@server1:~# usbip_bind_driver --usbip 1-1
** (process:765): DEBUG: 1-1:1.0 -> usb-storage
** (process:765): DEBUG: unbinding interface
** (process:765): DEBUG: write "add 1-1" to /sys/bus/usb/drivers/usbip/match_busid
** Message: bind 1-1 to usbip, complete!
Voilà, nous pouvons maintenant utiliser la clé USB SanDisk sur un client USB distant.
BTW, si vous exécutez ...
netstat -tap
... vous devriez voir que le démon usbip écoute port 3240
assurez-vous donc que ce port n'est pas bloqué par votre pare-feu:
root@server1:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:ssh *:* LISTEN 537/sshd
tcp 0 0 *:3240 *:* LISTEN 762/usbipd
tcp 0 52 server1.example.com:ssh 192.168.0.199:4024 ESTABLISHED 667/0
tcp6 0 0 [::]:ssh [::]:* LISTEN 537/sshd
Installer et utiliser USB / IP sur le client
Nous devons également installer usbip sur le client:
sudo apt-get install usbip
Ensuite, nous chargeons le vhci-hcd
module du noyau:
modprobe vhci-hcd
Pour vérifier s'il a vraiment été chargé, exécutez:
root@client1:~# lsmod | grep vhci_hcd
vhci_hcd 19800 0
usbip_common_mod 13605 1 vhci_hcd
Pour vous assurer que le module est chargé automatiquement à chaque démarrage du système, vous pouvez l'ajouter à /etc/modules
:
vi /etc/modules
[...]
vhci-hcd
Connectez-vous maintenant au serveur USB et obtenez une liste des périphériques USB disponibles:
usbip -l 192.168.0.100
(192.168.0.100 is the IP address of the usbip server.)
Vous devriez trouver la clé USB SanDisk dans la sortie (BUSID 1-1):
root@client1:~# usbip -l 192.168.0.100
- 192.168.0.100
1-1: SanDisk Corp. : Cruzer Micro Flash Drive (0781:5151)
: /sys/devices/pci0000:00/0000:00:07.2/usb1/1-1
: (Defined at Interface level) (00/00/00)
: 0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)
Pour attacher ce périphérique au client, exécutez:
root@client1:~# usbip -a 192.168.0.100 1-1
8 ports available
port 0 attached
Maintenant, exécutez lsusb
et vous devriez trouver le périphérique USB distant dans la sortie sur le client:
root@client1:~# lsusb
Bus 001 Device 002: ID 0781:5151 SanDisk Corp. Cruzer Micro 256/512MB Flash Drive
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Vous pouvez maintenant utiliser le périphérique USB distant comme s'il s'agissait d'un périphérique USB local (par exemple, montez-le, formatez-le, écrivez-le, lisez-le, etc.).
Détacher un périphérique USB distant
Un périphérique USB distant peut être détaché comme suit:
client1:
Courir...
usbip --port
... pour connaître le port que le périphérique USB distant utilise sur le client - dans ce cas, c'est le port 00:
root@client1:~# usbip --port
8 ports available
Port 00: <Port in Use> at High Speed(480Mbps)
SanDisk Corp. : Cruzer Micro 256/512MB Flash Drive (0781:5151)
1-1 -> usbip://192.168.0.100:3240/1-1 (remote devid 00010002 (bus/dev 001/002))
1-1:1.0 used by usb-storage
/sys/class/bsg/1:0:0:0/device
/sys/class/scsi_device/1:0:0:0/device
/sys/class/scsi_disk/1:0:0:0/device
/sys/class/scsi_host/host1/device
/sys/class/usb_endpoint/usbdev1.4_ep02/device
/sys/class/usb_endpoint/usbdev1.4_ep81/device
/sys/block/sdb/device
Port 01: <Port Available>
Port 02: <Port Available>
Port 03: <Port Available>
Port 04: <Port Available>
Port 05: <Port Available>
Port 06: <Port Available>
Port 07: <Port Available>
Nous avons besoin du numéro de port pour détacher l'appareil:
usbip -d 00
root@client1:~# usbip -d 00
8 ports available
port 0 detached
Sur le serveur, nous utilisons le BUSID (1-1)
pour lier le périphérique USB au système local (le commutateur --other lie le périphérique au système local afin qu'il ne soit plus disponible sur le réseau):
serveur1:
usbip_bind_driver --other 1-1
root@server1:~# usbip_bind_driver --other 1-1
** (process:7333): DEBUG: write "del 1-1" to /sys/bus/usb/drivers/usbip/match_busid
** Message: bind 1-1 to other drivers than usbip, complete!
Revenez maintenant au client et vérifiez si le périphérique USB distant est toujours disponible:
client1:
Si tout se passe bien, cela ne devrait plus être répertorié:
root@client1:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Liens
http://usbip.sourceforge.net
Source du tutoriel (côté serveur)
Source du tutoriel (côté client)