模块模板
#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