KERNELDIR := /home/zuozhongkai/linux/IMX6ULL/linux/temp/linux-imxrel_imx_4.1.15_2.1.0_ga_alientek
CURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
说明:
KERNELDIR 表示开发板所使用的 Linux 内核源码目录,使用绝对路径,大家根
据自己的实际情况填写即可。
第 2 行, CURRENT_PATH 表示当前路径,直接通过运行“pwd”命令来获取当前所处路
径。
第 3 行, obj-m 表示将 chrdevbase.c 这个文件编译为 chrdevbase.ko 模块。
第 8 行,具体的编译命令,后面的 modules 表示编译模块, -C 表示将当前的工作目录切
换到指定目录中,也就是 KERNERLDIR 目录。 M 表示模块源码目录,“make modules”命令
中加入 M=dir 以后程序会自动到指定的 dir 目录中读取模块的源码并将其编译为.ko 文件。
Makefile 编写好以后输入“make”命令编译驱动模块
备注:当目标文件有多个.c文件生成时
obj-m:=ex.o
ex-objs:=a.o b.o