您的位置:首页 > 运维架构 > Linux

Arm-linux下USB摄像头的视频…

2013-03-05 14:37 323 查看
原文地址:Arm-linux下USB摄像头的视频服务器的实现作者:stone   
我使用的是webcom 001
的摄像头,它的控制芯片是zc301,以这款芯片做的摄像头在市场上占有率

很高,大概有70%左右。开发板的内核是Linux2.6.18,交叉编译器是arm-linux-gcc 3.4.1。

配置一下内核,在内核目录下make menuconfig,在Device
driver->Multimedia
devices->Video4Linux,将它编译进内核,使系统提供V4L。然后就是USB摄像头的驱动,尽管其内核中就集成了对0V511、zc301等系列摄像头的支持,开源驱动spca5xx/gspca也提供了对大部分主流摄像头的支持,但还是无法涵盖所有品牌的各种型号的摄像头,尤其是对于国内的中低端用户,很难找到直接可用的Linux下的驱动。于是我在网上下载了gspca驱动(http://mxhaard.free.fr/spca50x/Download/gspcav1-20070508.tar.gz,如果无法链接

的话,可以到csdn上下载,我已经上传了,免资源分),交叉编译make,其中Makefile参考的是

 

VERSION   
= 01.00.18

DEFINES   
=

###

# The following flags enable experimental features.

# By default, these are enabled for development versions of the
driver, and

# disabled for release versions.

# Optional: Enable
driver debugging

DEFINES   +=
-DGSPCA_ENABLE_DEBUG

# Optional: Enable
direct register read/write for PAC207 development

#DEFINES   +=
-DGSPCA_ENABLE_REGISTERPLAY

###

# The following flags enable features that aren't yet implemented,
and

# therefore are disabled by default.

# Optional: Enable
compression

DEFINES   +=
-DGSPCA_ENABLE_COMPRESSION

###

# Rest of Makefile follows here. You probably won't need to touch
this.

# Setup
defines

DEFINES   +=
-DCONFIG_USB_GSPCA_MODULE=1 -DMODULE -D__KERNEL__

DEFINES   +=
-DVID_HARDWARE_GSPCA=0xFF -DGSPCA_VERSION="$(VERSION)"

ifneq
($(KERNELRELEASE),)   # We were
called by kbuild

CFLAGS += $(DEFINES)

obj-m += gspca.o

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

else   # We were called
from command line

KERNEL_VERSION =
`uname -r`

KERNELDIR := /usr/src/linux-2.6.20.3

PWD  := $(shell pwd)

MODULE_INSTALLDIR =
/lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/media/

MODULE_INSTALLDIR2 =
/lib/modules/$(KERNEL_VERSION)/kernel/drivers/media/video/

CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc

CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-

ARCH=arm

default:

    $(MAKE) -C
$(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) ARCH=$(ARCH)
CROSS_COMPILE=$(CROSS_COMPILE) modules

install:

    mkdir -p
$(MODULE_INSTALLDIR)

    rm -f
$(MODULE_INSTALLDIR)spca5xx.ko

    rm -f
$(MODULE_INSTALLDIR2)gspca.ko

    install -c
-m 0644 gspca.ko $(MODULE_INSTALLDIR)

    /sbin/depmod
-ae

uninstall:

    rm -f
$(MODULE_INSTALLDIR)gspca.ko

    /sbin/depmod
-aq

endif

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

# OTHER TARGETS

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

clean:

    rm -r -f *.o
decoder/.gspcadecoder.o.cmd decoder/*.o

   
.gspca.o.cmd  *.o *.ko *.mod.* .[a-z]* core *.i

    *.symvers
*.err

   

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

就会在解压目录下生成gspca.ko,然后cp gspca.ko
/home/NFS,在开发板上insmod gspca.ko。

这时ls /dev就会看到一些设备文件vedio0 
usbdev1.2_ep82 
usbdev1.2_ep81。将USB摄像头插入开发板的USB接口。这时USB摄像头的驱动已经搞定了。下面再移植servfox做服务器,用spacview播放即可。注意,

spacview需要SDL库的支持,如果没有的话会出错。还有就是运行交叉编译的servfox要带参数的,如

./servfox -d /dev/video0 -s 640x480 -w
192.168.1.75:7070,当然运行客户端播放程序也要带参数的,

如在局域网内另一台PC上运行./spcaview -d /dev/video0 -s 640x480 -w
192.168.1.75:7070。csdn上编译好的servfox和spcaview下载。当然也可以下载到源码自己编译。

运行后的效果图如下:





 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: