在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。 1, 驱动模块的加载和卸载 如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且同时注册和初始化该网络设备。 如果网络设备(包括wireless)是PCMCIA规范的,则先是...
网络设备驱动相比字符型设备的驱动要复杂一些,除了总体上驱动的框架有一些相似外,有很多地方都是不同,但网络设备驱动有一个很大的特点就是有固定的框架可以遵循,具体的框架会在后边详细的叙述,这里主要分析网络设备驱动的结构,和整个tcp/ip网络结构一样,整个网络设备驱动也是一个分层的结构。具体如下: 1.网络协议接口层 在网络协议接口层,只提供了两个抽象函数dev_queue_xmit()与netif_rx(),之所以称之为抽象函数...
在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。 1, 驱动模块的加载和卸载 如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且同时注册和初始化该网络设备。 如果网络设备(包括wireless)是PCMCIA规范的,则先是...
int register_netdev(struct net_device *dev) void unregister_netdev(struct net_device *dev); struct net_device *alloc_netdev(int sizeof_priv, const char *name, void (*setup)(struct net_device *)); struct net_device *alloc_etherdev(int size_prive){ return alloc_netdev(sizeof_priv, "eth%d", ether_setup); } void free_netdev(struct net_device *dev); ===================================================...
我贴下,我调试USB上网卡的错误信息如下,在2.6.29,mini2440上的错误:在at91rm9200上又出现地址不接受(error -110)。不晓得是不是内核的问题。大伙帮我看看,看是什么问题,内核中需要添加什么配置? usb 1-1.1: new full speed USB device using s3c2410-ohci and address 4 usb 1-1.1: device descriptor read/64, error -62 usb 1-1.1: New USB device found, idVendor=1ab7, idProduct=2000 usb 1-...
linux网络设备驱动程序是linux操作系统网络应用中的一个重要组成部分。分析其运行 机理,对于设计linux网络应用程序是很有帮助的。我们可以在网络驱动程序这一级做一些与应用相关联的特殊事情,例如在设计linux防火墙和网络入侵 检测系统时,可以在网络驱动程序的基础上拦截网络数据包,继而对其进行分析。由于linux是开放源代码的,所以给我们提供了一个分析和改造网络驱动程 序,并使其满足特殊应用的绝好机会。本文对linux内核...
linux网络设备驱动程序是linux操作系统网络应用中的一个重要组成部分。分析其运行机理,对于设计linux网络应用程序是很有帮助的。 我们可以在网络驱动程序这一级做一些与应用相关联的特殊事情,例如在设计linux防火墙和网络 入侵检测 系统时,可以在网络驱动程序的基础上拦截网络 数据包 ,继而对其进行分析。由于linux是开放源代码的,所以给我们提供了一个分析和改造网络驱动程序,并使其满足特殊应用的绝好机会。本文对 linux...
linux网络设备驱动程序是linux操作系统网络应用中的一个重要组成部分。分析其运行机理,对于设计linux网络应用程序是很有帮助的。我们可以在网络驱动程序这一级做一些与应用相关联的特殊事情,例如在设计linux防火墙和网络入侵检测系统时,可以在网络驱动程序的基础上拦截网络数据包,继而对其进行分析。由于linux是开放源代码的,所以给我们提供了一个分析和改造网络驱动程序,并使其满足特殊应用的绝好机会。本文对linux内核中...
linux网络设备驱动程序是linux操作系统网络应用中的一个重要组成部分。分析其运行机理,对于设计linux网络应用程序是很有帮助的。我们可以在网络驱动程序这一级做一些与应用相关联的特殊事情,例如在设计linux防火墙和网络入侵检测系统时,可以在网络驱动程序的基础上拦截网络数据包,继而对其进行分析。由于linux是开放源代码的,所以给我们提供了一个分析和改造网络驱动程序,并使其满足特殊应用的绝好机会。本文对linux内核中...