質問: d -m 1g -usbdevice host:0x13fe:0x5500 エラーが発生し続けます: qemu:usbデバイスを追加できませんでした 'host:0x13fe:0x5500' 一方、システム情報では、usbデバイスのベンダーidは「0x13fe」、製品idは「0x5500」です。コードブロック(bash)を使用して同じベンダーと製品idを取得します`system_profiler spusbdatatype | awk ' /product id:/{p=$3} /vendor id:/{v=$3} /manufacturer:/{sub(/.*: /,""); m=$0} /location id:/{sub(/.*: /,""); printf("%s:%s %s (%s)\n", v, p, $0, m);} ' ` qemu documentation では、usbを通過する正しい形式は次のとおりです。 ホスト:vendor_id:product_id だから私はそれを正しくやっていると信じています。qemu2.4.0.1を実行しています私はここで何か間違ったことをしていますか?
回答: なぜそのエラーが発生するのかわかりませんが、デバイスを「フルスピード」モード(12m)でしか接続できないため、とにかく-usbdeviceを使用することはほとんどありません。ホスト側の「高速」(480m)デバイス: 「超高速」(5000m)デバイス(ホスト側でxhciが有効)を接続している場合は、まったく機能しない可能性があります。 したがって、代わりに、選択したエミュレートされたホストコントローラー(例:-device usb-host)を使用した、より現代的で一般的な-device nec-usb-xhciアプローチが必要になります。 「高速」(480m)デバイスでも機能するはずです。 「フルスピード」(12m)デバイスと同様に: エミュレートされたホストコントローラーの可能な選択肢は次のとおりです。[tom@localhost ~]$ qemu-system-x86_64 -device help |& grep usb.*hci name "ich9-usb-ehci1", bus pci name "ich9-usb-ehci2", bus pci name "ich9-usb-uhci1", bus pci name "ich9-usb-uhci2", bus pci name "ich9-usb-uhci3", bus pci name "ich9-usb-uhci4", bus pci name "ich9-usb-uhci5", bus pci name "ich9-usb-uhci6", bus pci name "nec-usb-xhci", bus pci name "piix3-usb-uhci", bus pci name "piix4-usb-uhci", bus pci name "usb-ehci", bus pci name "vt82c686b-usb-uhci", bus pci [tom@localhost ~]$ qemu-system-x86_64 -device help |& grep ohci name "pci-ohci", bus pci, desc "apple usb controller" name "sysbus-ohci", bus system, desc "ohci usb controller" nec-usb-xhciは、ほとんどの場合、最適に機能するはずです。ところで、vendorid + productid以外にも、-device usb-hostで接続するデバイスを指定する方法があります。例:hostbus + hostaddr: または、hostbus + hostport: これは、システムに同じモデルのデバイスが複数ある場合に便利です。参照: http://git.qemu.org/?p=qemu.git;a=blob_plain;f=docs/usb2.txt;hb=head