você pode usar este software usbip e é como configurar o software e usá-lo no servidor e no cliente
Notas:
Neste tutorial, use o server server1.example.com with IP
192.168.0.100
e client client1.example.com with IP 192.168.0.101
, ambos executando o Ubuntu. Essas configurações podem diferir para você; portanto, você deve substituí-las quando apropriado.
Além disso, a conta usada neste tutorial é o root
caso, se um comando não estiver funcionando, use o comando root
ou use sudo
before the command
Instalando e usando USB / IP no servidor
Podemos instalar o usbip da seguinte forma:
apt-get install usbip
Depois, carregamos os módulos do kernel usbip:
modprobe usbip
modprobe usbip_common_mod
Para verificar se eles realmente foram carregados, execute:
lsmod | grep usbip
A saída deve ser semelhante a esta:
root@server1:~# lsmod | grep usbip
usbip 15124 0
usbip_common_mod 13605 1 usbip
root@server1:~#
Para garantir que os dois módulos sejam carregados automaticamente sempre que você inicializar o sistema, adicione-os ao / etc / modules:
vi /etc/modules
[...]
usbip
usbip_common_mod
Agora podemos iniciar o daemon usbip:
root@server1:~# usbipd -D
Bind usbip.ko to a usb device to be exportable!
Agora conecte um dispositivo USB que você deseja exportar para o servidor - estou usando uma unidade flash USB da SanDisk aqui.
Execute o comando lsusb
para encontrar a ID do fornecedor / dispositivo correspondente, na forma de:
Bus XXX Device YYY: ID VendorID:DeviceID
A saída no meu servidor é a seguinte:
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
O ID do fornecedor / dispositivo da minha unidade flash USB da SanDisk é 0781: 5151.
Agora corra
usbip_bind_driver --list
root@server1:~# usbip_bind_driver --list
List USB devices
- busid 1-1 (0781:5151)
1-1:1.0 -> usb-storage
Como você vê, o ID do fornecedor / dispositivo da minha unidade flash USB da SanDisk (0781: 5151) corresponde ao BUSID 1-1. Precisamos disso BUSID
para conectar o dispositivo USB ao servidor:
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!
É isso, agora podemos usar a unidade flash USB da SanDisk em um cliente usbip remoto.
BTW, se você executar ...
netstat -tap
... você deve ver que o daemon usbip está escutando port 3240
portanto, verifique se essa porta não está bloqueada pelo seu firewall:
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
Instalando e usando USB / IP no cliente
Também precisamos instalar o usbip no cliente:
sudo apt-get install usbip
Depois carregamos o vhci-hcd
módulo do kernel:
modprobe vhci-hcd
Para verificar se realmente foi carregado, execute:
root@client1:~# lsmod | grep vhci_hcd
vhci_hcd 19800 0
usbip_common_mod 13605 1 vhci_hcd
Para garantir que o módulo seja carregado automaticamente sempre que você inicializar o sistema, adicione-o a /etc/modules
:
vi /etc/modules
[...]
vhci-hcd
Agora conecte-se ao servidor usbip e obtenha uma lista dos dispositivos USB disponíveis:
usbip -l 192.168.0.100
(192.168.0.100 is the IP address of the usbip server.)
Você deve encontrar a unidade flash USB da SanDisk na saída (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)
Para conectar esse dispositivo ao cliente, execute:
root@client1:~# usbip -a 192.168.0.100 1-1
8 ports available
port 0 attached
Agora execute lsusb
e você deve encontrar o dispositivo USB remoto na saída do cliente:
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
Agora você pode usar o dispositivo USB remoto como se fosse um dispositivo USB local (por exemplo, monte-o, formate-o, escreva-o, leia-o, etc.).
Como desconectar um dispositivo USB remoto
Um dispositivo USB remoto pode ser desconectado da seguinte maneira:
client1:
Corre...
usbip --port
... para descobrir a porta que o dispositivo USB remoto usa no cliente - nesse caso, é a porta 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>
Precisamos do número da porta para desconectar o dispositivo:
usbip -d 00
root@client1:~# usbip -d 00
8 ports available
port 0 detached
No servidor, usamos o BUSID (1-1)
para ligar o dispositivo USB ao sistema local (a opção --other liga o dispositivo ao sistema local para que ele não esteja mais disponível na rede):
servidor1:
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!
Agora volte ao cliente e verifique se o dispositivo USB remoto ainda está disponível:
client1:
Se tudo correr bem, não deverá mais ser listado:
root@client1:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Ligações
http://usbip.sourceforge.net
Origem do tutorial (lado do servidor)
Origem do tutorial (lado do cliente)