Я пробую новую веб-камеру на рабочей станции, на которой до сих пор не было устройств видеозахвата. прикрепил. Он должен работать по принципу plug-and-play, но ни одна из программ не может найти камеру после подключения.
Сначала я проверил, идентифицирует ли само ядро камеру:
$ lsusb
[...]
Bus 001 Device 007: ID 046d:082d Logitech, Inc. HD Pro Webcam C920
[...]
Итак, есть камера, это должно быть программное обеспечение. Проверка подключенных устройств с помощью видео для Linux дает еще один ключ к разгадке:
$ v4l2-ctl --list-devices
Cannot open device /dev/video0, exiting.
Похоже, модуль ядра был отключен, поэтому я попытался его запустить:
$ sudo modprobe v4l2loopback
modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/5.4.0-81-generic
Странно, модуль даже не был установлен. Затем я вытащил его из пакетов и попробовал еще раз:
$ sudo aptitude install v4l2loopback-dkms
[...]
$ sudo modprobe v4l2loopback
modprobe: ERROR: could not insert 'v4l2loopback': Unknown symbol in module, or unknown parameter (see dmesg)
И вот что я нашел среди сообщений:
$ dmesg
[...]
[1271004.074955] v4l2loopback: Unknown symbol video_ioctl2 (err -2)
[1271004.075027] v4l2loopback: Unknown symbol v4l2_ctrl_handler_init_class (err -2)
[1271004.075105] v4l2loopback: Unknown symbol video_devdata (err -2)
[1271004.075167] v4l2loopback: Unknown symbol v4l2_ctrl_new_custom (err -2)
[1271004.075221] v4l2loopback: Unknown symbol video_unregister_device (err -2)
[1271004.075276] v4l2loopback: Unknown symbol video_device_alloc (err -2)
[1271004.075336] v4l2loopback: Unknown symbol v4l2_device_register (err -2)
[1271004.075410] v4l2loopback: Unknown symbol __video_register_device (err -2)
[1271004.075463] v4l2loopback: Unknown symbol v4l2_ctrl_handler_free (err -2)
[1271004.075513] v4l2loopback: Unknown symbol v4l2_device_unregister (err -2)
[1271004.075562] v4l2loopback: Unknown symbol video_device_release (err -2)
Я считаю, что это означает, что некоторые программные зависимости отсутствуют. Но какой? Существует обсуждение на GitHub в контексте облака , но решение слишком общее (установить все доступные дополнительные модули пакета).
После еще нескольких поисков я заметил кое-что странное, ни один из дополнительных модулей ядра не был фактически установлен в этой системе:
$ aptitude search linux-modules-extra*
[...]
p linux-modules-extra-5.4.0-70-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
p linux-modules-extra-5.4.0-71-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
p linux-modules-extra-5.4.0-72-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
p linux-modules-extra-5.4.0-73-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
p linux-modules-extra-5.4.0-74-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
p linux-modules-extra-5.4.0-77-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
p linux-modules-extra-5.4.0-80-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
c linux-modules-extra-5.4.0-81-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
Это очевидная причина, я установил пакет и дал это еще одна попытка:
$ sudo aptitude install linux-modules-extra-5.4.0-81-generic
[...]
$ sudo modprobe v4l2loopback
$ v4l2-ctl --list-devices
Dummy video device (0x0000) (platform:v4l2loopback-000):
/dev/video0
Несмотря на то, что модуль вернулся к жизни, веб-камера остается невидимой для программного обеспечения. Но это другой вопрос.