[原]gspca在arm上的移植

2008-09-08 13:24 | 分类:Linux, 原创, 嵌入式 | 标签:, , , , , | 作者:Aaron | 816 views

本文主要介绍一下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了!

  1. 2条评论 关于 “[原]gspca在arm上的移植”

  2. 匿名 发表于2010-01-07

    在你的开发板上运行 uname -r 查看你所使用的内核版本,然后下载相应的内核文件??这是什么意思啊

  3. Allen 发表于2010-02-23

    编译驱动的时候需要一起编译内核的啊,所以这时候就需要内核的源文件,用uname -r可以看到当前使用的内核版本,比如说2.6.xx,然后再去网上找内核源代码,就这样~

发表您的评论

您的名字:

您的邮箱: (*不会被公布

您的网站: