20145231 20145205 《信息安全系统设计基础》第四次实验
《信息安全系统设计基础》实验四 内核驱动实验入门—模块方式驱动实验
结对伙伴;20145205 武钰
实验报告封面
实验内容与步骤
1、阅读和理解源代码
进入/arm2410cl/exp/drivers/01_demo,使用vi 编辑器或其他编辑器阅读理解源代码。
2、实验开始前配置环境变量
3、编译驱动模块及测试程序上面介绍了在 Makefile 中有两种编译方法,可以在本机上使用gcc 也可以使用交叉编译器进行编译,这里我们只介绍用交叉编译器进行编译的结果。
4、测试驱动程序如果使用 gcc 编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。
首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载。
根据上述命令输入:
下面使用测试程序来进行测试:./test_demo
直接运行出现请求打开失败的提示,经过多次探索问题解决运行成功
实验过程中遇到的问题及解决过程
1、问题一:在第二次在实验室实验时配置环境出现了问题,实验箱的IP与要求的不符,经过我们将本机和虚拟机的IP改成与实验箱在同一网段(192.168.1.55以及192.168.1.234)发现不能ping通;后来才发现我们进行实验时,可能为了图快在没有完全建立超级终端(本课实验时ARM实验箱)时,就已经打开了虚拟机,这样的话在建立超级终端时可能会进行报错,内容为“超级终端:另一个程序正在使用选定的电话服务设备。请在其他程序执行完后再试一次。”。
解决方法:最终只能换一台pc及实验箱进行实验;其实是我们先前打开的虚机占用了串口,导致串口的分配不清,进行报错,简单的解决办法是,重启一下机器(或者注销),(注意实验室内的机器重启时记得插回之前的网线,不然主控机无法给实验即分配IP地址,我们无法进入XP的实验环境),先进行超级终端的配置,之后打开虚拟机,就可以解决问题了。
2、问题二:交叉编译器进行编译第一次输入命令出现错误(Error 1);
解决方法:参考实验指导书
输入命令后问题解决
3、问题三:在使用测试程序进行测试时,多次出现device open failed提示;
解决方法:建立设备节点,插入插件,还是显示出错,经过百度,查找到了完整的命令,成功得到实验结果。
实验体会
通过此次实验,我明白了实验中理解实验原理及实验目的的重要性,要先对代码进行理解,明确实验目的,否则在实验出现差错时就不知道是哪里出了问题,为什么出现问题,一味盲目按照实验步骤进行却不进行理解思考的话,就失去了实验的意义。同时,实验过程中,实验设备的完好性也是极为重要的,一定要先确保实验设备完好,否则会浪费大量的时间和精力。