概述
1.ubuntu下安装摄像头应用程序xawtv:
ubuntu下安装摄像头应用程序xawtv_Herok-CSDN博客_xawtv
2.VMware下Ubuntu调用USB摄像头出现 v4l2:oops:select timeout解决办法
VMware下Ubuntu调用USB摄像头出现 v4l2:oops:select timeout解决办法_菠萝菠萝哒X-CSDN博客
3.sudo insmod v4l2-common.ko”打印信息提示如下:Insmod:error inserting ‘v4l2-common.ko’:-1 Unknown symbol in module
先前已经分析过V4L2的框架,并且使用了xawtv测试了vivi虚拟驱动程序,对框架的分析并没有深入结构,比如说ioctl有很多,但是并不清楚哪些是必须的,哪些可以不要。并且也不知道测试程序是如何拿到视频数据的。本文将介绍如何根据虚拟驱动vivi的使用过程彻底分析摄像头驱动。
第1章vivi测试补充
1.1加载vivi.ko失败现象
加载vivi.ko驱动之前,先加载
videobuf-core.ko
videobuf-vmalloc.ko
v4l2-common.ko
这3个模块,然后就可以加载vivi.ko成功了。然而换了一台电脑,再执行一遍就不行了,在加载v4l2-common.ko时执行“sudo insmod v4l2-common.ko”打印信息提示如下:Insmod:error inserting ‘v4l2-common.ko’:-1 Unknown symbol in module
使用dmesg命令查看详细信息:
v4l2_common:Unknown symbol v4l2_device_register_subdev
v4l2_common:Unknown symbol v4l2_device_unregister_subdev
那么为什么原来的电脑可以正常加载驱动,现在的电脑就不行了呢?
1.2 加载vivi.ko失败原因
这是因为先前电脑测试时是先插上的UVC摄像头测试的,这时电脑会自动加载对应的v4l2相关的驱动ko,这个时候再加载vivi.ko驱动的时候就不缺少相应的symbol。而换了一台电脑没有插uvc摄像头驱动,所以问题就出现了。
解决办法----依次执行下面三步骤:
sudo modprobe vivi //安装ubuntu自带的驱动程序
sudo rmmod vivi //卸载内核自带的vivi驱动
sudo insmod vivi.ko //安装自己编译出的vivi.ko
1.3 insmod与modprobe
insmod 和modprobe 都是载入kernel module,不过一般差别于modprobe 能够处理module 载入的相依问题。比方你要载入 a module,不过 a module 需求系统先载入 b module 时,直接用insmod 挂入通常都会出现错误讯息,不过modprobe 倒是能够知道先载入b module 后才载入a module,如此相依性就会满足。不过modprobe 并不是大神,不会厉害到知道module 之间的相依性为何,该程式是读取/lib/modules/2.6.xx/modules.dep 档案得知相依性的。而该档案是透过depmod 程式所建立。
最后
以上就是缓慢小蚂蚁为你收集整理的v4l2摄像头驱动笔记1.ubuntu下安装摄像头应用程序xawtv:的全部内容,希望文章能够帮你解决v4l2摄像头驱动笔记1.ubuntu下安装摄像头应用程序xawtv:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复