Я создал виртуальную машину OSX Mojave и пытаюсь передать ей iPhone, чтобы использовать XCode. Я тестировал передачу клавиатуры гостю, и это нормально работает. Однако iPhone этого не делает.
Когда я использую virt-manager для добавления хост-устройства USB, iPhone издает звук, чтобы указать, что он подключен, однако он не выглядит подключенным к гостю.
Я заметил некоторые вещи, которые могут помочь в решении этой проблемы:
Если я добавляю хост-устройство USB, а затем очень быстро переключаюсь на виртуальную машину и запускаю system_profiler SPUSBDataType
, iPhone отображается как подключенный. Однако это длится всего несколько секунд. Запуск system_profiler SPUSBDataType
через несколько секунд показывает, что iPhone больше не подключен.
Я тестировал передачу iPhone гостевой системе Linux. Когда он передается гостю Linux, кажется, что он остается подключенным.
Люди сообщают об успешной передаче iPhone на виртуальную машину VMWare путем добавления usb.quirks.device0 = "0x05ac:0x12a8 skip-reset, skip-refresh, skip-setconfig"
в свой файл VMWare VMX. Я упоминаю об этом, поскольку считаю, что репликация этих настроек в libvirt каким-то образом может решить проблему.
Когда я добавляю хост-устройство USB, я получаю это в dmesg на хосте:
[178165.281031] audit: type=2501 audit(1540468134.413:1654): pid=604 uid=0 auid=4294967295 ses=4294967295 msg='virt=kvm resrc=cgroup reason=allow vm = "macos-high-sierra" uuid=2aca0dd6-cec9-4717-9ab2-0b7b13d111c3 cgroup = "/sys/fs/cgroup/devices/machine.slice/machine-qemu\x2d34\x2dmacos\x2dhigh\x2dsierra.scope/" class=path path = "/dev/bus/usb/003/050" rdev=BD:131 acl=rw exe = "/usr/bin/libvirtd" hostname=? addr=? terminal=? res=success'
[178165.284135] audit: type=2501 audit(1540468134.417:1655): pid=604 uid=0 auid=4294967295 ses=4294967295 msg='virt=kvm resrc=dev reason=attach vm = "macos-high-sierra" uuid=2aca0dd6-cec9-4717-9ab2-0b7b13d111c3 bus=usb device = "003.050" exe = "/usr/bin/libvirtd" hostname=? addr=? terminal=? res=success'
[178165.562355] usb 3-11: reset high-speed USB device number 50 using xhci_hcd
[178165.702290] usb 3-11: device firmware changed
[178165.702489] usb 3-11: USB disconnect, device number 50
[178165.825523] usb 3-11: new high-speed USB device number 51 using xhci_hcd
[178165.966944] usb 3-11: New USB device found, idVendor=05ac, idProduct=12a8, bcdDevice= 6.01
[178165.966946] usb 3-11: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[178165.966948] usb 3-11: Product: iPhone
[178165.966949] usb 3-11: Manufacturer: Apple Inc.
[178165.966950] usb 3-11: SerialNumber: 71e8245949fde7db02fa88199e22c939196f3ec1
Похоже, что iPhone повторно подключается (может быть, он меняет режим подключения?), И libvirt не передает его обратно гостю?
Я назначил за это вознаграждение, потому что не нашел решения для подключения iPhone, проходящего через USB, с QEMU под управлением OSX. Для VMWare решение - здесь, как вы сказали.