下面是一个最简单的内核模块的例子:
源文件mode.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
int init_module(void) {
printk(KERN_INFO "Hello, this is my first kernel module!\n");
return 0; // 成功返回0
}
void cleanup_module(void) {
printk(KERN_INFO "Goodbye, my kernel module!\n");
return 0; // 成功返回0
}
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("A simple example kernel module.");
MODULE_VERSION("0.01");
Makefile文件
obj-m += mode.o
all:
make -C /lib/modules/`uname -r`/build M=${PWD} modules
clean:
make -C /lib/modules/`uname -r`/build M=${PWD} clean
执行编译
make all
编译需要安装对应的kernel-devel
// 加载模块:sudo insmod mode.ko
// 卸载模块:sudo rmmod mode