内核模块开发模板

模块模板

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>


static int __init test_init(void) {
    printk("enter module\n");
} 

static int __exit test_exit(void) {
    printk("exit module\n");
}
 
module_init(test_init);
module_exit(test_exit);
 
MODULE_LICENSE("GPL");

Makefie

ifneq  ($(KERNELRELEASE),)
obj-m:=test_mod.o
else
# KDIR替换成内核代码的路径,如果交叉编译,则为linux源码路径
KDIR := /home/hdy/linux-4.19.77
PWD:=$(shell pwd)
all:                                                                            
	make -C $(KDIR) M=$(PWD) modules
clean:
	rm -rf .*o.cmd *.ko *.mod.* *.o *.order *.symvers .tmp_versions
endif

模块安装与卸载

insmod module_name.ko
rmmod module_name

查看内核打印的log

dmesg
posted @ 2019-10-18 22:21  被罚站的树  阅读(328)  评论(0编辑  收藏  举报