网卡驱动怎么写

1.如何编写网卡的驱动程序

Linux操作系统网络驱动程序编写 一.Linux系统设备驱动程序概述 1.1 Linux设备驱动程序分类 1.2 编写驱动程序的一些基本概念 二.Linux系统网络设备驱动程序 2.1 网络驱动程序的结构 2.2 网络驱动程序的基本方法 2.3 网络驱动程序中用到的数据结构 2.4 常用的系统支持 三.编写Linux网络驱动程序中可能遇到的问题 3.1 中断共享 3.2 硬件发送忙时的处理 3.3 流量控制(flow control) 3.4 调试 四.进一步的阅读 五.杂项 一.Linux系统设备驱动程序概述 1.1 Linux设备驱动程序分类 Linux设备驱动程序在Linux的内核源代码中占有很大的比例,源代码的长度日 益增加,主要是驱动程序的增加。

在Linux内核的不断升级过程中,驱动程序的结构 还是相对稳定。在2.0.xx到2.2.xx的变动里,驱动程序的编写做了一些改变,但是 从2.0.xx的驱动到2.2.xx的移植只需做少量的工作。

Linux系统的设备分为字符设备(char device),块设备(block device)和网络 设备(network device)三种。字符设备是指存取时没有缓存的设备。

块设备的读写 都有缓存来支持,并且块设备必须能够随机存取(random access),字符设备则没有 这个要求。典型的字符设备包括鼠标,键盘,串行口等。

块设备主要包括硬盘软盘 设备,CD-ROM等。一个文件系统要安装进入操作系统必须在块设备上。

网络设备在Linux里做专门的处理。Linux的网络系统主要是基于BSD unix的socket 机制。

在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数据的传递。系 统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。

1.2 编写驱动程序的一些基本概念 无论是什么操作系统的驱动程序,都有一些通用的概念。操作系统提供给驱动 程序的支持也大致相同。

下面简单介绍一下网络设备驱动程序的一些基本要求。 1.2.1 发送和接收 这是一个网络设备最基本的功能。

一块网卡所做的无非就是收发工作。所以驱 动程序里要告诉系统你的发送函数在哪里,系统在有数据要发送时就会调用你的发 送程序。

还有驱动程序由于是直接操纵硬件的,所以网络硬件有数据收到最先能得 到这个数据的也就是驱动程序,它负责把这些原始数据进行必要的处理然后送给系 统。这里,操作系统必须要提供两个机制,一个是找到驱动程序的发送函数,一个 是驱动程序把收到的数据送给系统。

1.2.2 中断 中断在现代计算机结构中有重要的地位。操作系统必须提供驱动程序响应中断 的能力。

一般是把一个中断处理程序注册到系统中去。操作系统在硬件中断发生后 调用驱动程序的处理程序。

Linux支持中断的共享,即多个设备共享一个中断。 1.2.3 时钟 在实现驱动程序时,很多地方会用到时钟。

如某些协议里的超时处理,没有中 断机制的硬件的轮询等。操作系统应为驱动程序提供定时机制。

一般是在预定的时 间过了以后回调注册的时钟函数。在网络驱动程序中,如果硬件没有中断功能,定 时器可以提供轮询(poll)方式对硬件进行存取。

或者是实现某些协议时需要的超时 重传等。 二.Linux系统网络设备驱动程序 2.1 网络驱动程序的结构 所有的Linux网络驱动程序遵循通用的接口。

设计时采用的是面向对象的方法。 一个设备就是一个对象(device 结构),它内部有自己的数据和方法。

每一个设备的 方法被调用时的第一个参数都是这个设备对象本身。这样这个方法就可以存取自身 的数据(类似面向对象程序设计时的this引用)。

一个网络设备最基本的方法有初始化、发送和接收。 ------------------- --------------------- |deliver packets | |receive packets queue| |(dev_queue_xmit()) | |them(netif_rx()) | ------------------- --------------------- | | / / | | ------------------------------------------------------- | methods and variables(initialize,open,close,hard_xmit,| | interrupt handler,config,resources,status。

) | ------------------------------------------------------- | | / / | | ----------------- ---------------------- |send to hardware | |receivce from hardware| ----------------- ---------------------- | | / / | | ----------------------------------------------------- | hardware media | ----------------------------------------------------- 初始化程序完成硬件的初始化、device中变量的初始化和系统资源的申请。发送 程序是在驱动程序的上层协议层有数据要发送时自动调用的。

一般驱动程序中不对发 送数据进行缓存,而是直接使用硬件的发送功能把数据发送出去。接收数据一般是通 过硬件中断来通知的。

在中断处理程序里,把硬件帧信息填入一个skbuff结构中,然 ------------------ Linux操作系统网络驱动程序编写 ------------------- ------------ Contact the author by mailto:bordi@bordi.dhs.org ------ 后调用netif_rx()传递给上层处理。 2.2 网络驱动程序的基本方法 网络设备做为一个对象,提供一些方法供系统访问。

正是这些有统一接口的方法, 掩蔽了硬件的具体细节,让系统对各种网络设备的访问都采用统一的形式,做到硬件 无关性。 下面解释最基本的方法。

2.2.1 初始化(initialize) 驱动程序必须有一个初始化方法。在把驱动程序载入系统的时候会调用这个初 始化程序。

它做以下几方面的工作。检测设备。

在初始化程序里你可以根据硬件的 特征检查硬件是否存在,。

2.网卡驱动,声卡驱动,显卡驱动,内存,主板

驱动 driver

网卡 network adapter (network 网络 ,adapter 适配器、板卡)NIC

(Network Interface Card 网络适配器 网络接口卡 , Interface 接口 )

主板 mother board 、main board

内存 memory

显卡 display card 、video card (display显示,video视频、显示 card 卡)

声卡 sound card 、audio card(sound 声音,audio音频)

网卡驱动怎么写

转载请注明出处育才学习网 » 网卡驱动怎么写

知识

留学生简历怎么写

阅读(201)

本文主要为您介绍留学生简历怎么写,内容包括留学生简历怎么写,留学生简历怎么写,留学生回国找工作怎样写简历。写工作简历的方法:1.全面的个人基本信息。 虽是简历要求简洁易看,但在个人基本信息方面不要省略,比如:姓名、性别、出生年月、学历

知识

灯具设计说明怎么写

阅读(170)

本文主要为您介绍灯具设计说明怎么写,内容包括灯具设计的设计说明怎么写急,灯的设计说明,灯具设计的设计说明怎么写急。你要明白为啥要写这个说明书,写灯具设计说明书分很多情况,有为了一个大型的工程写给甲方看的,也有为一个激情滂湃的灵感而

知识

服装工作计划怎么写啊

阅读(206)

本文主要为您介绍服装工作计划怎么写啊,内容包括卖服装的工作计划怎么写,服装行业的工作总结与计划怎么写,服装工作计划怎样写。作为一名服装店店员,我深感到顾客的帮衬是多少的重要,多年以来的闯荡,让我明白,学习是一件多少重要的事情,只有你学

知识

偶尔德尔怎么写

阅读(206)

本文主要为您介绍偶尔德尔怎么写,内容包括偶尔的尔怎么写,偶尔的偶怎么写,用偶尔开头.仿写两段。枝繁叶茂的背后 在我们的日常生活中,时常可以听到一些人这样议论那些取得了成绩的人:“这纯属偶然。”他们将他成功的原因过多归功于偶然得到的

知识

侄子的侄怎么写

阅读(194)

本文主要为您介绍侄子的侄怎么写,内容包括自己侄子的侄子怎么称呼他称呼我呢,侄子的侄能组什么词,作为侄子的祭文怎么写求一些经典语句。侄 拼音: zhí 笔划: 8 部首: 亻 五笔输入法: wgcf 弟兄的儿子,同辈男性亲友的儿子:侄儿。侄女。叔侄。子侄

知识

扣字的拼音怎么写

阅读(201)

本文主要为您介绍扣字的拼音怎么写,内容包括扣字的正确拼音是怎么拼,扣字的拼音怎么打,扣字的正确拼音是怎么拼。拼音:shuō,shuì,yuè部首:讠,四角码:38712,仓颉:ivcru86五笔:yukq,98五笔:yukq,郑码:SUJR统一

知识

披头散发的拼音怎么写

阅读(247)

本文主要为您介绍披头散发的拼音怎么写,内容包括披头散发的发字的拼音,披头散发的发字的拼音,披头散发的读音。天女散花 [ tiān nǚ sàn huā ] 生词本基本释义 详细释义[ tiān nǚ sàn huā ]原为佛教故事:天女散花以

知识

端的笔顺怎么写

阅读(194)

本文主要为您介绍端的笔顺怎么写,内容包括端的笔画顺序怎么写的,端正的端字的笔顺怎么写,端的笔画顺序怎么写的。上字的笔画顺序如下图:

知识

幼师工作描述怎么写

阅读(233)

本文主要为您介绍幼师工作描述怎么写,内容包括如何写幼师的工作描述,如何写幼师的工作描述,幼儿教师简历中的工作描述怎么写。幼儿教师的工作职责:严格遵守幼儿园各项规章制度和师德规范。2、全面负责本班教育和保育工作,深刻领会《纲要》精

知识

烫伤怎么写主诉

阅读(630)

本文主要为您介绍烫伤怎么写主诉,内容包括左面部烫伤的门诊病历怎么写,烫伤病人的护理查房怎么写,烧伤科护理记录怎么写。患者,男,23岁,于2002年2月22日下午4时在工作中不慎被汽油烧伤,伤后即来我院,诊断为xx,在急诊手术室行xx术后,于18:00由

知识

申论大作文题目怎么写

阅读(209)

本文主要为您介绍申论大作文题目怎么写,内容包括申论大作文怎么写,有关申论大作文标题的格式~1、拟的题目比较长,差不多17、8个字,,有关申论大作文标题的格式~。申论大作文的【评分标准】 一类文:33~40分;阐述相应的写作思路,立意准确,观点鲜明

知识

7月16日英语怎么写

阅读(418)

本文主要为您介绍7月16日英语怎么写,内容包括7月16用英语怎样说,请问2007年7月16日的英文怎么写啊,7月16日用英语说。今天的写法:Monday Aug.18th 2008 sunny 星期和日期写在左上角,天气写在右上角 日期格式用月日年(美式)或日月年

知识

瘦小的英文单词怎么写

阅读(371)

本文主要为您介绍瘦小的英文单词怎么写,内容包括瘦小用英语怎么说,瘦的英语单词怎么写,瘦小用英语怎么说。瘦的英文:thin、lean、emaciatedthin 读音:英 [θɪn] 美 [θɪn] adj. 薄的;瘦的;稀的例句:His

知识

丹麦人英语怎么写

阅读(169)

本文主要为您介绍丹麦人英语怎么写,内容包括丹麦人英语怎么说,丹麦人用英语怎么说,丹麦人用英语怎么说。丹麦英语:Denmark读音:英 [denma:k] n. 丹麦(欧洲国家)例句:I think they should be care

知识

无线网卡驱动怎样安装到U盘上啊

阅读(289)

操作步骤如下:1.打开电脑,把u盘插入电脑;2.将驱动程序复制保存至电脑里面;3.双击驱动程序,点击进行安装;4.待安装条加载至百分百,根据提示即可安装完成;5.打开无线网卡硬件的驱动安装提示界面,安装完成无线即可使用;6.待无线网卡可正确驱动后,右键

知识

万能网卡驱动怎么用

阅读(157)

本文主要为您介绍万能网卡驱动怎么用,内容包括万能网卡驱动的使用方法是什么呢,万能网卡驱动怎么用我的电脑的网卡驱动没有安装.我就从网上找了一,万能网卡驱动怎么用。安装网卡驱动 检查网络线路连接和网卡是否良好。 2、安装网卡驱动。右

知识

win8系统网卡驱动异常怎么办

阅读(265)

win8系统网卡驱动异常可以选择重装网卡驱动。由于杀毒、非正常关机等原因,可能造成网卡驱动程序的损坏。如果网卡驱动程序损坏,网卡不能正常工作,网络也ping不通,但网卡指示灯发光。这时可通过“控制面板”中“系统”的“设备管理器器”选项

知识

创维电视怎么安装无线网卡驱动

阅读(315)

将USB无线网卡插入电视机的USB接口上(注意需要电视机指定型号的无线网卡才能支持,因为电视机不支持安装驱动程序,就算网卡自带驱动也是无法安装到电视上,导致无法识别)。启动电视机,按遥控器的菜单键,找到系统设置,按确认键进入。进入系统设置

知识

为什么我的电脑重启后网卡驱动就没有了

阅读(766)

网卡驱动丢失,一般来说是程序发生冲突,卸掉最近安装的软件即可,没网卡驱动是不能上网的。驱动程序全称为设备驱动程序,是一种可以使计算机中央处理器CPU控制和使用设备的特殊程序,相当于硬件的接口,操作系统通过这个接口,控制硬件设备的工作,所

知识

如何查找网卡驱动

阅读(148)

方法一:1.右键选择我的电脑,选择管理;2.进入到管理的界面,选择设备管理器;3.选择设备管理器下的网络适配器,查看计算机网络设备;4.可以看到有线网卡、无线网卡,右键属性;6.点击网卡属性的详细信息即可;方法二:1.选择右下角小电脑图标,本地连接,双击弹

知识

802.11nnic无线网卡驱动怎么驱动不了

阅读(599)

可能原因为驱动出现问题,重新安装即可解决,以下为详细步骤:1.搜索该无线网卡驱动,选择下载地址,点击即可下载;2.下载完成后,桌面会出现无线网卡驱动的图标,在弹出的新界面中点击安装驱动程序;3.在语音界面选择简体中文,点击下一步;4.点击安装按钮,等

知识

如何删除系统里的无线网卡驱动

阅读(130)

卸载无线网卡驱动的方法:1.双击打开计算机图标,这个时候会弹出电脑的资源管理器界面。2.在界面上方的任务栏中找到“卸载或更改程序”并点击。3.弹出程序和功能的界面,找到需要卸载的无线网卡驱动程序,有RealtekEthernetController字样的便

[/e:loop]