iPod Touch 5G と Windows 7 VM を持っています。Windows が認識できるように iPod Touch を VM にパススルーしようとしていますが、qemu モニターで次のエラーが表示されます。
(qemu) usb_add host:05ac:12aa Warning: speed mismatch trying to attach usb device "iPod" (high speed) to bus "usb-bus.0", port "2.1" (full speed) (qemu) qemu-system-x86_64: Warning: speed mismatch trying to attach usb device "iPod" (high speed) to bus "usb-bus.0", port "2.1" (full speed) qemu-system-x86_64: Warning: speed mismatch trying to attach usb device "iPod" (high speed) to bus "usb-bus.0", port "2.1" (full speed) (qemu)
答え1
これに 2 ~ 3 日費やした後、解決策を見つけました。オープンソース ソフトウェアでは、ソフトウェアの使用方法に関するより優れたドキュメントを開発する必要があります。
上記の USB 速度不一致の警告は、デバイスが usb2.x/usb-ehci または usb3.x/usb-xhci であるのに、古い USB ホスト コントローラー ドライバー (usb-bus = usb1.x) をロードしているためにスローされます。そのため、USB 速度の不一致が発生します。
qemu コマンドとともに USB ホスト コントローラーをロードします。
qemu-system-x86_64 --enable-kvm -m 4G -monitor stdio -usb -device nec-usb-xhci,id=xhci -device usb-ehci,id=ehci /pathtovirtdiskfile.vmdk
以下のコマンドを実行して、qemu ターミナルで USB ホスト デバイスを確認します。
info usbhost
Apple デバイスは以下のようにここにリストされます:
Bus 3, Addr 8, Port 3, Speed 480 Mb/s Class 00: USB device, iPhone
上記のコマンドから返された USB ホスト デバイスをゲスト システムに追加します。
device_add usb-host,hostbus=3,hostaddr=8,id=usb2.0,bus=ehci.0,port=3
これで、Apple デバイスがゲスト システムに表示されます。
答え2
sccott の解決策を改良したいと思います。
私はこれを qemu ブート パラメータに追加しました。利点は、ベンダー ID/製品 ID によって一致するため、USB がいつどこに差し込まれても、自動的に機能することです。
-device usb-ehci,id=ehci -device usb-host,vendorid=0x05ac,productid=0x12a8,bus=ehci.0,port=1
各フラグについての簡単な説明。
-device usb-ehci,id=ehci
Apple デバイスが接続できる EHCI USB コントローラーを作成します。-device usb-host,vendorid=0x05ac,productid=0x12a8
USBデバイスをベンダーIDと製品IDでパススルーします。(これは、同様の構文があります-usbdevice host:05ac:12a8
が、後のパラメータを取らないため、トリッキーです。bus=ehci.0
Apple デバイスを USB2.0 ハブに接続しました。Sccott が言ったように、これにより速度不一致の警告が解消されます。port=1
Apple デバイスには、単一のアドレス (USB ケーブル) から複数の USB ポートがあるため、同期のために最初のポートを選択する必要があります。