要给ov511移植v4l2驱动,挑战啊

来源:互联网 发布:杀马特遇见洗剪吹 知乎 编辑:程序博客网 时间:2024/05/22 14:16

现在项目需要,通过ov511来做这个东西实时性跟不上,所以到了我最不想走的那部,本来以为换上v4l2就可以了的,谁知道竟然驱动不上,

又是一个提高的机会了,这步走了如果还是跟不上,只能说明我的捕捉方法不行了,我是想不出其他的提高速度的方法了。

 

可是说是移植v4l2驱动,谈何容易啊,我都不知道在drivers/video/下要修改哪个文件,只能硬着头皮向下做。

加油了

 

1.根据make menuconfig 找到相应的驱动位置help 看看Kconfig的位置

2.找到ov511.c ov511.h文件 在drivers/media/video/ 下,直接把他们替换为提供v4l2支持的文件,2.6.30.4内核中的文件

3.make

出错了,好啊,第一个错误我忘记了,说是缺少v4l2-ioctl.h我就到2.6.30.4中复制过来。

后来又是一大串的警告(忽略),又来了struct video_device没有parent这个成员,我找啊找

这个结构体究竟在哪里呢,纠结啊,

我就对照ov511.c的头文件找,还是没有找到,百度吧,找到了include/media/v4l2-dev.h

在这里ctrl+f 没有parent这个成员 ,倒是有struct video_device这个结构体,索性同样,复制有的过来,

4继续make

好点有惊无险的结束了,现在就好好的测试了,不过摄像头不在。等等吧

 

我现在对上面的做法非常无语,不知道误导了多少英雄少年,我现在知道了。

其实啥啊,那个我修改了好多好多文件都没有成功,最后我开始怀疑驱动是我那样移植的吗?

 

无奈之下我睡了一觉感觉要重头再来,就看看Kconfig 那个vivi.c到底在哪个目录下,哎,真是苍天开眼啊。

vivi.c被我找到了,在那个virtual video drivers下,这样就好办了。

make menuconfig

选上

make

哇出现了vivi.o哈哈

测试,oh ,my lady gaga,成功了。

下面的问题就是应用程序问题了,哈哈

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

v4l2不是像上面说的那样瞎搞文件,网络上说的vivi.c都没有告诉我们怎么配置v4l2,我就到Kconfig下搜索vivi

还真给我找到了,看了下transite 名字,原来是Virtual Video Driver ,再看看help 有v4l2,继续搜索看看有没

有别的,没了,ok了,基本完成了。收工。添加进内核,编译成功。

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

程序写好了,在PC下测试成功,可以保存文件,但是到了arm下就不行了,不知道什么原因!!!!!!!!

我试了好多下

用struct stat 测试文件的大小,竟然有那么大,但是fwrite保存的二进制文件明明返回值是0  ?????

这个问题哦,您有何高见啊。

驱动的问题我不怀疑,没有修改任何东西!!!(可能就是驱动问题)

但是除了保存一切正常啊。而保存与驱动无关,难道是数据没有从缓冲队列中出来?

异或是fwrite要保存的数据太大,传输失败,(对了,我用的是NFS挂载的文件系统)?

怀疑中

##################################################################################

问题解决了,是我的Linux下的磁盘空间容量不够,NFS权限还是没有本机操作的大。

windows防火墙没有关,我给关了。

vi text在linux编辑,和vi text在arm上编辑

linux可以保存文件,arm不可以,

cp xx pp 在linux下可以arm 不可以,还带有提示,write error.....我一看就知道是磁盘容量的问题(前几天还提示的呢,呵呵)
 

 ##################################################################################

原创粉丝点击