内核模块即驱动的编译方式
1、本地编译
2、交叉编译
Makefile主要写法:
本地编译
obj-m := hello.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm *.o *.ko *.mod.c modules.order Module.symvers
obj-m : 指定编译成模块,注意c文件必须为hello.c。
KDIR : 指定内核源码树。
交叉编译
obj-m += ker_rw.o
KDIR = /home/用户/raspberry_src/linux$
PWD:=$(shell pwd)
all:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -C $(KERN_DIR) M=$(PWD) modules
clean:
rm -rf *.o *.ko *.order *.mod.c
KDIR:指定编译过的内核源码根目录。