分类: LINUX
2010-04-16 14:09:18
在 linux-
[linux@gu usb]$ pwd
/work/kernel/linux-
[linux@gu usb]$ vi Kconfig
添加
source "drivers/usb/media/Kconfig"
[linux@gu usb]$ vi Makefile
添加
obj-$(CONFIG_USB_SPCA5XX) += media/
b) 为添加 gspcav1-20071224 编译选项,在 media 下新建 Kconfig、Makefile 文件。
[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_
打补丁:
Patch –p1
配置内核:
make menuconfig
(1)Multimedia drivers à
(2) USB support à
-- USB Host Controller Drivers
(3) --USB Mulltimedia devices
6. 编译内核及模块 ,在源码根目录下执行make modules就行。当然你得指定交叉编译环境,可以在顶层的Makefile 里面修改。
7. 拷贝模块文件至开发板目录下
cp drivers/media/video/v
cp drivers/media/video/v
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 v
Insmod v
Insmod videodev.ko
Insmod spca5xx.ko
插入以上模块之后,建议设备文件
Cd /dev
Mknod video
移植服务器端程序
服务器端程序我用的是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:
wrong spca5xx device
Waiting .... for connection. CTrl_c to stop !!!!
在虚拟机的终端执行:./spcaview -g -s 320x240 -w 192.168.0.15:7070 (板子IP)
就可以看到图像了。。。。
|
|