2015-02-11 134 views
0

我目前正在嘗試編寫一些內核模塊代碼。 我正在使用現有內核模塊的功能。 的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 

回答

1

你不 '鏈接' 模塊之間的代碼。除了包含頭文件外,模塊只能在主內核或其他模塊中調用導出的函數(使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL ..etc)。另外,請確保modeules.dep中的模塊依賴關係正確,否則模塊在加載時會發出抱怨。