设为首页 加入收藏

TOP

ARM9+Linux下USB摄像头图像采集
2014-11-24 14:16:52 来源: 作者: 【 】 浏览:1
Tags:ARM9 Linux USB 摄像头 图像 采集

终于实现了在Micro2440+Linux2.6.29环境下通过NFS文件系统实现USB摄像头图像采集。在此,做一个总结,以备后续参考。


一、升级Redhat9.0内核


由于Readhat9.0内核版本是2.4,很多内核驱动未包含其中,尤其是USB万能摄像头GSPCA和UVC。


二、配置编译Micro2440上运行内核


重新编译Micro2440上运行的内核,配置V4L和USB驱动。选择linux-2.6.29中的config-mini2440为参考,执行:cp config-mini2440 .config;然后make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-;出现相应的图形化配置窗口。


如果需要在Linux操作系统中使用USB摄像头进行视频数据采集,则必须在进行内核配置时,应检查Linux 内核中是否已经添加了对Video4Linux驱动和对USB摄像头驱动模块的支持。


利用Linux内核配置make menuconfig命令对Video4Linux支持驱动进行配置,选中多媒体设备选项“Multimedia device->”(如图15-1所示)按回车,进入多媒体设备配置界面。在多媒体配置界面中,选中“Video For Linux”,就可以使内核实现对Video4Linux驱动的支持,为视频采集设备提供编程接口。


配置好内核对Video4Linux驱动后,返回内核配置主界面,选中USB支持选项(如图15-3 所示)“USB support—>” 按回车,进入USB支持配置界面



配置完成后,执行make uImage ARCH=arm CROSS_COMPILE=arm-linux-。完成后,uImage就生成在arch/arm/boot/中。通过uboot下载uImage到内存中,启动内核,实现NFS起文件系统。



三、安装SDL-1.2.14


因为在redhat9.0中显示视频图像,调用spcaview(后面介绍)需要有SDL库的支持,否则会报错。所以,将SDL-1.2.14.tar下载传送到系统中,解压后执行.configure;make;make install。完成SDL库的安装。



四、servfox-R1_1_3工具



下载Servfox-R1_1_3解压进入其目录,将其中的Makefile.arm修改为Makefile,并修改Makefile里面的CC为arm -linux -gcc,因为默认的是加载的动态库,因此还需要修改Makefile中的SERVFLAGS为SERVFLAGS= -O2 –DLINUX $(WARNINGS) –static,其中-static是我们添加的内容,make之后生成servfox。



五、 spcaview,redhat9.0下的视频显示工具
下载spcaview源码包解压,进入解压后的目录,make后会报错,一般需要安装SDL库,去网上下载后安装SDL库,在PC 机上安装SDL库:


解压:tar xvf SDL-1.2.13.tar.tar


配置:./configure


编译:make


安装:make install


进入spcaview解压目录修改Makefile中的修改Makefile中的SDLLIBS =$(shell sdl-config --libs) 和 SDLFLAGS = $(shell sdl-config --cflags),这两句主要是指定了SDL库的库路径和编译选项。Make之后生成spcaview,在客户端运行spcaview –w 服务器ip:服务器端口号。就可以采集图像了,



[root@jxboylj spcaview-20061208]# ./spcaview -g -w 10.103.4.211:7070
Spcaview version: 1.1.7 date: 06:11:2006 (C) mxhaard@magic.fr
using Server 10.103.4.211 Port 7070



六、测试


将新编译的内核加载到ARM上,通过NFS文件系统运行servfox :


# ./servfox -d /dev/video0 -g -s 640x480 -w 7070


servfox version: 1.1.3 date: 11:12:2005 (C) mxhaard@magic.fr


wrong spca5xx device


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


Got connection from 10.103.4.216


在redhat9.0中执行spcaview:


[root@jxboylj spcaview-20061208]# ./spcaview -g -w 10.103.4.211:7070
Spcaview version: 1.1.7 date: 06:11:2006 (C) mxhaard@magic.fr
using Server 10.103.4.211 Port 7070


此时,视频能在redhat9.0窗口中显示,如图所示。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇仿写Android屏幕解锁小应用 下一篇Android多媒体-----AsyncPlayer

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: