Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32519
  • 博文数量: 9
  • 博客积分: 372
  • 博客等级: 一等列兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-16 11:59
文章分类

全部博文(9)

文章存档

2013年(1)

2010年(8)

我的朋友

分类: LINUX

2010-04-16 14:09:18

linux-2.6.22.6/drivers/usb 目录下新建 media 目录,将gspcav1-20071224.tar.gz copy media 下并解压。为了使media 编译进内核,需修改linux-2.6.22.6/drivers/usb 目录下的KconfigMakefile 文件。

[linux@gu usb]$ pwd
/work/kernel/linux-2.6.22.6/drivers/usb
[linux@gu usb]$ vi Kconfig
添加
source "drivers/usb/media/Kconfig"
[linux@gu usb]$ vi Makefile
添加
obj-$(CONFIG_USB_SPCA5XX)        += media/

b)
为添加 gspcav1-20071224 编译选项,在 media 下新建 KconfigMakefile 文件。

[linux@gu media]$ pwd
/work/kernel/linux-2.6.22.6/drivers/usb/media
[linux@gu 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@gu media]$ vi Makefile
#
# Makefile for USB Media drivers
#

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


c)
修改 gspcav1-20071224 Makefile

[linux@gu gspcav1-20071224]$ pwd
/work/kernel/linux-2.6.22.6/drivers/usb/media/gspcav1-20071224
[linux@gu gspcav1-20071224]$ vi Makefile

gspca-objs := gspca_core.o decoder/gspcadecoder.o
obj-$(CONFIG_USB_SPCA5XX) += gspca.o

 

将补丁文件gspca_kernel_2.6.27.diff 复制到gspcav1_-20071224目录
打补丁:

       Patch –p12.6.27.diff

配置内核:

make menuconfig

(1)Multimedia drivers à

Video For Linux

     (2) USB support à

             Support for Host-side USB

                           -- USB Host Controller Drivers

             OHCI HCD support

(3)       --USB Mulltimedia devices

              USB SPCA5XX Sunplus/Vimicro/sonix jpeg Cameras

6.        编译内核及模块 ,在源码根目录下执行make modules就行。当然你得指定交叉编译环境,可以在顶层的Makefile 里面修改。

7.        拷贝模块文件至开发板目录下

cp  drivers/media/video/v4l1-compat.ko  /home/gu/

cp  drivers/media/video/v4l2-common.ko /home/gu/

cp  drivers/media/video/videodev.ko/    /home/gu/

cp drivers/usb/core/usbcore.ko         /home/gu/

cp  drivers/usb/media/gspcav1/gspca.ko  /home/gu/

       cp    drivers/usb/host/ohci-hcd.ko               /home/gu

 

USB摄像头插入开发板(注:必须先插入摄像头才能插入模块文件,否则系统会出现kernel oops

9.        重新启动开发板

10.    插入模块文件(注:这里必须注意模块的插入顺序,这是因为模块的依赖关系

Insmod usbcore.ko

Insmod ohci-hcd.ko

Insmod v4l1-compat.ko

Insmod v4l2-common.ko

Insmod videodev.ko

Insmod spca5xx.ko

插入以上模块之后,建议设备文件

Cd /dev

Mknod video0 c 81 0

 

 

移植服务器端程序
服务器端程序我用的是servfox,从这里下载

下载,解压,进入其目录,观察之,发现没有makefile,但有一个makefile.arm,还有一个makefile.386,于是将makefile.arm改名为makefile,然后输入命令
make
编译正常,没有出错,将可执行文件servfox复制到nfs共享目录,启动开发板,挂载nfs服务器,运行servfox,出错,提示为找到到该命令,老问题,以前遇到过类似问题,原因是该命令为动态链接,而开发板上没有相关的库文件,所以无法运行,需要静态链接。
回到PC,打开makefile,将所有用到arm-linux-gcc的地方,都加上一个参数-static,其实就三个地方。
然后重新编译,传到开发板上

 

 

编译客户端程序
客户端程序使用的是spcaview,下载地址为:

这个程序是在PC上运行的,解压后,直接编译就行,
make
生成可执行文件spcaview,放到虚拟机的/bin 目录中

 

DNW里:./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 !!!!

 

在虚拟机的终端执行:./spcaview -g -s 320x240 -w 192.168.0.15:7070   (板子IP

就可以看到图像了。。。。

 
文件: 编译后的模块文件.rar
大小: 863KB
下载: 下载
文件: servfox+spcaview.rar
大小: 52KB
下载: 下载
阅读(1863) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~