问题描述
我一直在尝试在 EC2 实例上设置 v4l2loopback 并收到错误 - git update-index
上的 modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/5.4.0-1041-aws
。
尝试使用 sudo modprobe v4l2loopback
加载 videodev 也会返回相同的模块未找到错误。
我尝试为此安装 Linux 头文件,但没有成功。有线索吗?
解决方法
出于空间(和隐含的速度)原因(并且也出于安全原因),云虚拟机的内核通常会在云环境中去除任何不必要的东西。
现在大多数在某个未知数据中心运行的虚拟化硬件完全不需要硬件驱动程序(除了运行“虚拟硬件”的一小部分驱动程序)。 在这种情况下,音频和多媒体应用程序也非常罕见 - 因此图像供应商剥离了音频驱动程序和 v4l2 框架。
为了使用 v4l2loopback
模块,您需要一个带有 v4l2-framework 的内核。
由于供应商的映像缺少它,您需要自己配置和编译这样的内核(并确保它持续存在)。
仅仅安装内核头文件是不够的。
这里是 should give you a v4l2loopback-compatible kernel 的内核配置相关信息的摘录:
CONFIG_MEDIA_SUPPORT=y
# CONFIG_MEDIA_SUPPORT_FILTER is not set
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
#
# Media device types
#
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_MEDIA_SDR_SUPPORT=y
CONFIG_MEDIA_PLATFORM_SUPPORT=y
CONFIG_MEDIA_TEST_SUPPORT=y
# end of Media device types
#
# Media core support
#
CONFIG_VIDEO_DEV=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_DVB_CORE=y
# end of Media core support
#
# Video4Linux options
#
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_V4L2_I2C=y
# CONFIG_VIDEO_V4L2_SUBDEV_API is not set
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
# end of Video4Linux options