移植gspca摄像头驱动到FS2410
【编译环境】ubuntu 8.10 + Vmware + windows xp
【目标机】FS2410
【交叉编译器】arm-softfloat-linux-gnu-gcc
1. 首先确保目标板的USB、CS8900a能正常工作。
2. 从网络下载摄像头驱动gspcav1-20071224.tar.gz 。
3. 在linux-2.6.22.6/drivers/usb/ 下新建media 目录,将gspcav1-20071224.tar.gz复制到media下解压。
4. 修改usb目录下的Kconfig和Makefile文件
4.1 在Kconfig 里添加source "drivers/usb/media/Kconfig"
4.2 在Makefile 里添加 obj-$(CONFIG_USB_SPCA5XX) += media/
5. 在drivers/usb/media目录下新建Kconfig和Makefile文件
5.1 vim Kconfig
comment "USB Multimedia devices"
depends on USB
config USB_SPCA5XX
tristate "USB SPCA5XX Sunplus/Vimcro/Sonix jpeg Cameras"
depends on USB&&VIDEO_DEV
---help---
<file:Documentation/video4linux/API.html>
5.2 vim Makefile
obj-$(CONFIG_USB_SPCA5XX) +=gspcav1-20071224/
6. 修改drivers/usb/media/spcav1-20071224/目录下的Makefile:
在gspca-objs := gspca_core.o decoder/gspcadecoder.o下面添加: obj-$(CONFIG_USB_SPCA5XX) += gspca.o 修改KERNEL_VERSION = linux-2.6.22.6 修改KERNELDIR := linux-2.6.22.6所在目录绝对地址(我的是/hd2/linux-2.6.22.6-pure/linux-2.6.22.6/ ) 修改MODULE_INSTALLDIR = $(KERNELDIR)/drivers/usb/media/ 修改MODULE_INSTALLDIR2 = $(KERNELDIR)/drivers/media/video/ 添加CC = arm-softfloat-linux-gnu-gcc
7. make menuconfig 配置内核
7.1 Multimedia devices --->
<*>Video For Linux (跟Video相关的选上,其余的可不选)
7.2 ---USB Multimedia devices
<*> USB SPCA5XX Sunplus/Vimcro/Sonix jpeg Cameras
8.make 尝试编译
8.1若出现gspca-version相关的错误:
修改gspcav1-20071224/gspca_core.c //static const char gspca_version[] = GSPCA_VERSION; 改为 static const char gspca_version[] = "00.60.00"; 添加一个宏定义 #define VID_HARDWARE_GSPCA 0xff
8.2若出现 undefined reference to "__this_module"相关的错误:
<*> USB SPCA5XX Sunplus/Vimcro/Sonix jpeg Cameras
改成 <M> USB SPCA5XX Sunplus/Vimcro/Sonix jpeg Cameras
(我的出现了这个错误!为什么不能直接编进内核?如果你解决了请告诉我 :boat_man@163.com )
9.make 成功后 ,在gspcav1-20071224 目录下会生成gspca.ko ,将它复制到主机nfs服务的根目录下(比如我的/soure/rootfs)。
10. 启动目标板 ,insmod gspca.ko 后插入scpca兼容的摄像头,如果显示:
usb 1-1: new full speed USB device using s3c2410-ohci and address 2 usb 1-1: configuration #1 chosen from 1 choice drivers/usb/media/gspcav1-20071224/gspca_core.c: USB GSPCA camera found.(ZC3XX) drivers/usb/media/gspcav1-20071224/gspca_core.c: [spca5xx_probe:4275] Camera type JPEG drivers/usb/media/gspcav1-20071224/Vimicro/zc3xx.h: [zc3xx_config:679] Find Sensor MI0360. Chip revision 8001
drivers/usb/media/gspcav1-20071224/gspca_core.c: [spca5xx_getcapability:1249] maxw 640 maxh 480 minw 160 minh 120 这说明摄像头的驱动安装成功!