iPod Touch 5G не распознает в Qemu Windows 7 VM

1490
ipatch

У меня есть iPod Touch 5G и Windows 7 VM. Я пытаюсь передать iPod Touch на виртуальную машину, чтобы 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) 
4

2 ответа на вопрос

6
sccott

Потратив на это 2-3 дня, я нашел решение этой проблемы. Действительно открытое программное обеспечение должно разработать лучшую документацию о том, как использовать программное обеспечение!

Вышеприведенное предупреждение о несоответствии скорости USB выдается, потому что мы загружаем более старые драйверы хост-контроллера usb (usb-bus = usb1.x), а устройства - usb2.x / usb-ehci или usb3.x / usb-xhci. Следовательно происходит несоответствие скорости USB.

  1. Загрузите хост-контроллеры usb вместе с командой qemu.

    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. Посмотрите хост-устройства usb в терминале qemu, выполнив команду ниже.

    info usbhost

    Устройство Apple будет перечислено здесь, как показано ниже:

    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

Теперь устройство Apple появится в гостевой системе.

Эти ссылки помогли: https://bugzilla.redhat.com/show_bug.cgi?id=949505 http://www.linux-kvm.org/page/USB_Host_Device_Assigned_to_Guest sccott 9 лет назад 0
Добро пожаловать в СУ. Спасибо за ваш вклад! jáquer 9 лет назад 0
2
Patrick

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.