通过Makefile文件
# Makefile2.6
ifneq ($(KERNELRELEASE),)
#kbuild syntax. dependency relationshsip of files and target modules are listed here.
#gpiodrv-objs := gpiodrv.c
obj-m := led.o
else
PWD := $(shell pwd)
KVER = 2.6.35.3
KDIR:=$(KERNEL_PATH)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions
endif
当需要对这个驱动代码进行编译时,必须先编译光盘中提供的 Linux 内核代码。内核编译完成后,把该驱动代码 Makefile 中的 KDIR 变量指向刚编译好的内核源码路径,也可以在命令行里面执行“export KERNEL_PATH=内核代码目录”来实现这一点。当然,在~/.bashrc 文件里面添加环境变量 KERNEL_PATH,可以达到一次修改,多处使用的效果。操作如下:
vi /home/vmuser/.bashrc
export KERNEL_PATH=/home/vmuser/zlgmcu/EasyARM-iMX28x/AWorks/linux-2.6.35.3
然后在驱动代码的目录下,执行 make 命令即可完成驱动的编译