/ *源代码文件称为:xxx.c * /
#包括 < LINUX / module.h中>
#包括 < LINUX / kernel.h当>
#包括 < LINUX / init.h里>
#包括 < LINUX / fs.h文件>
#包括 < LINUX / uaccess.h中>
static int __init shanwuyan_init(void) //驱动入口函数
{
printk(KERN_EMERG “ shanwuyan_init \ r \ n ”);
返回 0 ;
}
static void __exit shanwuyan_exit(void) //驱动出口函数
{
printk(KERN_EMERG “ shanwuyan_exit \ r \ n ”);
}
module_init(shanwuyan_init); //注册入口函数
module_exit(shanwuyan_exit); //注册出口函数
MODULE_LICENSE(“ GPL ”); //同意GPL开源协议
MODULE_AUTHOR(“ shanwuyan ”); //添加作者名称
Makefile
#!/bin/bash
obj-m += shanwuyan.o
KDIR := /home/topeet/Android/itop4412_kernel_4_14_2_bsp/linux-4.14.2_iTop-4412_scp #这里要对应你的Linux内核目录
PWD ?= $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
make -C $(KDIR) M=$(PWD) clean
应用:
编译,并加载生成的“shanwuyan.ko”文件,加载驱动和卸载驱动的命令如下。
1 insmod shanwuyan.ko #加载驱动
2 rmmod shanwuyan.ko #卸载驱动,如果该命令不起作用,请用下方的命令
3 rmmod shanwuyan #卸载驱动
进入到驱动文件所在的路径下,并在命令行输入加载驱动的命令“insmod shanwuyan.ko”,可以看到驱动入口函数打印出来的字符串信息“shanwuyan_init”。