以编译 connector 为例:
@1,下载和 uname -r 匹配的内核源码
@2,编译内核源码
@3,编译应用层:gcc ucon.c
@4,编译内核层:修改Makefile:
KERNELDIR := ../..
CURRENT_PATH := $(shell pwd)
KDIR := /lib/modules/4.9.0-141-custom/build
obj-m := cn_test.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KDIR) M=$(CURRENT_PATH) modules
rm *.mod*
clean:
$(MAKE) -C $(KDIR) M=$(CURRENT_PATH) clean
以 KERNELDIR 下载的内核源码路径编译,insmod时会报版本不匹配错误:
[4976377.118021] cn_test: disagrees about version of symbol module_layout