如下測(cè)試模塊
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
static int __init hello_init (void)
{
printk("Hello module init\n");
return 0;
}
static void __exit hello_exit (void)
{
printk("Hello module exit\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile文件如下
obj-m := hellomodule.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm *.o *.ko *.mod.c Modules.symvers modules.order -f
KDIR時(shí)編譯內(nèi)核模塊需要的Makefile的路徑。
make -C $(DIR) M=$(shell pwd) modules 編譯內(nèi)核模塊。-C 將工作目錄轉(zhuǎn)到KDIR,調(diào)用該目錄下的Makefile,并向這個(gè)Makefile傳遞參數(shù)M的值是$(shell pwd) modules。之后,sudo make 編譯模塊
然后,sudo insmode ./hellomodule.ko 加載模塊
sudo rmmod ./hellomodule.ko 刪除模塊
用dmesg | tail 可以看到輸出信息。
或者看日志文件/var/log/kern.log