#include <linux/module.h> //所有模块都需要的头文件
#include <linux/init.h> // init&exit 相关宏
MODULE_LICENSE("GPL");
static int __init hello_init (void)
{
printk(KERN_INFO "Hello module init\n");
return 0;
}
static void __exit hello_exit (void)
{
printk(KERN_INFO "Hello module exit\n"); }
module_init(hello_init);
module_exit(hello_exit);
Makefile文件编写:
obj-m := hello.o
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 hello.ko
下列命令完成相反的过程,即卸载hello模块。
rmmod hello
这时,你会发现终端里什么输出也没有,不用急,因为printk是内核输出函数,要查看的话,还要执行下列指令。
dmesg | tail
[77363.992680] Hello module init
[77368.918555] Hello module exit