示例代码
hello_dev.c
#include <linux/init.h>
#include <linux/module.h>
static char* para1 = "para1";
static int para2 = 111;
static int __init hello_init(void) {
printk("[file:%s,function:%s,line:%d]\n", __FILE__, __FUNCTION__, __LINE__);
printk("para1:%s, para2:%d\n", para1, para2);
return(0);
}
static void __exit hello_exit(void) {
printk("[file:%s,function:%s,line:%d]\n", __FILE__, __FUNCTION__, __LINE__);
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("lxz");
module_param(para1, charp, 0644); // 内核模块参数para1,类型charp(字符指针),权限644
module_param(para2, int, 0644);
Makefile
PWD = $(shell pwd)
KERNEL_VERSION = $(shell uname -r)
KERNEL_PATH = /lib/modules/$(KERNEL_VERSION)/build
obj-m = hello_dev.o
all:
make -C $(KERNEL_PATH) M=$(PWD) modules
clean:
make -C $(KERNEL_PATH) M=$(PWD) clean
效果