Linux网络设备驱动开发实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三:Linux网络设备驱动开发实验

一、实验目的

读懂linux网络设备驱动程序例子,并且实际加载驱动程序,加载进操作系统以后,会随着上层应用程序的触发而执行相应动作,具体执行的动作可以通过代码进行改变。

●读懂源码及makefile

●编译驱动程序

●加载

●多种形式触发动作

二、预备知识

熟悉linux驱动基本原理,能读懂简单的makefile。

三、实验预计时间

80-120分钟左右

四、驱动程序部分具体步骤

要求读懂一个最简单的驱动程序,在驱动程序的诸如“xxx_open”、“xxx_read”等标准接口里面加入打印语句。可参考多模式教学网上的驱动样例。

五、用于触发驱动动作的应用程序及命令

驱动程序就是以静态的标准接口库函数形式存在,网络设备驱动会受到两大类情况的触发,一种是linux里面的控制台里面的命令,另一种是套接口应用程序,首先要搞清都有哪些具体的命令和应用程序流程,应用程序参考多模式教学网的例子。

六、运行测试

提示:需要将驱动程序以dll加载进系统中,并且触发应用程序调用各种文件操作的接口函数,使得驱动有所动作,打印出相关信息。

1.编译驱动:

cd /某某目录/vnetdev/

make clean

make

2.加载驱动与打开网卡:

insmod netdrv.ko

ifconfig vnet0 up

3.运行应用程序

../raw

4.通过命令“修改网卡MTU”触发驱动执行动作:

ifconfig vnet0 mtu 1222

5.显示内核打印:

cat /var/log/messages

6.卸载:

ifconfig vnet0 down

rmmod netdrv.ko

7.修改代码中的某些函数中的打印信息,重新试验上述流程。

至此大家都应该真正理解和掌握了驱动程序-操作系统-应用程序的三者联动机制。

七、实验结果

由图可知能正常加载网卡驱动,并且能够打印调试信息。

实验四:IGMP协议软件(路由器端)开发

一、实验目的

了解IGMPv2协议的原理。并且在linux下开发、编译运行路由器端的部分,通过两台虚拟机实现路由器和主机之间的组播信息收集过程。

●中等规模的路由协议软件开发

●能读懂rfc

二、预备知识

●熟悉linux下编译运行程序的方法。

●C语言熟练度高。

●网络知识娴熟

三、实验预计时间

30小时

四、具体步骤

1.阅读rfc

2.阅读MLD需求分析和概要设计

3.写出igmp需求分析和概要设计

4.编码、编译

5.实际运行、调试

五、实验结果

实验结果如下图所示:

由图可知此程序可正常运行,基本完成实验目的。

相关文档
最新文档