第六章、第一个Linux驱动程序:统计单词个数

通过对这一章的学习,我学会了一个完整的Linux驱动:统计单词数的word_count驱动,并学会了如同使用不同的方法来测试Linux驱动,也对Linux的驱动开发过程有了更深刻的了解。

一、编写Linux驱动程序的步骤

1.建立Linux驱动骨架

Module_init处理驱动初始化,module_exit处理驱动退出

2.注册和注销设备文件

 

Misc_register函数创建和misc_deregister移除设备文件

3.指定与驱动相关的信息

4.指定回调函数

5.编写业务逻辑

6.编写makefile文件

7.编译Linux驱动程序

8.安装和卸载Linux驱动

二.Linux驱动:统计单词个数

1.开始前的准备工作

1)建立存放Linux驱动程序的目录

mkdir –p /root/drivers/ch06/word_count

cd /root/drivers/ch06/word_count

2)建立驱动源代码文件

echo ‘’>word_count.c

3)编写makefile文件

Echo obj-m := word_count.o> Makefile  (obj-m表示将Linux驱动作为模块编译,obj-y表示编译进Linux内核)

Linux驱动依赖其它程序则需要这样编写makefile文件

Obj-m:=word_count.o

Word_count-y :=process.o data.o

2.编写Linux驱动程序的骨架(初始化和退出驱动)

Printk函数,Linux程序中出现,该函数用于输出显示日志信息

测试编译Linux驱动源代码

make –C /usr/src/linux-headers-3.0.0-15-generic M=/root/driver/ch06/word_count

安装Linux驱动

insmod word_ount.ko

查看word_count是否安装成功

lsmod | grep word_count

卸载Linux驱动

rmmod word-count

查看Linux驱动输出的日志信息

dmessg |grep word_count | tail n 2 或者cat /var/log/syslog | grep word_count | tail n 2

3.开源协议、GPL协议、LGPL协议、BSD协议、Apachelicence2.0协议、MIT协议

4、注册和注销设备

extern int misc_register(struct miscdevice * misc)

extern int misc_deregister(struct miscdevice * misc)

还需要修改word_count.c文件中的word_count_initword_count_exit这两个函数

设备文件由主设备号和次设备号来标记的。主设备号统一都设置为10,是Linux系统中拥有共同特性的简单字符设备,称为misc设备,当成功注册了设备文件,misc_register函数返回非0的整数,失败返回0.

insmod word_count.ko

rmmod word_count

ls –a /dev

ls –l /dev

posted @ 2016-06-05 17:42  王天亮  阅读(172)  评论(0编辑  收藏  举报