iPod Touch 5G 无法在 qemu Windows 7 VM 中识别

iPod Touch 5G 无法在 qemu Windows 7 VM 中识别

我有一台 iPod Touch 5G 和一台 Windows 7 VM。我试图将 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 速度不匹配。

  1. 与 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

  2. 通过运行以下命令在 qemu 终端中查看 usb 主机设备。

    info usbhost

    苹果设备将列在这里,如下所示:

    Bus 3, Addr 8, Port 3, Speed 480 Mb/s Class 00: USB device, iPhone

  3. 将上述命令返回的 usb 主机设备添加到客户系统。

    device_add usb-host,hostbus=3,hostaddr=8,id=usb2.0,bus=ehci.0,port=3

现在苹果设备将出现在客户系统上。

答案2

我想改进 sccott 的解决方案。

我将其附加到我的 qemu 启动参数上,其优点是它通过 vendorid/productid 匹配,因此无论 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通过供应商 ID 和产品 ID 传递 USB 设备。(这个比较棘手,因为有类似的语法,-usbdevice host:05ac:12a8但不接受后面的参数
  • bus=ehci.0将苹果设备连接到 USB2.0 集线器。正如 Sccott 所说,这将消除速度不匹配警告。
  • port=1苹果设备从单个地址(USB 线)有多个 USB 端口,因此我们需要选择第一个端口进行同步。

相关内容