v4l2摄像头驱动笔记

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 程式所建立。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值