Confira o 'passthrough USB | Usando Libvirt ' nesta página do wiki do Edubuntu. Mais informações aqui e aqui .
Se você nunca planeja conectar / desconectar a unidade USB enquanto o convidado estiver em execução, tente adicionar uma seção como
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sdb'/>
<target dev='sdb' bus='scsi'/>
</disk>
para o arquivo de definição xml da sua VM. Apenas altere o dev de origem para corresponder ao que foi atribuído ao seu usb quando ele foi conectado. No entanto, você não pode garantir que a atribuição do dev do usb sobreviverá à reinicialização se outros dispositivos forem adicionados ou removidos, por isso recomendo a abordagem no primeiro link acima.
Caso o link desapareça, aqui está a seção relevante de passagem USB dos documentos vinculados:
Usando Libvirt
acionou uma vm pré-existente
virsh start maverick2
conectado a uma unidade USB
encontrou o endereço usb usando lsusb
, o que me deu
{{ Bus 002 Device 006: ID 1058:1023 Western Digital Technologies, Inc. }}}
definiu um arquivo xml com as informações do dispositivo:
<hostdev mode='subsystem' type='usb'>
<source>
<vendor id='0x1058'/>
<product id='0x1023'/>
</source>
</hostdev>
passou o drive usb para o vm
sudo virsh attach-device maverick2 /tmp/a.xml
No entanto, isso não funciona com o apparmor ativado. Você deve desativar o apparmor ou adicionar
/dev/bus/usb/*/[0-9]* rw,
para tanto /etc/apparmor.d/libvirt-qemu
(que dá todos os hóspedes acesso completo aos dispositivos host físicos) ou para
/etc/apparmor.d/libvirt/libvirt-<uuid>
que dará apenas o convidado que acessar. (Agradecemos a jdstrand por ajudar a esclarecer isso.)
address
elemento Ao usar o fornecedor e o produto, não consegui montar 2 unidades USB iguais. Só passaria pelo primeiro.