Linux 内核模块编程
简单内核模块的编写
#include <linux/kernel.h> // 在内核模块中共享
#include <linux/module.h> // 一个模块
int init_module() //初始化模块
{
printk(“Hello! This is a testing module! \n”);
return 0;
}
void cleanup_module()
{
printk(“Sorry! The testing module is unloading now! \n”);
}
Makefile文件编写
obj-m += testmodule.o
KDIR =/usr/src/kernels/$(shell uname -r)/
all:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf *.o *.ko *.mod.* *.symvers *.order
内核模块编写
$ sudo insmod hello.ko
$ dmesg ==> u will get the output
$ sudo rmmod hello
$ dmesg
模块描述信息
使用modinfo查看一个模块的模块信息
[luo@localhost testmodule]$ modinfo testmodule.ko
filename: /home/luo/os_exec2/testmodule/testmodule.ko
rhelversion: 7.3
srcversion: 9099367E555C4E8B9DE8D54
depends:
vermagic: 3.10.0-514.10.2.el7.x86_64 SMP mod_unload modversions