(参考了一个开源的项目,可能有些乱,但是不想整理了)
USB Camera Porting Guide
1、修改drivers/usb/Makefile文件,在
obj-$(CONFIG_USB_W9968CF) += media/
之后添加一行:
obj-$(CONFIG_USB_SPCA5XX) += media/
2、修改drivers/usb/media/Kconfig文件,在最后添加:
config USB_SPCA5XX
tristate "USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras"
depends on USB && VIDEO_DEV
---help---
Say Y or M here if you want to use one of these webcams:
The built-in microphone is enabled by selecting USB Audio support.
This driver uses the Video For Linux API. You must say Y or M to
"Video For Linux" (under Character Devices) to use this driver.
Information on this API and pointers to "v4l" programs may be found
at <file:Documentation/video4linux/API.html>.
To compile this driver as a module, choose M here: the
module will be called spca5xx.
3、修改drivers/usb/media/Makefile ,添加:
obj-$(CONFIG_USB_SPCA5XX) += spca5xx/
4、在usb/media目录下建立spca5xx目录
#mkdir drivers/usb/media/spca5xx
5、在drivers/usb/media/spca5xx添加如下文件:这些代码可以从http://mxhaard.free.fr/spca50x/Doc/KernelPatch/usb-2.6.12.patch.tar.gz
中下载
(1)、cs2102.h
(2)、hdcs2020.h
(3)、hv7131b.h
(4)、hv7131c.h
(5)、icm105a.h
(6)、Makefile
(7)、Makefile.2.4
(8)、Makefile.org
(9)、pas106b.h
(10)、pb0330.h
(11)、sn9cxxx.h
(12)、sp5xxfw2.dat
(13)、sp5xxfw2.h
(14)、spca5xx.h
(15)、spcaCompat.h
(16)、spca_core.c
(17)、spcadecoder.c
(19)、spcadecoder.h
(20)、spcausb.h
(21)、tas5130c.h
(22)、zc3xx.h
6、配置内核
(1)、
Multimedia devices --->
<M> Video For Linux
(2)、
USB support --->
<M> Support for Host-side USB
--- USB Host Controller Drivers
<M> OHCI HCD support
(3)、
--- USB Multimedia devices
<M> USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras
7、编译内核及模块
#make uImage
#make modules
8、拷贝模块文件到开发板文件系统目录下
walker/
walker/module_file
以上两个目录为手动建立的目录
cp drivers/media/video/v4l1-compat.ko /friendly-arm/rootfs_netserv/home/walker/module_file
cp drivers/media/video/v4l2-common.ko /friendly-arm/rootfs_netserv/home/walker/module_file
cp drivers/media/video/videodev.ko /friendly-arm/rootfs_netserv/home/walker/module_file
cp drivers/usb/core/usbcore.ko /friendly-arm/rootfs_netserv/home/walker/module_file
cp drivers/usb/media/spca5xx/spca5xx.ko /friendly-arm/rootfs_netserv/home/walker/module_file
9、将USB摄像头插入开发板(注:必须先插入摄像头才能插入模块文件,否则系统会出现kernel oops)
10、重新启动开发板
11、插入模块文件(注:这里必须注意模块的插入顺序,这是因为模块的依赖关系)
/sbin/insmod /home/walker/usbcore.ko
/sbin/insmod /home/walker/ohci-hcd.ko
/sbin/insmod /home/walker/v4l1-compat.ko
/sbin/insmod /home/walker/v4l2-common.ko
/sbin/insmod /home/walker/videodev.ko
/sbin/insmod /home/walker/spca5xx.ko