|
马上注册,结交更多好友,享用更多功能。
您需要 登录 才可以查看,没有账号?立即注册
x
既然今天来了,也就写写前天和昨天的一些工作吧,呵呵,其实是师兄他们在搞,我自己觉得有意思,也拿过来玩玩而已:)
再来转一篇关于摄像头驱动的帖子:
学习记录20070217_实现arm采集图像在PC上显示
我的环境
PC:操作系统用的FC5,内核是2.6.15,交叉编译器是3.4.1
开发板硬件:桓丰锐科的板子,CPU是s3c2410
开发板软件:bootloader是自己移植的u-boot,内核是自己移植的2.6.14.1,文件系统是自己移植的busybox-1.1.3
先说一下总体思路,
1、移植摄像头驱动
2、移植服务器端程序
3、编译客户端程序
1、移植摄像头驱动
这里移植的是spca5xx-le,网上有很多关关于移植摄像头驱动的文章,有关于2.4内核的,有关于2.6内核的。
跟他不一样的是,我一开始就把热插拔选上了。
移植过程中出现 了一些错误,困扰我时间最长的错误是硬件问题,我的开发板上有三个USB口,有两个主口,其中一个有问题,插了摄像头后没有反应,另外一个正常。一开始我总是把摄像头插在外面那个口上,老是没有反应后来插在里面那个口上,就好了。
插广告:本人是控制理论与控制工程专业应届硕士研究生,想从事arm+linux开发工作
2、移植服务器端程序
服务器端程序我用的是servfox,从这里下载
http://www.shexiangtouqudong.cn/
下载,解压,进入其目录,观察之,发现没有makefile,但有一个makefile.arm,还有一个makefile.386,于是将makefile.arm改名为makefile,然后输入命令
make
编译正常,没有出错,将可执行文件servfox复制到nfs共享目录,启动开发板,挂载nfs服务器,运行servfox,出错,提示为找到到该命令,老问题,以前遇到过类似问题,原因是该命令为动态链接,而开发板上没有相关的库文件,所以无法运行,需要静态链接。
回到PC,打开makefile,将所有用到arm-linux-gcc的地方,都加上一个参数-static,其实就三个地方。
然后重新编译,在开发板上运行,输入命令:
./servfox -d /dev/video0 -s 320x240 -w 7070
程序运行了,提示为
servfox version: 1.1.3 date: 11:12:2005 (C)
wrong spca5xx device
Waiting .... for connection. CTrl_c to stop !!!!
Got connection from 192.168.141.234
可能有点小错误,先不管它。
插广告:本人是控制理论与控制工程专业应届硕士研究生,想从事arm+linux开发工作
3、编译客户端程序
客户端程序使用的是spcaview,下载地址为:
http://www.shexiangtouqudong.cn/
这个程序是在PC上运行的,解压后,直接编译就行,
make
生成可执行文件spcaview,运行之
./spcaview -g -s 320x240 -w 192.168.141.236:7070
就能看到图像了,不过图像不清楚,有花屏,上网查之,发现有人遇到过同样问题,在服务器端(开发板)运行
./servfox -d /dev/video0 -s 320x240 -w 7070
就可以看到图像了。
也可指定分辨率为640x480,但是不如320x240流畅。
我在这一步遇到过另外一个问题,即使用root用户的话,运行spcaview没有问题,但如果使用交叉编译用户arm时(为了编译方便,建立了一个arm用户),就会出错,提示为
Spcaview version: 1.1.7 date: 06:11:2006 (C)
size width: 320 height: 240
using Server 192.168.141.236 Port 7070
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Could not initialize SDL: No available video device.
不知什么原因,暂搁置,以后再研究。
下一步准备弄个视频服务器,实现可以在浏览器里直接看到图像。 |
|