***********《朱有鹏老师嵌入式linux核心课程》 *********** 《5.linux驱动开发-第11部分-5.11.网络设备驱动介绍》 -------------------------------------------------------- 本课程由朱老师物联网大讲堂推出并提供技术支持 -------------------------------------------------------- 第一部分、章节目录 5.11.1.网络设备驱动概述 5.11.2.虚拟网卡驱动分析1 5.11.3.虚拟网卡驱动分析2 5.11.4.DM9000驱动源码分析1 5.11.5.DM9000驱动源码分析2 第二部分、章节介绍 5.11.1.网络设备驱动概述 本节对网络设备驱动做个概要描述,主要是讲了这种驱动模型和字符设备块设备的区别,最后讲了下本部分的学习方法。 5.11.2.虚拟网卡驱动分析1 本节来分析一个简化编写的虚拟网卡的驱动源码,主要目的是对网络设备驱动的框架进行理解和分析。 5.11.3.虚拟网卡驱动分析2 本节来分析一个简化编写的虚拟网卡的驱动源码,主要目的是对网络设备驱动的框架进行理解和分析。 5.11.4.DM9000驱动源码分析1 本节来分析DM9000这个真实硬件网卡的驱动源码,并没有详细分析硬件操作,主要是验证网络设备驱动框架,并且将之前课程中学到的一些技巧运用进来。 5.11.5.DM9000驱动源码分析2 本节来分析DM9000这个真实硬件网卡的驱动源码,并没有详细分析硬件操作,主要是验证网络设备驱动框架,并且将之前课程中学到的一些技巧运用进来。 第三部分、随堂记录 5.11.1.网络设备驱动概述 5.11.1.1、什么是网络设备 (1)网络设备 (2)物理网卡: 真正的硬件网卡设备 5.11.1.2、网络设备接口 (1)/dev下没有设备文件,也不通过/sys下的属性文件访问。直观看来,应用层都是通过一些特殊的命令(如ifconfig、ping等)来访问网卡硬件(调用驱动)的。本质上应用调用驱动的方法可以通过分析ping、ifconfig等命令的实现来得知。实际就是通过:socket、bind、listen、connect、send、recv等API来实现的。 (2)网络设备被抽象成一个能够发送和接收数据包的“网络接口” (3)struct net_device来管理所有网络接口 5.11.1.3、学习方法 (1)注意网络设备的访问方法和前两种不同 (2)2个数据结构(net_device和sk_buff) (3)一个虚拟网卡案例代码分析 + DM9000驱动源码分析 5.11.2.虚拟网卡驱动分析1 5.11.2.1、虚拟网卡安装、卸载、打开、关闭、设置IP地址等实践 5.11.2.2、代码分析 5.11.3.虚拟网卡驱动分析2 5.11.4.DM9000驱动源码分析1 5.11.5.DM9000驱动源码分析2