Módulo v4l2loopback falhando no Ubuntu 20.04

Módulo v4l2loopback falhando no Ubuntu 20.04

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.

informação relacionada