- 打开终端
- 输入:mkdir moduleTest,创建一个放置文件的文件夹
- 进入文件夹,cd moduleTest
- 创建文件:nano hello.c,文件内容如下:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void){
printk(KERN_ALERT"Hello, xiaoming\n");
return 0;
}
static void hello_exit(void){
printk(KERN_ALERT"Goodbye, xiaoming\n");
}
module_init(hello_init);
module_exit(hello_exit);
- 创建Makefile文件:nano Makefile,代码如下:
obj-m := hello.o
KERNELBUILD :=/usr/src/linux-headers-3.11.0-12-generic
default:
make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
rm -rf *.o *.ko *.mod.c .*.cmd .tmp_versions *.order *.symvers
里面的路径因Linux版本而异,可以自己去对应路径查看一下
编译,输入 make,编译过程:
插入模块:sudo insmod hello.ko
删除模块:sudo rmmod hello.ko
查看结果:dmesg | grep “xiaoming”
dmesg查看系统内核模块信息