Вопрос или проблема
Я пытаюсь создать симулированный веб-камера-периферийное устройство с помощью 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 является интересной задачей, которая требует тонкой настройки программного обеспечения и оборудования. Проблема, с которой вы столкнулись, может быть вызвана несколькими факторами, связанными с настройками системы, совместимостью оборудования или неправильной конфигурацией программного обеспечения.
Анализ текущей конфигурации
-
Настройка USB-устройства на Raspberry Pi
Вы указали, что успешно инициализировали UVC-гаджет, но при этом устройство не отображается на хост-системе. Ваша командаv4l2-ctl --list-devices
четко показывает, что устройства были распознаны на Raspberry Pi, однако устройства не появляются на вашем Mac. -
Проверка конфигурации конфигурационных файлов
Вы внесли изменения в файл/boot/firmware/config.txt
, чтобы активировать режим периферийного устройства:[all] dtoverlay=dwc2,dr_mode=peripheral
Убедитесь, что строки для режима «host» закомментированы. Также стоит проверить, что параметры для
dtoverlay
установлены корректно, так как неправильные параметры могут привести к проблемам с распознаванием. -
Подключение и тип кабеля
Вы упомянули, что используете кабель данных, подключенный к OTG-порту Raspberry Pi. Важно убедиться, что это действительно кабель, поддерживающий передачу данных, так как некоторые кабели предназначены только для зарядки.
Рекомендуемые шаги
-
Перезагрузка после изменений
После внесения изменений в конфигурационные файлы необходимо перезагрузить Raspberry Pi. Убедитесь, что все процессы загрузились корректно и не возникло ошибок при инициализации USB. -
Мониторинг USB-подключений
Для диагностики используйте команды, такие какdmesg
, чтобы просмотреть сообщения ядра и обнаружить потенциальные ошибки или проблемы при подключении. Введите команду в терминале Raspberry Pi и проконсультируйтесь с выводом:dmesg | tail -n 20
-
Проверка MAC-системы
Убедитесь, что Mac OS распознает новое устройство. Вы можете открыть "Информацию о системе" -> "USB", чтобы проверить наличие новых устройств в подключениях USB. Также стоит проверить различные USB-порты на Mac и перезагрузить систему. -
Проверка версии и совместимости программного обеспечения
Убедитесь, что вы используете последнюю версию кода дляuvc-gadget
, а также что все зависимости установлены. Проверьте полную совместимость с вашей версией Mac OS. -
Программная отладка
Если проблема все еще не решена, стоит попробовать отладить возможность передачи видеопотока, запустив другие программы, такие какfswebcam
илиguvcview
, для тестирования веб-камеры на Pi. Это позволит убедиться, что поток действительно работает. -
Альтернативный тест
Попробуйте подключить другой USB-устройство, используя аналогичную конфигурацию для тестирования, чтобы понять, происходит ли проблема из-за конкретной конфигурации вашего Raspberry Pi или из-за хост-системы.
Заключение
Разобраться с USB UVC-гаджетом на Raspberry Pi может потребовать определенных усилий и исследований. Ваша проблема может быть связана с неправильными настройками или несовместимостью оборудования. Применение указанных рекомендаций, вместе с регулярной диагностикой, должны помочь в устранении проблемы и приведут к успешному распознаванию устройства на вашем Mac. Обязательно сохраняйте свои настройки и изменения, чтобы в дальнейшем легче было определять источник проблем.