QEMU / KVM со SPICE не поддерживает доступ к устройству Apple (перенаправление USB)

Я пытаюсь подключить iPod Touch к гостевой системе macOS Catalina и гостевой системе Ubuntu MATE 20.04, но это не работает. Кажется, хост перехватывает доступ к себе. Иногда я получаю ошибка «устройство используется другим приложением». VirtualBox также имела ту же проблему.

Хотя я почти не тестировал на большом количестве устройств, другие перенаправляются нормально, включая смартфон Android и мою мышь ( упс!) Так что это может быть проблема Apple.

Потеряно там, откуда взял, но добавление блока hostdev в XML с указанием производителя iPod и идентификатора продукта не исправило его, равно как и отключение usbmuxd или ] удаление libimobiledevice-utils (другой ответ на этой странице вроде сработал, но в режиме восстановления это не сильно помогло, и мне пришлось использовать idevicerestore, чтобы исправить это). Также потенциально можно использовать этот комментарий .

У меня практически закончились идеи на данный момент, и я сломал довольно много на этом пути. Но должен же быть кто-то еще, кто пытается разрабатывать приложения для iOS с машины Ubuntu и запускать их на реальном мобильном оборудовании, верно?

Обновление:
Выполнение lsusb затем sudo fuser / dev / bus / usb / [bus] / [device] показывает, что gvfsd-gphoto2 использует устройство. Я могу убить это и начать подключать iPod к виртуальной машине, но он все равно отключается.

Обновление 2:
Сегодня обнаружены еще несколько неясных ссылок. Этот вопрос показывает, что это может быть проблема только с новыми устройствами Apple, а этот подсказал мне идею установки PCI-карты расширения USB для сквозной передачи (хотя я бы предпочел не покупать ее. ).

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

<hostdev mode="subsystem" type="usb" managed="no">
  <source startupPolicy="optional">
    <vendor id="0xXXXX"/>
    <product id="0xXXXX"/>
    <address bus="X" device="X"/>
  </source>
  <address type="usb" bus="0" port="4"/>
</hostdev>

Обновление 4:
Я купил карту PCI-e с парой USB-портов для маршрутизации к гостю.Хотя я совершил ошибку и получил устройство, которое на самом деле несовместимо с macOS, оно отображается в списке устройств PCI для этого парня . Для меня в списке ничего не отображается, даже если хост теряет доступ к карте после запуска виртуальной машины. Я предполагаю, что это отдельная проблема, но я просто сказал, что это не кажется легким (но не бесплатным) решением этой проблемы для меня.

Обновление 5: Я попытался поделиться iPod от хоста к гостю через USB Network Gate. Это всего лишь бесплатная пробная версия, но гость узнает устройство. Знаешь что, я возьму.

Обновление 6:
Может быть, будьте осторожны с этим программным обеспечением. Хост-система едва пережила перезагрузку, и USB Network Gate больше не работает. Проблемы включают файловую систему только для чтения (редактировать: это была моя ошибка и не связана) и проблемы с разрешением DNS.

Обновление 7:
Хорошо, я полагаю, что сеть снова не будет работать. Как насчет передачи USB-адаптера Wi-Fi на виртуальную машину? Нет, это было бы слишком просто. Пробовал парочку, но их драйверы несовместимы с Catalina.

Обновление 8:
Я попробовал FlexiHub вместо USB Network Gate, но мне просто сказали, что срок моей бесплатной пробной версии истек, вероятно, потому, что я использую виртуальную машину. Так что толку от этого не было, но я все равно вернулся к USB Network Gate. У меня тоже вроде работает сеть. И USB вроде как работает. Это все очень взломано, но в зависимости от ваших потребностей это может подойти. Я напишу ответ на свой вопрос, но если кто-то найдет реальное решение, а не серию хаков, он заслуживает похвалы.

0
задан 21 August 2020 в 23:05

1 ответ

Сеть

Я решил проблему с сетью, привязав свой телефон к виртуальной машине. Для Android:

  1. Установите эту версию HoRNDIS (последняя официальная версия не будет установлена ​​на Catalina).
  2. Подключите телефон к сети и включите модем (Настройки -> Сеть и Интернет -> Точка доступа и модем).
  3. Включите перенаправление USB для телефона (если вы сделаете это до шага 2, он отключится).

USB-устройство iOS

Виртуальная машина должна иметь доступ к вашей локальной сети.

  1. Установите кроссплатформенное решение для передачи данных через сеть USB, например USB Network Gate, как на хосте, так и на гостевой системе. Этот предлагает только бесплатную пробную версию, но у других, на которые я смотрел, были такие проблемы, как отсутствие совместимости с Catalina.
  2. Откройте его на хосте и переадресуйте порт, к которому подключено ваше устройство iOS.
  3. Откройте его в гостевой системе и подключитесь к устройству. Если он не может его найти, нажмите кнопку «Добавить сервер» в левом нижнем углу и введите IP-адрес вашего хоста.
  4. При необходимости установите флажок «Подключаться по сети» для своего устройства в Xcode, если вы используете его для целей разработки, чтобы вы могли продолжить разработку без использования USB-кабеля и после бесплатной пробной версии USB Network Gate. истекает.
0
ответ дан 5 September 2020 в 21:21

Другие вопросы по тегам:

Похожие вопросы: