Num cenário de máquinas virtuais, em ambiente Linux CentOS 7, pode ser necessário utilizar ligações directas à(s) porta(s) USB, por exemplo, pen drives ou chaves do tipo hardlock.
Para poder ligar dispositivos USB directamente a uma máquina virtual é necessário instruir o hipervisor de quais as portas a ligar. O comando lsusb, do Linux, mostra os dispositivos:
# lsusb Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 002: ID 0951:1505 Kingston Technology Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
A negrito, está o dispositivo que queremos ligar. O ID, composto por dois hexadecimais, identifica o fabricante (0951) e o produto (1505). De seguida, é necessário compor o XML que vamos integrar na definição da máquina:
<hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x0951'/> <product id='0x1505'/> </source> </hostdev>
Finalmente, fazemos a agregação do dispositivo à nossa máquina virtual, com o comando virsh:
# virsh attach-device <domain> <file> [--persistent]
Onde, <domain> é o nome da máquina virtual e <file> será o nome do ficheiro XML criado. Podemos optar por uma ligação permanente, utilizando a opção –persistent. Da mesma forma, podemos “desligar” o dispositivo com o comando virsh detach-device.
O artigo original, completo e mais detalhado em: