Как заставить Qemu USB Passthrough работать на iPad / iPhone? - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь настроить виртуальную машину Mac OS для разработки iPad.Хост-система - Ubuntu 18.04, и я использую стандартные пакеты qemu из репозитория Ubuntu.

У меня установлена ​​и запущена виртуальная машина Mojave с использованием этих инструкций и всценарий для загрузки виртуальной машины, я добавил эту строку:

  -device usb-host,vendorid=0x05ac,productid=0x12ab \

Рассматриваемые устройства - это iPad Air 2 и iPad Mini 4, которые, по словам lsusb, имеют одинаковые идентификаторы продукта..

Вот проблема: когда я загружаюсь в виртуальную машину Mojave, когда я подключаю iPad, я вижу, что он появляется в ioreg -p IOUSB в течение нескольких секунд, а затем исчезает.Другие устройства (я пробовал модем USB LTE и интерфейс USB RS232) не делают этого;Похоже, что это характерно для iDevices.

На стороне хоста я вижу, что устройство подключается и отключается в цикле.Вот что я вижу в dmesg -w:

[  483.734771] usb 1-2.4.1: new high-speed USB device number 39 using xhci_hcd
[  483.849408] usb 1-2.4.1: New USB device found, idVendor=05ac, idProduct=12ab
[  483.849416] usb 1-2.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  483.849420] usb 1-2.4.1: Product: iPad
[  483.849425] usb 1-2.4.1: Manufacturer: Apple Inc.
[  483.849435] usb 1-2.4.1: SerialNumber: <xxx>
[  484.543671] usb 2-2.1.4.1.3.3: reset SuperSpeed USB device number 9 using xhci_hcd
[  488.616849] usb 1-2.4.1: reset high-speed USB device number 39 using xhci_hcd
[  488.732805] usb 1-2.4.1: device firmware changed
[  488.733301] usb 1-2.4.1: USB disconnect, device number 39
[  488.824694] usb 1-2.4.1: new high-speed USB device number 40 using xhci_hcd
[  488.938611] usb 1-2.4.1: New USB device found, idVendor=05ac, idProduct=12ab
[  488.938613] usb 1-2.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  488.938614] usb 1-2.4.1: Product: iPad
[  488.938615] usb 1-2.4.1: Manufacturer: Apple Inc.
[  488.938616] usb 1-2.4.1: SerialNumber: <xxx>
[  490.961709] usb 1-2.4.1: reset high-speed USB device number 40 using xhci_hcd
[  491.076908] usb 1-2.4.1: usbfs: process 2557 (gvfs-gphoto2-vo) did not claim interface 0 before use
[  494.579362] usb 2-2.1.4.1.3.3: reset SuperSpeed USB device number 9 using xhci_hcd
[  531.110536] usb 1-2.4.1: USB disconnect, device number 40
[  533.905116] usb 1-2.4.1: new high-speed USB device number 41 using xhci_hcd
[  534.019231] usb 1-2.4.1: New USB device found, idVendor=05ac, idProduct=12ab
[  534.019237] usb 1-2.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  534.019241] usb 1-2.4.1: Product: iPad
[  534.019244] usb 1-2.4.1: Manufacturer: Apple Inc.
[  534.019247] usb 1-2.4.1: SerialNumber: <xxx>
[  534.602098] usb 1-2.1.4.4: USB disconnect, device number 17

Обратите внимание, что выше я не физически соединяюсь и не отсоединяюсь - что-то делает это самостоятельно.Также следует отметить, что я не получаю этот цикл подключения / отключения, если моя виртуальная машина не работает (или если я удаляю линию, настраивающую сквозной USB-порт)

То, что я пробовал

Я исходил из предположения, что хост (вероятно, udevd) делает это, что мешает qemu (ну, я полагаю, libusb) удерживать устройство.С этой целью я прошел и отключил все правила udev, которые выглядят так, как будто они замешаны.В частности, я создал символические ссылки на /dev/null для следующих файлов udev:

  • / etc / udev / rules.d / 39-usbmuxd.rules
  • / etc / udev/rules.d/60-libgphoto2-6.rules
  • / etc / udev / rules.d / 90-libgpod.rules

Я также пытался отключить службу gphoto2, напримеритак:

systemctl --user stop gvfs-gphoto2-volume-monitor.service

Несмотря на все эти вещи, поведение по сути одинаково.Также примечательно: даже после отключения всех этих вещей, ядро ​​все еще каким-то образом обнаруживает iPad, когда я подключаю его, и записывает его серийный номер и т. Д. В системный журнал, и я достиг предела своих знаний о том, как отключить вещи в Linux!

Как я могу заставить свой iPad появляться (и оставаться) в моей виртуальной машине qemu?

...