Linux字符驱动HelloWorld
2023-06-07
35
0
一个简单的驱动代码示例 :
#include<linux/init.h> // 模块出入口宏的声名头文件
#include<linux/module.h> //模块声名信息宏所需要的头文件
MOULE_LICENSE("GPL"); //声名驱动遵循GPL协议
MOULE_ARUTHOR("www.pnpon.com"); // 驱动作者
MODULE_DESCRIPTOTR("hello pnpon.com"); // 驱动描述
//入口函数
static int hello_init(void)
{
printf(KERN_INFO,"hello pnpon.com\n");
return 0;
}
//出口函数
static void hell_exit(void)
{
printf(KERN_INFO,"pnpon.com\n")
}
module_init(hello_init); //模块入口
module_exit(hello_exit); //模块退出
makefile文件如下:
#编译中间文件为.o文件
obj-m += hello_module.o
#指定linux kernel源码的目标变量
KDIR := ~/src/kenel/tc4_kenel_3.8
#当前目录
PWD ?=$( shell pwd)
#make -C 就是指调用执行的路径
#modules 示示将驱动编译成模块,最终生成.ko文件
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -rf *.o *.mod.* *.order *.symvers
使用如下命令来安装驱动:
insmod hello_module.ko
执行完成上面的命令后,控制台输出:
hello pnpon.com
然后我们可以使用如下命令卸载驱动:
rmmod hello_module
控制台输出:
bye bye pnpon.com