hello.c 程序:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/printk.h>
static int __init hello_init(void)
{
pr_info("Hello, world\n");
return 0;
}
static void __exit hello_exit(void)
{
pr_info("Goodbye, world\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
Makefile:
```makefile
obj-m += hello.o
PWD := $(CURDIR)
all:
make -C /home/uklar/WSL2-Linux-Kernel M=$(PWD) modules
clean:
make -C /home/uklar/WSL2-Linux-Kernel M=$(PWD) clean
注意:这里要使用自己下载的内核源码的路径。
编译:
make 此时我们会得到 hello.ko
使用 sudo insmod hello.ko 测试是否可以加载模块,在 dmesg 命令的输出中我们可以看到:
[11114.649475] Hello, world 说明此时内核模块已经成功加载了。