Instalar e Usar USB/IP no Cliente
Introdução
Este guia explica, passo a passo, como instalar e usar o USB/IP no sistema cliente (OpenSUSE 11.2 como exemplo). Ele descreve instalação, configuração do módulo de kernel, como listar e anexar dispositivos USB remotos, e como desanexá-los corretamente. Termos importantes: usbip — utilitário para compartilhar USB pela rede; vhci-hcd — driver de host virtual no cliente.
Requisitos
- Acesso root no cliente e no servidor USB/IP.
- Rede entre cliente e servidor (ex.: 192.168.0.100 é o IP do servidor neste exemplo).
- Pacote usbip disponível nos repositórios (ex.: OpenSUSE).
1. Instalar usbip no cliente
No cliente, instale o pacote usbip exatamente como no servidor:
yast2 -i usbip
Observação: o usbip espera o arquivo usb.ids em /usr/share/hwdata, mas no OpenSUSE 11.2 ele fica em /usr/share/usbip/usb.ids. Caso isso aconteça, crie um diretório e um link simbólico:
mkdir /usr/share/hwdata
ln -sf /usr/share/usbip/usb.ids /usr/share/hwdata/
Importante: mantenha os caminhos de arquivo exatamente como no sistema; não altere nomes de arquivos ou diretórios.
2. Carregar o módulo de kernel vhci-hcd
Carregue o módulo de kernel que cria o host USB virtual no cliente:
modprobe vhci-hcd
Verifique se o módulo foi carregado:
lsmod | grep vhci_hcd
Saída de exemplo esperada:
client1:~ # lsmod | grep vhci_hcd
vhci_hcd 26576 0
usbip_common_mod 25232 1 vhci_hcd
client1:~#
Para carregar automaticamente o módulo em todo boot, adicione-o à variável MODULES_LOADED_ON_BOOT em /etc/sysconfig/kernel:
vi /etc/sysconfig/kernel
No ficheiro, assegure-se de ter uma linha como:
MODULES_LOADED_ON_BOOT="vhci-hcd"
Depois execute:
SuSEconfig
Nota: em outras distribuições o ficheiro de configuração de módulos no arranque pode ser diferente (por exemplo /etc/modules-load.d/ em sistemas systemd).
3. Listar dispositivos USB disponíveis no servidor
Peça ao servidor a lista de dispositivos exportados via USB/IP (substitua o IP pelo do seu servidor):
usbip -l 192.168.0.100
Exemplo de saída com um pendrive SanDisk (BUSID 2-5):
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)
client1:~ #
4. Anexar o dispositivo remoto ao cliente
Anexe o dispositivo remoto usando o BUSID indicado (ex.: 2-5):
usbip -a 192.168.0.100 2-5
Saída de exemplo:
client1:~# usbip -a 192.168.0.100 2-5
8 ports available
port 0 attached
client1:~#
Depois execute lsusb para verificar se o dispositivo remoto aparece como um dispositivo local:
lsusb
Exemplo:
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:~ #
Agora você pode usar o dispositivo remoto como se fosse local: montar, formatar, ler e gravar dados.
5. Desanexar um dispositivo USB remoto
Para desanexar, primeiro descubra a porta usada pelo dispositivo no cliente:
usbip --port
Exemplo de saída (neste caso o dispositivo usa a porta 00):
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:~ #
Use o número da porta para desanexar (no exemplo, porta 00):
usbip -d 00
Saída típica:
client1:~ # usbip -d 00
8 ports available
port 0 detached
client1:~ #
No servidor, se precisar rebinder o dispositivo localmente (tornar indisponível pela rede), use o BUSID com bind_driver e a opção –other para atribuí-lo a drivers locais:
bind_driver --other 2-5
Exemplo de saída no servidor:
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:~#
Depois volte ao cliente e confirme com lsusb; o dispositivo não deverá aparecer mais:
client1:~ # lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
client1:~ #
Lista de verificação para administradores (por papéis)
- Administrador de Sistema:
- Confirmar conectividade TCP/IP entre cliente e servidor (porta 3240 por padrão).
- Verificar versões do kernel e compatibilidade do módulo vhci-hcd.
- Garantir permissão de root para executar modprobe e bind_driver.
- Operador de Suporte:
- Executar usbip -l no cliente para localizar dispositivos remotos.
- Registrar BUSID e porta antes de desanexar.
- Usuário Final:
- Montar o dispositivo após anexo (ex.: mount /dev/sdX /mnt).
- Nunca remover fisicamente o dispositivo no servidor sem primeiro desanexar no cliente.
Solução de problemas comum
- Problema: usbip não encontra usb.ids
- Solução: crie um link simbólico para /usr/share/hwdata/usb.ids apontando para o ficheiro real.
- Problema: modprobe vhci-hcd falha
- Solução: confirme versão do kernel e módulos necessários; verifique dmesg para mensagens de erro.
- Problema: tempo de resposta alto ou desconexões
- Solução: verifique latência e perda de pacotes na rede; USB/IP sensível à qualidade de rede.
- Problema: porta já em uso ao tentar anexar
- Solução: listar portas com usbip –port e desanexar portas antigas antes de anexar novamente.
Importante: não force operações quando houver atividade de disco no dispositivo remoto. Desmonte qualquer filesystem montado no cliente antes de desanexar.
Mini-metodologia para operações seguras
- No servidor, liste dispositivos exportáveis com usbip (ou verifique quais BUSIDs estão configuradas).
- No cliente, confirme conectividade e instale usbip.
- Carregue vhci-hcd e confirme com lsmod.
- Liste dispositivos no servidor via usbip -l
e anexe com usbip -a . - Monte e use o dispositivo no cliente.
- Antes de desanexar, desmonte filesystems; depois use usbip -d
e, se necessário, bind_driver –other no servidor.
Glossário (uma linha cada)
- BUSID: ID do barramento USB usado pelo usbip para identificar um dispositivo remoto.
- vhci-hcd: driver de host virtual que cria portas USB locais para dispositivos remotos.
- bind_driver: utilitário para vincular um dispositivo USB a drivers locais no servidor.
Segurança e boas práticas
- Use redes seguras ou VPNs para tráfego USB/IP — o protocolo não cifra tráfego por padrão.
- Monitore atividade e logs (dmesg, journalctl) para detectar desconexões ou erros.
Links úteis
- USB/IP Project: http://usbip.sourceforge.net/
- OpenSUSE: http://www.opensuse.org/
Resumo final
Siga a ordem: instalar, linkar usb.ids se necessário, carregar vhci-hcd, listar no servidor, anexar, usar, desanexar e rebinder no servidor se desejar. Garanta redes confiáveis e sempre desmonte sistemas de ficheiros antes de desanexar.
Materiais semelhantes

Corrigir erro Python oxzep7 — guia prático
Recuperar Lixeira esvaziada no Mac

Evitar números falsos em resumos de IA

Usar iMessage no Android com AirMessage

Iniciar Windows Server 2019 em Modo de Segurança
