一个最简单的驱动代码:
#include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> static int __init vser_init(void) { printk("vser_init "); return 0; } static void __exit vser_exit(void) { printk("vser_exit "); } module_init(vser_init); module_exit(vser_exit); MODULE_LICENSE("GPL");
对应的Makefile为:
obj-m := vser.o #要生成的模块名 modules-objs:= vser.o #生成这个模块名所需要的目标文件 KDIR := /lib/modules/`uname -r`/build PWD := $(shell pwd) default: make -C $(KDIR) M=$(PWD) modules clean: rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions
sudo insmod vser.ko
验证:
sudo rmmod vser 后查看