针对模块的内核Makefile链接

时间:2015-02-11 12:40:22

标签: linux module makefile linker kernel

我目前正在尝试编写一些内核模块代码。 我正在使用现有内核模块的功能。 听众包含在我的.c文件中,但我不知道如何正确地将我的代码与内核模块链接

在普通用户空间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

1 个答案:

答案 0 :(得分:1)

您没有在模块之间“链接”代码。除了包含头文件之外,模块只能调用主内核或其他模块中导出的函数(使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL ..etc)。此外,请确保modeules.dep中的模块依赖关系正确或模块在加载时会抱怨。