我有 iPod Touch 5G 和一台 Windows 7 虛擬機器。我嘗試將 iPod Touch 傳遞到 VM,以便 Windows 可以識別它,但我在 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 速度不符警告是因為我們正在載入較舊的USB 主機控制器驅動程式(usb-bus = usb1.x),而設備是usb2.x/usb-ehci 或usb3.x/usb-xhci 。因此會出現 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
蘋果設備將在這裡列出,如下所示:
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
現在蘋果設備將出現在來賓系統上。
答案2
我想改進斯科特的解決方案。
我將其附加到我的 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
創建一個蘋果設備可以連接的 ehci USB 控制器。-device usb-host,vendorid=0x05ac,productid=0x12a8
透過 USB 裝置的供應商 ID 和產品 ID 進行傳遞。 (這個很棘手,因為有一個類似的語法-usbdevice host:05ac:12a8
,但不接受後面的參數bus=ehci.0
將蘋果裝置連接到 USB2.0 集線器。正如斯科特所說,這將消除速度不匹配警告。port=1
蘋果設備在同一個位址(USB 電纜)上有多個 USB 端口,因此我們需要選擇第一個端口用於同步目的。