У меня есть iPod Touch 5G и виртуальная машина Windows 7. Я пытаюсь подключить 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)
решение1
Потратив на это 2-3 дня, я нашел решение. Действительно открытому программному обеспечению нужно разработать лучшую документацию о том, как использовать программное обеспечение!!
Вышеуказанное предупреждение о несоответствии скорости usb выдается, потому что мы загружаем старые драйверы хост-контроллера usb (usb-bus = usb1.x), в то время как устройствами являются usb2.x/usb-ehci или usb3.x/usb-xhci. Следовательно, происходит несоответствие скорости usb.
Загрузите хост-контроллеры 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
Чтобы увидеть хост-устройства USB в терминале QEMU, выполните следующую команду.
info usbhost
Устройство Apple будет указано здесь следующим образом:
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
Теперь устройство Apple появится в гостевой системе.
решение2
Я хотел бы улучшить решение Сккотта.
Я добавил это в свой параметр загрузки 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
создайте USB-контроллер ehci, к которому можно подключить устройство Apple.-device usb-host,vendorid=0x05ac,productid=0x12a8
пройти через USB-устройство по его идентификатору поставщика и идентификатору продукта. (Этот вариант сложен, поскольку существует похожий синтаксис,-usbdevice host:05ac:12a8
но он не принимает более поздние параметры)bus=ehci.0
подключил устройство Apple к концентратору USB2.0. Как сказал Сккотт, это устранит предупреждение о несоответствии скорости.port=1
Устройство Apple имеет несколько портов USB с одним адресом (кабель USB), поэтому нам нужно выбрать первый порт для синхронизации.