Рейтинг:1

Сбой модуля v4l2loopback в Ubuntu 20.04

флаг ph

Я пробую новую веб-камеру на рабочей станции, к которой до сих пор не было подключено устройств видеозахвата. Это должно быть plug-and-play, но ни одна из программ не может найти камеру после подключения.

Сначала я проверил, идентифицирует ли само ядро ​​камеру:

$ лсусб
[...]
Шина 001 Устройство 007: ID 046d:082d Веб-камера Logitech, Inc. HD Pro C920
[...]

Итак, камера есть, она должна быть программной. Проверка подключенных устройств с видео для Linux дает еще одну подсказку:

$ v4l2-ctl --список-устройств
Не удается открыть устройство /dev/video0, выход.

Похоже, модуль ядра был отключен, поэтому я попытался запустить его:

$ sudo modprobe v4l2loopback
modprobe: FATAL: модуль v4l2loopback не найден в каталоге /lib/modules/5.4.0-81-generic

Странно, модуль даже не установился. Затем я вытащил его из пакетов и попробовал еще раз:

$ sudo aptitude установить v4l2loopback-dkms
[...]

$ sudo modprobe v4l2loopback
modprobe: ОШИБКА: не удалось вставить «v4l2loopback»: неизвестный символ в модуле или неизвестный параметр (см. dmesg)

И вот что я нашел среди сообщений:

$ dmesg
[...]
[1271004.074955] v4l2loopback: Неизвестный символ video_ioctl2 (ошибка -2)
[1271004.075027] v4l2loopback: неизвестный символ v4l2_ctrl_handler_init_class (ошибка -2)
[1271004.075105] v4l2loopback: Неизвестный символ video_devdata (ошибка -2)
[1271004.075167] v4l2loopback: неизвестный символ v4l2_ctrl_new_custom (ошибка -2)
[1271004.075221] v4l2loopback: Неизвестный символ video_unregister_device (ошибка -2)
[1271004.075276] v4l2loopback: Неизвестный символ video_device_alloc (ошибка -2)
[1271004.075336] v4l2loopback: неизвестный символ v4l2_device_register (ошибка -2)
[1271004.075410] v4l2loopback: неизвестный символ __video_register_device (ошибка -2)
[1271004.075463] v4l2loopback: неизвестный символ v4l2_ctrl_handler_free (ошибка -2)
[1271004.075513] v4l2loopback: неизвестный символ v4l2_device_unregister (ошибка -2)
[1271004.075562] v4l2loopback: неизвестный символ video_device_release (ошибка -2)

Я считаю, что это означает, что некоторые программные зависимости отсутствуют. Но какой? Есть обсуждение на GitHub в контексте облака, но решение слишком общее (установите все доступные дополнительные модули пакета).

David avatar
флаг cn
По данным Logitech, C920S HD Pro очень хорошо работает со стандартными программами VOIP, такими как Skype, Discord и другими. Благодаря разработчикам ядра Linux большинство веб-камер Logitech работают очень хорошо, и для их работы не требуется устанавливать какие-либо сторонние драйверы. НО этот комментарий от мая 2020 года и может быть неверным с 20.04.
Luís de Sousa avatar
флаг ph
Эта камера хорошо работает с другими компьютерами Ubuntu, но не с этим.
David avatar
флаг cn
Я думаю, вы только что доказали свою точку зрения не с 20.04
Рейтинг:1
флаг ph

После еще нескольких поисков я заметил кое-что странное, ни один из дополнительных модулей ядра на самом деле не был установлен в этой системе:

$ aptitude search linux-modules-extra*
[...]
p linux-modules-extra-5.4.0-70-generic — дополнительные модули ядра Linux для версии 5.4.0 на 64-битной x86 SMP
p linux-modules-extra-5.4.0-71-generic — дополнительные модули ядра Linux для версии 5.4.0 на 64-битной x86 SMP
p linux-modules-extra-5.4.0-72-generic — дополнительные модули ядра Linux для версии 5.4.0 на 64-битной x86 SMP
p linux-modules-extra-5.4.0-73-generic — дополнительные модули ядра Linux для версии 5.4.0 на 64-битной x86 SMP
p linux-modules-extra-5.4.0-74-generic — дополнительные модули ядра Linux для версии 5.4.0 на 64-битной x86 SMP
p linux-modules-extra-5.4.0-77-generic — дополнительные модули ядра Linux для версии 5.4.0 на 64-битной x86 SMP
p linux-modules-extra-5.4.0-80-generic — дополнительные модули ядра Linux для версии 5.4.0 на 64-битной x86 SMP
c linux-modules-extra-5.4.0-81-generic — дополнительные модули ядра Linux для версии 5.4.0 на 64-битной x86 SMP 

Это очевидный виновник, я установил пакет и попробовал еще раз:

$ sudo aptitude установить linux-modules-extra-5.4.0-81-generic
[...]

$ sudo modprobe v4l2loopback

$ v4l2-ctl --список-устройств
Фиктивное видеоустройство (0x0000) (платформа: v4l2loopback-000):
    /dev/video0

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

Gerd avatar
флаг in
Вы пытались вызвать `v4l2-ctl --list-devices`, не загружая `v4l2loopback`. В моей системе (это Linux Mint 20.2) модуль `v4l2loopback` был нужен только тогда, когда я хотел создать виртуальное устройство для своей веб-камеры (Logitech HD Pro Webca 920), но не для нормальной работы.

Ответить или комментировать

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