Motion не обнаруживает мою веб-камеру: НЕВОЗМОЖНО ОТКРЫТЬ ВИДЕОУСТРОЙСТВО

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

Я бы использовал USB веб-камеру с программным обеспечением Motion, установленным в Ubuntu на моем компьютере с Windows (WSL2). Но когда я запускаю Motion как сервис и проверяю в браузере по адресу [LOCALHOLST:порт 8080 или 8081], появляется интерфейс Motion, но моя веб-камера так и не была обнаружена. Всегда показывается серый экран для опции MyCam1, с надписью вверху слева “НЕВОЗМОЖНО ОТКРЫТЬ ВИДЕОУСТРОЙСТВО”.

Я пробовал множество различных конфигураций в файлах camera1-dist.conf и motion.conf, но, к сожалению, они все еще не работают.

Кто-нибудь мог бы подсказать мне, какие типы конфигураций и в каком файле я должен использовать, чтобы обнаружить USB веб-камеру с программным обеспечением Motion?

Заранее благодарю.

Привет, большое спасибо, ваши указания были очень полезны! Я следовал всем шагам и подключил веб-камеру к моей дистрибуции Ubuntu, и теперь команда Ubuntu ‘lsusb’ выдает следующий вывод:

root@LAPTOP-5OFK2AK7:/home/daniele# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 3443:950a SHENZHEN AONI ELECTRONIC CO.,LTD NexiGo N950P 4K Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

К сожалению, это все еще не работает.. Motion продолжает показывать серый экран и сообщение НЕВОЗМОЖНО ОТКРЫТЬ ВИДЕОУСТРОЙСТВО..

Теперь, я думаю, проблема в файле camera1-dist.conf. Я бы хотел установить веб-камеру на localhost:8080 (порт) или (8081), но я не понимаю, почему это все еще не работает, и что и где мне писать в этом файле camera1-dist.conf.

# Этот файл конфигурации был сгенерирован motion 4.2.2

###########################################################
# Настройки конфигурации, специфичные для камеры 1
############################################################
# Пользовательское имя для камеры.
camera_name MyCam1

# Числовой идентификатор для камеры.
camera_id 101

# Полный URL потока сетевой камеры.
netcam_url http://127.0.0.1:8080

# Ширина изображения в пикселях.
width 1280

# Высота изображения в пикселях.
height 720

# Текст для наложения в левый нижний угол изображений
text_left КАМЕРА 1

# Имя файла (без расширения) для видео, относительно целевой директории
movie_filename CAM01_%t-%v-%Y%m%d%H%M%S

Поскольку вы используете WSL2, хостовая ОС (т.е. Windows) в настоящее время управляет веб-камерой с помощью своих собственных драйверов.

Чтобы разрешить программе, работающей в экземпляре WSL2, получить доступ к USB-устройству, например, веб-камере, необходимо указать Windows передать управление этим USB-устройством в WSL2.

Источник: https://devblogs.microsoft.com/commandline/connecting-usb-devices-to-wsl/

Вам понадобится WSL2 с версией ядра Linux 5.10.60.1 или новее.

Также необходимо установить последнюю версию usbipd-win в Windows. Вы можете найти её здесь.

Внутри WSL2 вам нужно будет установить инструменты пользовательского пространства USB/IP и базу данных идентификаторов оборудования USB. На Ubuntu 20.04 LTS это будет:

sudo apt install linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

Обратите внимание, что часть 5.4.0-77-generic может варьироваться, если вы используете другую дистрибуцию или версию ядра.

Чтобы увидеть доступные USB-устройства и их идентификаторы шины, откройте командную строку от имени администратора и введите эту команду:

usbipd wsl list

Найдите идентификатор шины USB-устройства, которое вы хотите использовать в WSL2, и введите эту команду в командной строке администратора:

usbipd wsl attach --busid <bus ID>

Это, по-видимому, приведет к тому, что WSL запросит пароль для выполнения команды sudo. После этого USB-устройство будет видно в выводе lsusb в WSL2 и доступно приложениям WSL2 (и, следовательно, недоступно для нативных приложений Windows).

Когда вы закончите использовать устройство в WSL2, вы можете либо физически отключить его, либо вернуть в Windows, выполнив эту команду в командной строке администратора:

usbipd wsl detach --busid <bus ID>

.

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

Конечно, давайте разберем вашу проблему с подключением веб-камеры через Motion на Ubuntu в WSL2. При возникновении ошибки "UNABLE TO OPEN VIDEO DEVICE" процесс интеграции USB-устройства в WSL2 может требовать более детальной настройки. Рассмотрим шаги, которые помогут вам устранить эту ошибку.

Понимание Проблемы

Вашей главной задачей является обеспечение корректного подключения USB веб-камеры к Ubuntu, работающему на WSL2 в Windows. Проблема, как оказалось, связана с перенаправлением управления USB-устройством от Windows к вашей среде WSL2.

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

  1. Проверка Совместимости Версий:

    • Убедитесь, что версия ядра Linux в WSL2 равна или выше 5.10.60.1. Это критически важно для поддержки USB-устройств.
    • Установите актуальную версию usbipd-win на вашем главном устройстве с Windows. Вы можете скачать её на GitHub.
  2. Настройка WSL2:

    • В Ubuntu установите user-space инструменты для работы с USB/IP и базу данных идентификаторов USB-устройств:
      sudo apt install linux-tools-5.4.0-77-generic hwdata
      sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20
    • Учитывайте, что версия 5.4.0-77-generic может отличаться в зависимости от вашей версии дистрибутива.
  3. Подключение и Управление Устройствами:

    • Откройте командную строку от имени администратора и выполните команду для просмотра доступных USB-устройств:
      usbipd wsl list
    • Найдите Bus ID вашего устройства и подключите его к WSL2:
      usbipd wsl attach --busid <bus ID>
    • После этого устройство должно появиться в списке командой lsusb в вашей Ubuntu.
  4. Проверка Конфигурации Motion:

    • Удостоверьтесь, что файл camera1-dist.conf корректно настроен.
    • Проверьте, чтобы ваша конфигурация включала правильный URL или идентификатор потока камеры. Если подключение происходит локально, убедитесь, что URL содержит корректный адрес и порт вашей камеры.
  5. Диагностика и Отладка:

    • Если после выполнения вышеуказанных шагов все еще наблюдаются проблемы, рассмотрите возможность использования других инструментов для отладки, например, dmesg для просмотра логов ошибок USB.
  6. Передача Устройства Назад в Windows:

    • После завершения работы в WSL2 вы можете вернуть устройство в управление Windows:
      usbipd wsl detach --busid <bus ID>

Заключение

Следуя вышеизложенным рекомендациям, вы сможете устранить проблему с подключением веб-камеры в Motion на Ubuntu в WSL2. Если же вопрос остается нерешенным, возможно, потребуется более глубокая отладка или настройка, включая проверку драйверов и тестирование с другими USB-портами.

Эти шаги помогут вам обеспечить надежное и стабильное подключение устройства, тем самым решив текущую задачу.

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

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