Ubuntu 20.04 で v4l2loopback モジュールが失敗する

Ubuntu 20.04 で v4l2loopback モジュールが失敗する

これまでビデオ キャプチャ デバイスが接続されていなかったワークステーションで、新しい Web カメラを試しています。プラグ アンド プレイのはずですが、接続するとどのプログラムもカメラを見つけることができません。

まず、カーネル自体がカメラを識別しているかどうかを確認しました。

$ lsusb
[...]
Bus 001 Device 007: ID 046d:082d Logitech, Inc. HD Pro Webcam C920
[...]

つまり、カメラがあるということは、ソフトウェアの問題であるに違いありません。Linux のビデオで接続されたデバイスを確認すると、もう 1 つの手がかりが得られます。

$ 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での議論ただし、解決策は一般的すぎます (利用可能なすべての追加パッケージ モジュールをインストールします)。

答え1

さらに検索してみると、奇妙なことに気付きました。このシステムには、追加のカーネル モジュールが実際にはインストールされていませんでした。

$ 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

モジュールは復活しましたが、ウェブカメラはソフトウェアからは見えません。しかし、それはまた別の問題です。

関連情報