4

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

2 ответа2

6

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .