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

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

У меня есть 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.

  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 появится в гостевой системе.

решение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), поэтому нам нужно выбрать первый порт для синхронизации.

Связанный контент