AWS EC2 Ubuntu实例加载v4l2loopback模块报Unknown symbol错误求助
问题解决方法
问题原因
该类Unknown symbol报错,本质是v4l2loopback模块依赖的v4l2核心内核组件,未在当前AWS定制内核中加载或缺失。
解决步骤
- 第一步:安装AWS内核额外模块包,补齐v4l2基础依赖
执行命令:sudo apt update && sudo apt install -y linux-modules-extra-$(uname -r) linux-image-extra-virtual - 第二步:手动加载v4l2核心模块
执行命令:
可通过sudo modprobe videodevlsmod | grep videodev确认模块加载成功。 - 第三步:重新编译v4l2loopback dkms模块
之前安装的v4l2loopback模块是在缺少v4l2核心依赖的环境下编译的,需要重新编译适配当前内核:
执行后确认无编译报错即可。sudo dpkg-reconfigure v4l2loopback-dkms - 第四步:加载v4l2loopback模块
注意正确参数为devices而非device,附加exclusive_caps=1参数可兼容大部分音视频软件识别虚拟设备:sudo modprobe v4l2loopback devices=8 exclusive_caps=1 - 第五步:验证创建结果
执行命令查看已创建的虚拟v4l2设备:v4l2-ctl --list-devices
开机自启配置(可选)
如果需要重启实例后自动加载虚拟设备,按以下操作配置:
- 配置开机加载模块:
sudo tee /etc/modules-load.d/v4l2loopback.conf << EOF videodev v4l2loopback EOF - 配置模块默认参数:
sudo tee /etc/modprobe.d/v4l2loopback.conf << EOF options v4l2loopback devices=8 exclusive_caps=1 EOF
内容的提问来源于stack exchange,提问作者k0342
相关产品推荐
相关产品推荐

