Не удается заставить USB Host (Mac) распознать USB UVC устройство (Raspberry Pi Zero 2 W)

Вопрос или проблема

Я пытаюсь создать симулированный веб-камера-периферийное устройство с помощью Raspberry Pi Zero 2 W. Это аналогичный случай использования, как в этом посте на askubuntu: Не удается получить видео через uvc_gadget на хост-компьютер

Как и в настройке, упомянутой в вопросе, я тоже настраиваю источник видео с обратной связью, создаю USB-устройство и затем запускаю uvc-gadget, и вижу, что оно успешно инициализируется.

root@raspberrypi:~ # ./setup.sh
/dev/video0
Загрузка композитного модуля
Обнаружение платформы:
  плата : Raspberry Pi Zero 2 W Rev 1.0
  udc   : 3f980000.usb
Создание USB-гаджета
Создание каталога гаджета g1
ОК
Установка идентификаторов производителя и продукта
ОК
Установка строк на английском языке
ОК
Создание конфигурации
Создание функций...
    Создание функциональности UVC-гаджета : uvc.0
ОК
Привязка контроллера USB-устройств
ОК
root@raspberrypi:~ # v4l2-ctl --list-devices
3f980000.usb (gadget.0):
    /dev/video1

VirtualCam (platform:v4l2loopback-000):
    /dev/video0 

Я также использую uvc-gadget отсюда: https://github.com/wlhe/uvc-gadget

root@raspberrypi:~ # uvc-gadget2 -d /dev/video2 -u /dev/video1 -r 1 -f 1
uvc-устройство - 3f980000.usb на шине gadget.0
uvc-открытие выполнено, дескриптор файла = 3

но на этом все останавливается. На хост-системе не отображается ни одно USB-устройство, и я не знаю почему.

Я включил периферийный режим в /boot/firmware/config.txt:

#[cm4]
# Включить режим хоста на встроенном контроллере XHCI USB 2711.
# Эта строка должна быть удалена, если требуется устаревший контроллер DWC2
# (например, для режима USB-устройства) или если поддержка USB не требуется.
# otg_mode=1

#[cm5]
#dtoverlay=dwc2,dr_mode=host

[all]
dtoverlay=dwc2,dr_mode=peripheral
dtparam=spi=on

Я подтвердил, что мой USB-кабель в OTG-порту и что это дата-кабель. Мне удалось получить это устройство, чтобы оно распознавалось как USB-адаптер Ethernet, следуя учебнику, который использует config.txt и cmdline.txt.

Есть мысли о том, почему это идет не так?

Ответ или решение

Проблема с распознаванием USB-гироскопа (Mac) для USB UVC-устройства (Raspberry Pi Zero 2 W)

Введение

Создание веб-камеры с использованием Raspberry Pi Zero 2 W является интересной задачей, которая требует тонкой настройки программного обеспечения и оборудования. Проблема, с которой вы столкнулись, может быть вызвана несколькими факторами, связанными с настройками системы, совместимостью оборудования или неправильной конфигурацией программного обеспечения.

Анализ текущей конфигурации

  1. Настройка USB-устройства на Raspberry Pi
    Вы указали, что успешно инициализировали UVC-гаджет, но при этом устройство не отображается на хост-системе. Ваша команда v4l2-ctl --list-devices четко показывает, что устройства были распознаны на Raspberry Pi, однако устройства не появляются на вашем Mac.

  2. Проверка конфигурации конфигурационных файлов
    Вы внесли изменения в файл /boot/firmware/config.txt, чтобы активировать режим периферийного устройства:

    [all]
    dtoverlay=dwc2,dr_mode=peripheral

    Убедитесь, что строки для режима «host» закомментированы. Также стоит проверить, что параметры для dtoverlay установлены корректно, так как неправильные параметры могут привести к проблемам с распознаванием.

  3. Подключение и тип кабеля
    Вы упомянули, что используете кабель данных, подключенный к OTG-порту Raspberry Pi. Важно убедиться, что это действительно кабель, поддерживающий передачу данных, так как некоторые кабели предназначены только для зарядки.

Рекомендуемые шаги

  1. Перезагрузка после изменений
    После внесения изменений в конфигурационные файлы необходимо перезагрузить Raspberry Pi. Убедитесь, что все процессы загрузились корректно и не возникло ошибок при инициализации USB.

  2. Мониторинг USB-подключений
    Для диагностики используйте команды, такие как dmesg, чтобы просмотреть сообщения ядра и обнаружить потенциальные ошибки или проблемы при подключении. Введите команду в терминале Raspberry Pi и проконсультируйтесь с выводом:

    dmesg | tail -n 20
  3. Проверка MAC-системы
    Убедитесь, что Mac OS распознает новое устройство. Вы можете открыть "Информацию о системе" -> "USB", чтобы проверить наличие новых устройств в подключениях USB. Также стоит проверить различные USB-порты на Mac и перезагрузить систему.

  4. Проверка версии и совместимости программного обеспечения
    Убедитесь, что вы используете последнюю версию кода для uvc-gadget, а также что все зависимости установлены. Проверьте полную совместимость с вашей версией Mac OS.

  5. Программная отладка
    Если проблема все еще не решена, стоит попробовать отладить возможность передачи видеопотока, запустив другие программы, такие как fswebcam или guvcview, для тестирования веб-камеры на Pi. Это позволит убедиться, что поток действительно работает.

  6. Альтернативный тест
    Попробуйте подключить другой USB-устройство, используя аналогичную конфигурацию для тестирования, чтобы понять, происходит ли проблема из-за конкретной конфигурации вашего Raspberry Pi или из-за хост-системы.

Заключение

Разобраться с USB UVC-гаджетом на Raspberry Pi может потребовать определенных усилий и исследований. Ваша проблема может быть связана с неправильными настройками или несовместимостью оборудования. Применение указанных рекомендаций, вместе с регулярной диагностикой, должны помочь в устранении проблемы и приведут к успешному распознаванию устройства на вашем Mac. Обязательно сохраняйте свои настройки и изменения, чтобы в дальнейшем легче было определять источник проблем.

Оцените материал
Добавить комментарий

Капча загружается...