[原]gspca在arm上的移植
本文主要介绍一下gspca在arm开发平台上的移植过程。
首先下载下来gspca的源码包,笔者使用的是gspcav1-20071224.tar.gz,解压到指定目录:
tar zxf gspcav1-20071224.tar.gz -C /opt (解压目录可以随大家的喜好)
其次你要确保你的开发环境配置完全正确,笔者使用的交叉编译环境为ELDK 4.1。你还需要让你的内核支持v4l(video for linux),当然,编译驱动内核文件一定是必不可少的,在你的开发板上运行 uname -r 查看你所使用的内核版本,然后下载相应的内核文件。笔者使用的内核版本是2.6.15,同样,解压到了/opt目录下。好了,当一切准备就绪以后,我们来看看如何修改Makefile文件。
Makefile文件需要改的东西其实很简单,无非就是告诉它你的内核目录在哪里,你想用的平台是什么,你想用哪个交叉编译器。以下是笔者修改后的Makefile文件,当然,你要根据你实际的目录来修改此文件。
VERSION = 01.00.20
DEFINES =
###
# The following flags enable experimental features.
# By default, these are enabled for development versions of the driver, and
# disabled for release versions.
# Optional: Enable driver debugging
DEFINES += -DGSPCA_ENABLE_DEBUG
# Optional: Enable direct register read/write for PAC207 development
#DEFINES += -DGSPCA_ENABLE_REGISTERPLAY
###
# The following flags enable features that aren’t yet implemented, and
# therefore are disabled by default.
# Optional: Enable compression
DEFINES += -DGSPCA_ENABLE_COMPRESSION
###
# Rest of Makefile follows here. You probably won’t need to touch this.
# Setup defines
DEFINES += -DCONFIG_USB_GSPCA_MODULE=1 -DMODULE -D__KERNEL__
DEFINES += -DVID_HARDWARE_GSPCA=0xFF -DGSPCA_VERSION=\”$(VERSION)\”
ifneq ($(KERNELRELEASE),) # We were called by kbuild
EXTRA_CFLAGS += $(DEFINES)
obj-m += gspca.o
gspca-objs := gspca_core.o decoder/gspcadecoder.o
else # We were called from command line
KERNEL_VERSION = `uname -r`
KERNELDIR := /opt/linux-2.6.15
PWD := $(shell pwd)
MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/media/
MODULE_INSTALLDIR2 = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/media/video/
CROSS_COMPILE = /eldk/usr/bin/arm-linux-
CC=/eldk/usr/bin/arm-linux-gcc
ARCH=arm
default:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules
#$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modules
install:
mkdir -p $(MODULE_INSTALLDIR)
rm -f $(MODULE_INSTALLDIR)spca5xx.ko
rm -f $(MODULE_INSTALLDIR2)gspca.ko
install -c -m 0644 gspca.ko $(MODULE_INSTALLDIR)
/sbin/depmod -ae
uninstall:
rm -f $(MODULE_INSTALLDIR)gspca.ko
/sbin/depmod -aq
endif
########################################
# OTHER TARGETS
##########################################
clean:
rm -r -f *.o decoder/.gspcadecoder.o.cmd decoder/*.o \
.gspca.o.cmd *.o *.ko *.mod.* .[a-z]* core *.i \
*.symvers *.err
##########################################
好了,一切都改好了以后你就可以放心的make了,make好了以后可以千万别习惯性的make install哦,这可不是你的PC需要的东东~编译好后你会在当前目录下发现一个gspca.ko,嗯,那就表示大功告成了!现在需要做的就是把它下到你的开发板上,建好设备文件,然后insmod gspca.ko就OK了!
2条评论 关于 “[原]gspca在arm上的移植”
由 匿名 发表于2010-01-07
在你的开发板上运行 uname -r 查看你所使用的内核版本,然后下载相应的内核文件??这是什么意思啊
由 Allen 发表于2010-02-23
编译驱动的时候需要一起编译内核的啊,所以这时候就需要内核的源文件,用uname -r可以看到当前使用的内核版本,比如说2.6.xx,然后再去网上找内核源代码,就这样~