加載攝像頭驅動
下載內核補丁和攝像頭驅動補丁
http://ftp.linux.org.uk/pub/linux/arm/kernel/v2.4/patch-2.4.18-rmk7.bz2 (內核補丁) http://mxhaard.free.fr/spca50x/embedded/KernelPatch/usb-2.4.31LE06.patch.tar.gz (攝像頭驅動spca5xx的補丁)
修改內核補丁版本號
打開patch-2.4.18-rmk7文件,把
+EXTRAVERSION = -rmk7
改爲
+EXTRAVERSION = -rmk7-pxa1
前面已經說過板子上的內核版本號是-rmk7-pxa1,所以此處要將它改過來,否則在加載模塊時會出現“內核版本號不一致”的錯誤
打內核補丁
cd linux-2.4.18
patch -p1 < ../patch-2.4.18-rmk7
打攝像頭驅動補丁
cd linux-2.4.18/drivers/usb
patch -p1 < ../../../usb-2.4.31.patch
此處會出現兩個錯誤,解決方法如下: 把Makefile.rej文件中的
subdir-$(CONFIG_USB_SPCA5XX) += spca5xx
ifeq ($(CONFIG_USB_SPCA5XX),y)
obj-y += spca5xx/spca5xx.o
endif
加到Makefile文件中
把Config.in.rej文件中的
dep_tristate ' USB SPCA5XX Sunplus Vimicro Sonix Cameras' CONFIG_USB_SPCA5XX $CONFIG_USB $CONFIG_VIDEO_DEV
加到Config.in文件中
編譯內核
打開Makefile文件,把
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
CROSS_COMPILE =
改爲
ARCH := arm
CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
此處只能用2.95.3版的,如果用比它高的版本就會出現
“arm-linux-ld:arch/arm/kernel/vmlinux.lds:799: parse error
make: *** [.tmp_vmlinux1]”
的錯誤
內核配置
make menuconfig
此處只需選擇兩處就行了:
Multimedia device --->
<M>Video for linux
USB support --->
<M> Support for USB
--- USB Multimedia devices
<M> USB SPCA5XX Sunplus Vimicro Sonix Cameras
這些選項一定要是M
然後make dep && make modules就行了,因爲我們不需要內核映像文件所以就把make zIamge省去了
需要的點o文件
可能需要四個點o文件:spca5xx.o、spca_core.o、spcadecoder.o、videodev.o
linux-2.4.18/driver/usb/spca5xx文件下有:spca5xx.o、spca_core.o、spcadecoder.o
linux-2.4.18/driver/media/video文件下有:videodev.o
有以下四種方法文件拷貝到開發板上:
1)用U盤等移動設備
2)用NFS服務
3)用FTP服務
4)用Apache+wget
加載模塊
insod videodev.o
會在/dev目錄下生成一個video0的字符設備文件
insod spca5xx.o
若出現類似於以下的信息就代表成功了:
usb.c: registered new driver spca5xx
spca_core.c: spca5xx driver 00.57.06LE registered