信息安全系统设计基础实验四报告
搭档博客http://wwwcnblogs.com/20135228guoyao/4964477.html
实验四 外设驱动程序设计
一、实验步骤
1. 按照实验一配置环境。
2. 进入/01_demo,使用vi编辑器阅读理解源代码。
3. 编译驱动模块及测试程序。
- 在 Makefile 中有两种编译方法,可以在本机上使用gcc 也可以使用交叉编译器进行编译,
- 使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。
首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载。
4.测试驱动。
- 驱动模块成功插入后,在/dev下面建立一个demo的审文件,使用cat来直接调用read函数,测试读过程。
-
如果模块没有成功插入的话,会出现下面的情况:
[root@zxt 01_demo]# ./test_demo #### DEMO device open fail ####
-
在驱动模块成功插入后,会在/dev 下面建立一个叫做demo 的设备文件,我们也可以使用cat 命令 来直接调用read 函数,来测试读过程。
[root@zxt demo]# cat /dev/demo/0 device open success!
成功后的结果如下图。
二、遇到的问题
1. 用交叉编译时,make不出来。
- /usr/src下没有建立 linux连接,所以使用命令。
- makefile里的编写文件,与实验指导书里的不一样,通过进入makefile文件,修改了路径,才编译通过,如下图:
三、实验四知识点摘要
-
在 Makefile 中有两种编译方法,可以在本机上使用gcc。也可以使用交叉编译器进行编译比较简单,但是gcc的编译方法还有后续操作。如果使用 gcc 编译的话,在测试驱动程序时需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。
#mknod /dev/demo c 254 0
-
当make出现问题时,可尝试打开makefile文件查看编译程序的所在路径是否正确,是否能够成功链接,若不能,则应该加以修改。
四、实验体会
这次实验我们尝试了很多遍。一开始配置环境时一帆风顺让我们小小的得意了一下。但是后面当我们好不容易可以编译驱动又怎么也make不出来。在多方研究下,我们发现makefile有问题,与实验书中不同。于是我们俩人配合,将makefile用按照实验书中一个个修改了路径。才使得编译成功。之后,我们用gcc测试,又发现没有建立节点。建立好节点之后,insmod一下才终于可以运行。这一次实验,出现问题以后,我们没有互相埋怨,而是不断努力寻找问题原因,询问同学。在改makefile时也体现了团队合作的默契度。最终成功完成了实验四的内容。