4

I have an iPod Touch 5G, and a Windows 7 VM. I am trying to pass through the iPod Touch to the VM so Windows can recognize it, but I am getting the following error in the qemu monitor.

(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)
6

After spending 2-3 days on this, I figured out the solution to this. Really open source software needs to develop better documentation on how to use the software!!

The above usb speed mismatch warning is thrown because we are loading older usb host controller drivers(usb-bus = usb1.x), while the devices are usb2.x/usb-ehci or usb3.x/usb-xhci. Hence usb speed mismatch occurs.

  1. Load the usb host controllers along with qemu command.

    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. See the usb host devices in qemu terminal by running below command.

    info usbhost

    apple device will be listed here like below:

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

  3. Add the usb host device returned from the above command to guest system.

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

Now the apple device will appear on the guest system.

1
2

I would like to improve upon sccott's solution.

I appended this on my qemu boot parameter, and the advantage is that it's matching by the vendorid/productid, so no matter where/when the usb is plugin, it will work automatically.

-device usb-ehci,id=ehci -device usb-host,vendorid=0x05ac,productid=0x12a8,bus=ehci.0,port=1

Brief explanation on each flag.

  • -device usb-ehci,id=ehci create an ehci usb controller that apple device can attach to.
  • -device usb-host,vendorid=0x05ac,productid=0x12a8 pass through usb device by its vendor ID and product ID. (This one is tricky, because there is a similar syntax -usbdevice host:05ac:12a8 but that does not take later paramters
  • bus=ehci.0 attached the apple device to USB2.0 hub. Like Sccott said, this will eliminate the speed mismatch warning.
  • port=1 apple device has several USB port from the single address (usb cable), so we need to select the first port for syncing purpose.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.