内核makefiel链接模块
问题描述:
我目前正在尝试编写一些内核模块代码。 我正在使用现有内核模块的功能。 的hearders都包含在我的.c文件,但我不知道如何正确地内核makefiel链接模块
正常用户空间的Makefile我会知道我的代码与内核模块链接但不知道如何与内核模块做到这一点
任何建议?
这里是我的Makefile
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
INC := -I/usr/src/kernels/$(shell uname -r)/include
obj-m := scif.o
all:
$(MAKE) V=1 -C $(KERNELDIR) M=$(PWD) modules
clean:
make -C $(KERNELDIR) M=$(PWD) clean
答
你不 '链接' 模块之间的代码。除了包含头文件外,模块只能在主内核或其他模块中调用导出的函数(使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL ..etc)。另外,请确保modeules.dep
中的模块依赖关系正确,否则模块在加载时会发出抱怨。