Могу ли я пройти через порт USB через командную строку qemu?

Я запускаю виртуальную qemu-system-x86_64 используя qemu-system-x86_64 . Я знаю два способа пройти через USB-устройство.

Скажем, например, у меня была мышь, которая появилась в lsusb как

 Bus 003 Device 011: ID 6ade:9582 Amazing Mouse Maker 

Я мог бы пройти через использование

 -device usb-host,vendorid=0x6ade,productid=0x9582 

или же

 -device usb-host,hostbus=3,hostaddr=11 

Ни то, ни другое мне не нравится. Если я возьму его по идентификатору поставщика / продукта, то никогда не смогу вернуть эту мышь, пока виртуальная машина не будет выключена.

Если я возьму его по номеру BUS и устройству, то мне придется сказать Qemu, чтобы он снова был у меня, если я отключу его.

Могу ли я отправить его через порт (фактический физический слот)? Скажем, он подключен к шине 3 порта 2. Могу ли я пройти мимо этого?

По какой-то причине это не задокументировано в Документе пользователя Qemu 2.12.50, и мне пришлось узнать, что я узнал от этого парня

Они упоминают

 -device usb-host,hostbus=bus,hostaddr=addr Pass through the host device identified by bus and addr -device usb-host,vendorid=vendor,productid=product Pass through the host device identified by vendor and product ID 

Но они не упоминают, что вы можете сделать

 -device usb-host,hostbus=bus,hostport=port 

Например…

Если я запускаю lsusb -t и получаю

 /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M |__ Port 10: Dev 8, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 11: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 12M 

Я мог бы решить пройти мимо

 -device usb-host,hostbus=3,hostport=10 \ -device usb-host,hostbus=3,hostport=11 \ 

И те соответствуют физическим слотам.

Однако шина и порт будут отличаться для слота USB 3.0 в зависимости от того, подключено ли к нему устройство USB 2.0 или USB 3.0, но порт для каждого устройства останется согласованным.

Такой разницы не существует для слотов USB 2.0.

/ * обновление: USB-концентраторы * /

Используйте точки для разделения портов. Так что, если бы вы имели …

 /: Bus 03 |__ Port 2: some stuff |__ Port 1: some stuff 

Вы бы использовали -device usb-host,hostbus=3,hostport=2.1