一、编写驱动
- 实现init和exit两个函数
/** mydriver.c **/
#include <linux/init.h>
#include <linux/module.h>
static int mydriver_init(void)
{
printk("init my driver!");
return 0;
}
static void mydriver_exit(void)
{
printk("exit my driver!");
}
module_init(mydriver_init);
module_exit(mydriver_exit);
MODULE_LICENSE("GPL");
二、编译使用
- 编写Makefile
obj-m += mydriver.o
KERNELDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
make -C $(KERNELDIR) M=$(PWD) modules
- 编译
# 编译
make
# 查看生成 mydriver.ko
ls
- 使用
# 切换root
su root
# 安装
insmod mydriver.ko
# 卸载
rmmod mydriver
# 查看模块
lsmod
# 查看打印
dmesg | tail -10