您的位置:首页 > 其它

摄像头驱动gspcav+视频服务器servfox+客户端spcaview的移植

2012-10-31 16:31 295 查看
1. 【移植摄像头驱动】编译和加载gspcav。

步骤一:修改Makefile文件

KERNELDIR := /lib/modules/$(KERNEL_VERSION)/build

修改为如下(注意KERNELDIR应该为linux-2.6.22.6内核所在目录):

KERNELDIR := /source/kernel/linux-2.6.22.6

CROSS_COMPILE = arm-softfloat-linux-gnu-

CC = arm-softfloat-linux-gnu-gcc

步骤二:make 后即可看到该目录下有一个gspca.ko的文件了。拷贝到网络文件系统/source/rootfs中insmod gspca.ko即可。

步骤三:在/etc/init.d/rcS中加上/sbin/insmod /app/app_driver/gspca.ko 即可,设备节点由于系统安装了udev可以自动创建。

2.【移植servfox】其实spcaview也可以做采集端。但是移植起来没有servfox简单,所以采集数据端选用servfox。

步骤一:修改Makefile文件为。

CC=arm-linux-gcc

SERVFLAGS= -O2 -DLINUX $(WARNINGS) –I/home/yuaf/linux-2.6.15/include

步骤二:make,在当前文件夹下就可以看到生成的可执行文件servfox,把此可执行文件拷贝到网络文件系统/source/rootfs/bin

步骤三:在开发板中运行 servfox –d /dev/video0 –s 320x240 –w 7070 就可以看到如下的提示信息:

servfox version: 1.1.2 date: 07:10:2005 (C) mxhaard@magic.fr

Waiting .... for connection. CTrl_c to stop !!!!

说明servfox已成功运行起来了。

3.【Linux上编译spcaview】由于此软件包依赖与libsdl,所以在安装spcaview之前,必须要安装 SDL-1.2.13

步骤一:解压源码包: tar zxvf SDL-1.2.13.tar.gz

步骤二:安装源码包: cd SDL-1.2.13,运行 ./configure ,编译文件 make,安装文件 make install。在安装的过程中,注意安装的路径,可以通过查看配置文件获得安装路径或者修改路径。

步骤三:安装spcaview软件:tar zxvf spcaview-20061208,cd spcaview-20061208,make,在源文件目录上,可看到三个可执行文件,spcacat spcaserv spcaview

◎spcacat 简单图片的抓取工具,不能用于网络监视客户端。

◎Spcaserv shi 流媒体服务器。

◎Spcaview 工具是用来纪录数据流,也能用来播放数据,也能作为网络监视客户端用。

我们可以在Linux上运行: ./spcaview –g –s 320x240 –w 192.168.0.100:7070

其中192.168.0.100是服务器的IP地址,这样我们就可以在PC机上看见USB摄像头采集进来的数据了。

4.【移植Web服务器】我们选用的是boa服务器,见“BOA服务器搭建过程.txt”。

5.【通过web浏览器浏览摄像头采集进来的数据】在上面的spcaview目录中,有一个目录 http-java-applet。把此目录放到web服务器的根目录下,注意要设置此文件的权限。

6.【安装JRE】,以让浏览器支持JAVA程序。若在Linux下可以参照:

http://www.linuxsir.org/main/?q=node/59,对此有比较详细的介绍。若在ubuntu下,比较省事的做法是:sudo apt-get install sun-java6-jdk. Sudo apt-get install sun-java6-jre

若在windows下,可以在网上下载支持windows的jre的exe文件。

7.【查看效果】 安装完之后,就可以在windows的浏览器下输入:

http://192.168.0.100/http-java-applet/index.html

激动人心的时刻到来了。就可以看到摄像头采集进来的数据了。

总结:在整个移植的过程中也不是一帆风顺的。在最开始移植serforx的时候,运行serforx,出现 invalid …..什么玩意的。这种情况是没有找到相应的库文件。还有就是在添加了相应的库文件之后,之后出现

ervfox: /lib/libpthread.so.0: version `GLIBC_2.1' not found (required by servfox)

servfox: /lib/libpthread.so.0: version `GLIBC_2.0' not found (required by servfox)

servfox: /lib/libc.so.6: version `GLIBC_PRIVATE' not found (required by /lib/libpthread.so.0)

servfox: /lib/libc.so.6: version `GLIBC_2.4' not found (required by /lib/libpthread.so.0)

查看lib目录下,发现有相关的文件啊,这说明是编译器的版本不一致导致的。我就是换一个低一点的版本编译就不会出现这样的问题了。在windows下输入服务器网址,看摄像头采集进来的图像,最开始始终没有,第一天捣鼓了一阵,就没整了,比较郁闷。今天我在sun java 控制台乱整了一下,输入网址,意想不到的事发生了。浏览器可以看见图像了。而且延时时间还比较小。在整个过程中收获还是蛮大的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: