20135202闫佳歆、20135220谈愈敏-实验4

北京电子科技学院(BESTI)

             

课程:信息安全系统设计基础          班级:   1352

姓名:闫佳歆,谈愈敏

学号:20135202,20135220

成绩:             指导教师:娄嘉鹏     实验日期:2015.11.17

实验密级:         预习程度:             实验时间:15:30-18:00

仪器组次:          必修/选修:必修               实验序号:4

实验名称:内核驱动设计入门-模块方式驱动实验               

实验目的与要求:1)学习在 LINUX 下进行驱动设计的原理

2)掌握使用模块方式进行驱动开发调试的过程                

 

实验仪器:

名称

型号

数量

arm

UP-TECH

1

PC机

XP

1

虚拟机

REDHAT

1

 

 

 

 

实验内容、步骤与体会:

 

  1. 实验过程的理解,实验指导书中知识点的理解。

(1)使用gcc编译和使用交叉编译的区别?

Gcc编译就是只是linux下的编译,之后需要用下面的命令来建立设备节点:

#mknod /dev/demo c 254 0

如果使用交叉编译器的话,不需要建立设备节点。

(2)怎样测试驱动程序?

首先要插入驱动模块demo.o,然后可以用lsmod 命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod 命令来将模块卸载。然后运行测试程序,查看和预期结果是否一致。

 

  1. 实验过程中遇到的问题以及解决方案。

(1)插入驱动模块失败如下:

[root@zxt 01_demo]# ./test_demo

####DEMO device open fail####

这个主要是因为,因为手动编译代码太为繁琐,我们选择了用make的方法,将Makefile稍微修改后就可以使用,但是我们错误的默认了make使用交叉编译,而实际上是用的gcc编译,所以缺少了设备节点的建立,补上这一步骤之后就成功了。

(2)编译失败

经过查看指导书,发现可能是在/usr/src 下没有建立一个linux 连接,可以使用下面的命令,解决了问题。

[root@zxt 01_demo]# cd /usr/src/

[root@zxt src]# ln -sf linux-2.4.20-8 linux

[root@zxt src]# ls

debug linux linux-2.4 linux-2.4.20-8 redhat

对于ln指令:

ln指令的用法是连接,使用格式是ln [options] source dist,这里我们用到的sf参数的含义是:

-f:链接时先将与dist同档名的档案删除

-s:进行软链接。(软链接,又称符号链接,这个文件包含了另一个文件的路径名,特点是可以链接不同文件系统的文件,甚至可以链接不存在的文件。)

posted @ 2015-11-24 00:07  20135202闫佳歆  阅读(318)  评论(1编辑  收藏  举报