假设原来编写了两个LKM: 1.c 和 2.c ,各自make insmod/rmmod是没问题的。
但是如果你需要在1.c中调用2.c的函数,那就麻烦了。折腾了一个小时才搞定。
1、首先编写2.h,把你需要的函数 申明在头文件中。删掉2.c中的 module_init 和 module_exit。
2、在1.c中 #include "2.h", 调用函数。
3、编写Makefile,参考如下:
obj-m += 3.o
3-objs := 1.o 2.o
ccflags-y := -std=gnu99 -Wno-declaration-after-statement
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
insmod:
sudo insmod 3.ko
rmmod:
sudo rmmod 3.ko