USBポート経由でqemuコマンドラインを使用できますか?

USBポート経由でqemuコマンドラインを使用できますか?

を使用して仮想マシンを起動していますqemu-system-x86_64。 USBデバイスを介して2つの方法を知っています。

たとえば、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

私はこれらのどれも好きではありません。ベンダー/製品IDにインポートすると、VMがシャットダウンするまでマウスをリサイクルできません。

バスとデバイス番号にインポートしたら、プラグを抜くとQemuに再インポートするように指示する必要があります。

ポート(実際の物理スロット)を介して送信できますか?バス3ポート2に接続されているとします。バイパスできますか?

答え1

何らかの理由でこれは文書化されていません。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

関連情報