
Estou testando uma nova câmera web em uma estação de trabalho que até então não tinha dispositivos de captura de vídeo conectados. Deve ser plug-and-play, mas nenhum dos programas consegue encontrar a câmera depois de conectada.
Primeiro verifiquei se o próprio kernel estava identificando a câmera:
$ lsusb
[...]
Bus 001 Device 007: ID 046d:082d Logitech, Inc. HD Pro Webcam C920
[...]
Então existe uma câmera, deve ser uma coisa de software. Verificar dispositivos conectados com vídeo para Linux dá mais uma pista:
$ v4l2-ctl --list-devices
Cannot open device /dev/video0, exiting.
Parecia que o módulo do kernel estava desabilitado, então tentei iniciá-lo:
$ sudo modprobe v4l2loopback
modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/5.4.0-81-generic
Estranho, o módulo nem foi instalado. Então retirei-o dos pacotes e tentei novamente:
$ sudo aptitude install v4l2loopback-dkms
[...]
$ sudo modprobe v4l2loopback
modprobe: ERROR: could not insert 'v4l2loopback': Unknown symbol in module, or unknown parameter (see dmesg)
E foi isso que encontrei entre as mensagens:
$ 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)
Acredito que isso significa que faltam algumas dependências de software. Mas qual? Háuma discussão no GitHub em um contexto de nuvem, mas a solução é muito geral (instale todos os módulos extras do pacote disponíveis).
Responder1
Depois de mais pesquisas, notei algo estranho, nenhum dos módulos extras do kernel foi realmente instalado neste sistema:
$ 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
Sendo esse o culpado óbvio, instalei o pacote e tentei novamente:
$ 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
Embora isso tenha trazido o módulo de volta à vida, a web câmera permanece invisível para o software. Mas essa é outra questão.