Estou iniciando uma VM usando qemu-system-x86_64
. Conheço duas maneiras de passar por um dispositivo USB.
Digamos, por exemplo, eu tinha um mouse que apareceu em lsusb como
Bus 003 Device 011: ID 6ade:9582 Amazing Mouse Maker
Eu poderia passá-lo usando
-device usb-host,vendorid=0x6ade,productid=0x9582
ou
-device usb-host,hostbus=3,hostaddr=11
Nenhum desses eu gosto muito. Se eu o pegar pelo ID do fornecedor/produto, nunca poderei recuperar esse mouse até que a VM seja desligada.
Se eu o pegar pelo BUS e pelo número do dispositivo, terei que dizer ao Qemu para readquiri-lo se eu desconectar.
É possível enviá-lo por porta (o slot físico real)? Digamos que esteja conectado ao Barramento 3 Porta 2. Posso passar por isso?
Por alguma razão, isso não está documentado no documento do usuário do Qemu 2.12.50 e eu tive que aprender o que aprendi com esse cara
Eles mencionam:
Mas eles não mencionam que você também pode fazer:
Por exemplo...
Executando
lsusb -t
, eu recebo:Eu poderia decidir passar estes com:
E esses correspondem aos slots físicos.
No entanto, o barramento e a porta serão diferentes para um slot USB 3.0 dependendo se um dispositivo USB 2.0 ou USB 3.0 estiver conectado a ele, mas a porta de cada dispositivo permanecerá consistente.
Essa variação não existe para slots USB 2.0.
Com hubs USB, use pontos para separar as portas. Então se você tivesse...
Você usaria
-device usb-host,hostbus=3,hostport=2.1