arm中linux系统摄像头,嵌入式ARM+linux下USB摄像头图像采集(改进版)

Kernel version :2.6.22.6

Crosstool:arm-softfloat-linux-gnu-gcc-3.4.5

Board:FS2410

System:ubuntu 8.10

Source:spcaview-20061208.tar.gzSDL-1.2.13.rarservfox-R1_1_3.rargspcav1-20071224.tar.gz

整理:LXP

一、移植gspcav1-20071224

FS2410开发板上移植的是Linux-2.6.22.6内核,USB及CS8900A均能工作,由于linux-2.6.22.6/drivers/usb目录下没有media目录,故移植步骤如下:a)在linux-2.6.22.6/drivers/usb目录下新建media目录,将gspcav1-20071224.tar.gz copy到media下并解压。为了使media编译进内核,需修改linux-2.6.22.6/drivers/usb目录下的Kconfig、Makefile文件。[linux@farsight usb]$ pwd

/work/kernel/linux-2.6.22.6/drivers/usb

[linux@farsight usb]$ vi  Kconfig添加source "drivers/usb/media/Kconfig"

[linux@weijing usb]$ vi Makefile添加obj-$(CONFIG_USB_SPCA5XX)        += media/b)为添加gspcav1-20071224编译选项,在media下新建Kconfig、Makefile文件。[linux@weijing media]$ pwd

/work/kernel/linux-2.6.22.6/drivers/usb/media

[linux@weijing media]$ vi Kconfig

#

# USB Multimedia device configuration

#

comment "USB Multimedia devices"

depends on USB

config USB_SPCA5XX

tristate "USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras"

depends on USB && VIDEO_DEV

[linux@weijing media]$ vi Makefile

#

# Makefile for USB Media drivers

#

obj-$(CONFIG_USB_SPCA5XX)   += gspcav1-20071224/

c)修改gspcav1-20071224的Makefile[linux@weijing gspcav1-20071224]$ pwd

/work/kernel/linux-2.6.22.6/drivers/usb/media/gspcav1-20071224

[linux@weijing gspcav1-20071224]$ vi Makefile

gspca-objs := gspca_core.o decoder/gspcadecoder.o

obj-$(CONFIG_USB_SPCA5XX) += gspca.o

clean:

rm -f *.[oas] .*.flags *.ko .*.cmd .*.d .*.tmp *.mod.c

rm -rf .tmp_versions

d)编译内核

(1)Multimedia devices  --->

(*)Video For Linux(2)USB support  --->

(*)Support for Host-side USB

--- USB Host Controller Drivers(*)OHCI HCD support(3)--- USB Multimedia devices

[M]USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras

注意:这里这一项只能动态加载,不能静态编译进内核,否则会出现如下错误:

….undefined referance to ‘__this_modules’;

另外:编译内核出现这种错误….undefined referance to ‘__this_modules’;

则原因可能是:有些模块只能以[M]方式加载,不能以(*)形式加载。

内核编译完成之后,把~/linux-2.6.22.6/drivers/usb/media/gspcav1-20071224/下的gspca.ko文件cp到/source/rootfs中去。(注:/source/rootfs是板子的根文件系统,这里采用动态下载的调试方式)

二、servfox下载Servfox-R1_1_3解压进入其目录,将其中的Makefile.arm修改为Makefile,并修改Makefile里面的CC为arm-softfloat-linux-gnu-gcc,因为默认的是加载的动态库,因此还需要修改Makefile中的SERVFLAGS为SERVFLAGS= -O2 –DLINUX $(WARNINGS) –static,其中-static是我们添加的内容,make之后生成servfox。加载驱动后可以运行servfox –g –d /dev/video0 –s 320x240 –w 7070运行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 192.168.1.222三、spcaview1、下载spcaview源码包解压,进入解压后的目录,make后会报错,一般需要安装

SDL库,去网上下载后安装SDL库,在PC机上安装SDL库:

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

配置:./configure

编译:make

安装:sudo make install

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

[root@farsight spcaview-20061208]# ./spcaview -g -w 192.168.1.17

Spcaview version: 1.1.7 date: 06:11:2006 (C)mxhaard@magic.frERROR Set default port to 7070

using Server 192.168.1.17 Port 7070

bright 32768 contrast 32768

四、测试过程详解:

开发板:

1安装驱动(spca5xx已经被编译进内核)

insmod gspca.ko(这是摄像头驱动)

2创建设备节点

mknod /dev/video0 c 81 0

这一步一般不用做,在insmod gspca.ko时,会自动创建该节点

3采集图像

#./servfox -d /dev/video0 -s 320x240 -w 7070

PC端:

#./spcaview -g–w 192.168.1.186:7070

-g参数一定要加,否则会出现段错误

PC端:在PC机上用Windows下的网页测试(如果开发板里装了BOA服务器):

解压spcaview后,还会产生,此是WEB客户端,将此客户端上传到开发板上的WEB文件夹中,则在浏览器输入则可看到摄像头采集来的图片了。web SERVER是移植boa,移植方法略

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值