Linux编译内核模块

内核模块即驱动的编译方式

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:指定编译过的内核源码根目录。


版权声明:本文为u010833052原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。