基于Linux操作系统的网卡驱动程序及其安装

基于Linux操作系统的网卡驱动程序及其安装


2024年5月16日发(作者:)

维普资讯

第18卷第3期 北华航天工业学院学报 

Vo1.18 No.3 

2008年6月 

Journal of North China Institute of Aerospace E 

Jun.2008 

基于Linux操作系统的网卡驱动程序及其安装 

刘金梅 周 彤 李紫薇2 刘立军 

(1.北华航天工业学院电子工程系,河北廊坊065000;2.唐山建龙实业有限公司,河北唐山064200; 

3.廊坊开发区昂瑞自动化工程有限公司,河北廊坊065000) 

摘要:本文介绍了Linux操作系统中网络设备和驱动程序的工作原理,针对不同的网卡提出了配置TCP/IP网 

络参数的方法,并重点对于网卡安装过程中出现的一些问题进行了分析,提出了相应的解决办法。 

关键词:Linux;网卡;驱动程序 

中图分类号:TP393 文献标识码:A 文章编号:1673—7938(2008)03—0019—04 

随着Linux的迅速普及和发展,越来越多的企 

来表示。通常Linux内核启动时,通过网络设备驱 

业和个人开始使用Linux系统,而Linux以其系统 

动程序,注册系统中可用的网络设备。设备用标准 

强大的功能、对多用户的支持和运行稳健的特性越 

的、支持网络的机制把收到的数据包转发到相应的 

来越多的应用在网络方面,很适合为Web Server或 

网络层。所有被发送和接收的包都用数据结构sk— 

网络数据库管理系统等服务提供操作系统平台H 。 

buff来表示。这个数据结构有很好的灵活性,在这 

但网卡驱动程序的加载与配置比较特殊,Linux的 

个数据结构中可以增加或删除网络协议数据包的头 

支持函数少,只能依赖内核中的函数,许多操作需要 

部。数据就是通过这个特定的数据结构在系统和驱 

自己编写,而且调试也非常不方便,因此在Linux下 

动程序之间传递的。 

进行网卡的加载和配置的设计就显得十分重要。 

其次,在Linux下,网络子系统被设计成与协议 

1 Lir ̄x系统网络设备 

完全无关,这就使上层协议对驱动程序变得透明起 

在Linux系统中有3种类型的设备:字符设备、 

来,而实际的物理传输则可以对协议隐藏起来。网 

块设备和网络设备 。其中前两种设备的驱动都是 

络驱动程序和内核之间的交互一次处理一个数据 

以文件形式存在于/dev目录下,可以在用户进程中 

包。 

对其进行读写操作。而网络设备驱动提供的网络界 

2 Linux中网卡驱动的工作原理 

面并未存在于文件系统之中。在使用网络设备时, 

般来说,Linux核心已经实现了OSI参考模 

用户进程不再是以文件读写的方式对设备进行操 

型的网络层及更上层部分。网络层的实现依赖于数 

作,而是通过针对特定协议的界面与操作系统的网 

据链路层的有效工作 ]。网卡的驱动程序就是数据 

络协议软件进行通信。 

链路层与物理层的接口。通过调用驱动程序的发送 

首先,网络设备在Linux下有其不同于其它设 

备的处理方式b J。Linux对所有的网络设备进行了 

例程向物理端口发送数据,调用驱动程序的接收例 

抽象并定义了一个统一的概念,称之为接口(inter— 

程从物理端口接收数据。 

face)。所有对网络硬件的访问都是通过接口进行 

2.1网卡驱动程序 

的,接口对所有类型的硬件提供了一个一致化的操 

驱动程序提供了面向操作系统核心的接口和面 

作集合来处理基本数据的发送和接收。任意一个网 

向物理层的接口,其中操作系统接口是一些用于发 

络接口均可以看作一个发送和接收数据包的实体。 

现网卡、检测网卡参数以及发送接收数据的例程。 

对于每个网络接口,都用一个net—device数据结构 

当驱动程序开始运作时,操作系统首先调用检测例 

程以发现系统中安装的网卡。如果该网卡支持即插 

收稿日期:2008~03—28 

即用,那么检测例程应该可以自动发现网卡的各种 

作者简介:刘金梅(1977一),女,助教,硕士,河北秦皇岛人,从 

参数;否则就要在驱动程序运作前,设置好网卡的参 

事嵌入式系统研究与开发。 

数供驱动程序使用。当核心要发送数据时,它调用 

19— 

维普资讯

2008年6月 北华航天工业学院学报 第18卷 

驱动程序的发送例程。发送例程将数据写入正确的 

卡厂商的产品_5'6 能在安装Linux时由安装系统识 

空间,然后激活物理发送过程。 

别后自动创建/ete/eonf.modules系统可加载模组配 

驱动程序面向物理层的接口是中断处理例程。 

置文件(作用类似DOS中的CONFIG.SYS)外,一 

当网卡接收到数据、发送过程结束,或者发现错误 

般的网卡则需Linux系统安装完毕重新启动后再用 

时,网卡产生一个中断,然后核心调用该中断的处理 

vi创建或修改/ete/eonf.modules文件。在此特推荐 

例程。中断处理例程判断中断发生的原因,并进行 

含有RTL8139芯片的网卡,由于该芯片生产商Re. 

响应的处理。比如当网卡接收到数据而发生中断 

ahek公司已投资Linux系统开发,所以Linux系统 

时,中断处理例程调用接收例程进行接收。 

中含有RTL8139芯片的通用驱动程序(其可加载模 

2.2驱动程序工作参数 

组文件为/lib/modules/net/retl8139.O,源程序文件为 

驱动程序的工作参数因网卡性质的不同而不 

/usr/sre/linux/drivers/net/rtl8 1 39.e),用户只需在/ 

同,大致包括I/O端口号、中断号、DMA通道、共享 etc/e0nf.modules文件中添加如下行: 

存储区等。输入输出端口号又被称为输入输出基地 

Alias eth0 rt18139,然后重新启动系统即可使 

址,当网卡工作于端口输入输出模式时被使用。端 

Linux主机具备网络功能。 

口输入输出模式需要CPU的全程干预,但所需硬件 

如果是采用其他芯片的网卡,则需查:看其附带 

及存储空间要求较低。CPU通过端口号指定的空 

的驱动盘中是否含有该网卡的驱动程序的源代码和 

间与网卡交换数据。中断号是网卡的中断序号,只 Makefile文件或提供其驱动程序源代码和Makefile 

要不与其它设备冲突即可。当网卡使用DMA方式 

文件的网址并下载其驱动程序源代码和M akefile文 

时,它要使用DMA通道批量传输数据而不需要 

件,用make程序生成可加载模组文件(扩展名为 

CPU的干预。 

O”),将该文件拷贝到目录“/lib/modules/./net”中并 

对于一块具体的网卡,如果网卡支持完全自动 

按上段所述步骤操作即可。 

检测,那么一个参数也不用指定,驱动程序的检测例 

3配置kinux主机的_r℃P/IP网络参数 

程会自动设定所需参数。一般情况,只需要人工设 

对不同厂商等发行的Linux系统通用的配置 

定这些参数的一部分。如果网卡使用端口输入输出 TCP/IP网络参数的方法是直接创建或编辑其相应 

模式,就要设定端口号和中断号。如果网卡使用的 

的系统配置文件。用户需要创建或修改以下文件: 

是DMA模式,则设定DMA通道和中断号。 

(1)/ete/syse0nfjg/netw0rk—seripts/ifc,fg—eth0 

2.3驱动程序的使用方式 

文件该文件定义了Linux主机的第一块Ethernet卡 

当有了网卡的驱动程序后,把驱动程序加入到 

eth0的网络接口,如果Linux主机有第二 、第三块 

Linux核心之中时,Linux系统一个引人入胜的长处 Ethernet卡则相应的文件是ifcfg—ethl、ifcfg— 

就是可以定制系统的核心。把需要频繁调用的功能 

eth2。特别地对于TurboLinux也可用turbonetcfg 

加入系统核心,可以大大提高系统的效率。在这种 

网络配置实用程序设置网络参数。 

情况下系统启动时,系统核心自动加载网卡的驱动 

般需要在相应的目录中创建如下的类似文 

程序。驱动程序的参数可以通过LILO命令参数加 

件: 

以指定。系统启动后驱动程序永久驻留核心,不能 

S I eat/ete/ yse0n6g/netw0rk—scripts/ifcfg—eth0 

用常规的方法将其卸载。 

DEVICE=eth0 

如果把驱动程序编译成可装载模块,就可以用 

IPADDR=172.61.12.142 

系统提供的命令在系统启动后随时加载。随时加载 

NETMASK=255.255.255.0 

的好处是减少内存开销,易于管理,但同时也牺牲了 

NETWORK=172.61.12.0 

点网络传输的效率。驱动程序的参数是在命令行 

BROADCAST:172.61.12.255 

中直接输入或通过配置文件指定。 

ONBOOT=yes 

要载入网卡,需要了解网卡的类型和芯片型号。 

BOOTPROT0=none 

由于硬件厂商通常不会提供网卡的Linux驱动程 

(2)/etc/HOSTNAME文件 

序,所以需要为网卡选择正确的驱动程序。Ether. 该文件用于定义主机FQDN名(Fullv Qualiifed 

net网卡驱动程序的加载除了3Com、Intel等驰名网 

Domain Name) 

20— 

维普资讯

第3期 刘金梅等:基于Linux操作系统的网卡驱动程序及其安装 2008年6月 

(3)/etc/ ysc0nfig/netw0rk文件 

6.16.21—0.25一o ̄/x86—64/smp’ 

make『2]:***没有规则可以创建目标“mod— 

ules”。停止。 

make[2]:Leaving directory‘/usr/src/li:nux一2. 

6.16.21—0.25一obj/x86—64/smp’ 

该文件用于定义主机名、域名、网关及网关设备 

等。 

(4)/etc/resolv.conf文件 

该文件用于定义域名、域搜索顺序与名字服务 

器。 

make[1]:***[modules]错误2 

make[1]:Leaving directory‘/home/usler/r1000/ 

(5)/etc/hosts文件 

该文件定义了网络中的主机名与IP地址之间 

src’ 

的关系,Linux系统将会按照/etc/hosts文件中的定 

make:***[modules]错误2 

义,自动把主机名转换成IP地址。 

经过对[modules]错误2含义的研究,了解到在 

4安装Linux网络驱动程序及问题 

Linux操作系统下安装驱动程序,本质上就是将驱 

目前新版的Linux预设可以支持的网络卡芯片 

动程序的源代码写入Linux内核。所以系统中必须 

组已经很完备了,很多网络卡芯片都已经被支持,例 

安装用于内核开发的软件包组:在redhat/fedora 

如RLT8139芯片(RealTek 8139)的网络卡,所以使 

linux中是kernel一2.x.x、kernel—devel一2.X.X等; 

用者可以很轻易的设定好他们的网卡。不过,如果 

suse/noveH里是kernel—default、kernel—source、ker- 

核心没有支持该网络卡的话,那么只能通过重新编 

nel—syms,根据生产商不同名称略有区别 一般情 

译核心或者编译网络卡驱动模块(Modules),并且加 

况下,这些包组不包括在系统的默认安装中,需要自 

载该模块。当然在安装网卡的过程中可能遇到了很 

定义安装。遇到[modules]错误2,就是没有安装内 

多问题,本文针对这些问题提出了相应的解决办法。 

核开发包。另外,编译工具gca也是必需的,不过在 

由于市面上很多的各种各样的板卡,有名牌有 

主流的Linux中是默认安装的。 

杂牌,多不胜数。当拿到一块卡,在找finux的driv— 

但有些问题不会随着开发包的安装就此结束, 

er之前一定搞清楚这个网卡用的什么芯片,比如 

重新make的时候错误再次出现,驱动程序指向的 

3c509,ne2000,ether—express等等。这样的型号一 

个快捷方式找不到链接的文件夹。按照快捷方式 

般都在网卡的芯片上标注_7]。如果芯片型号相同, 

的地址搜索过去,发现是文件夹的名字不一致。修 

那么它们其中一些是可以通用的。可以尝试一下系 

复后,编译可以找到该文件夹,但仍找不到所需的文 

统上已经安装了的驱动是否可行,进入驱动目录/ 

件。后来经过不断的分析,发现是操作系统的问题, 

lib/modules/(内核版本)/kernel/drivers/net,即可发现 

在fedora的更高版本中,那个快捷方式已被修复,编 

已经有很多模块了,用命令insmod相应芯片模块名 

译和安装都可以顺利完成。 

字。 

虽然新操作系统是suse linuxl0(现在的0Den— 

例如目前许多计算机安装的是Redhat体系的 

suse),链接错误的问题没有再次出现,驱动被成功 

fedoral,网卡使用了RealTek公司生产的rtl8168/ 

的写入了内核,访问互联网和共享文件夹都正常。 

8100芯片,而内核又不支持这个型号的芯片,需要 

但是,网卡无法自动激活,相当于windows下每次 

自行安装。将RealTek公司提供的驱动解压到/ 

开机后网卡都是禁用的,需要手动启用。而许多工 

homduser/rtl8168,有如下几个文件:Makefile, 

程软件需要在开机是检测并启动license (授权文 

Makefile一 ̄nux24x,readme和src文件夹。src文件 

件),而license又和网卡的物理地址绑定,如果网卡 

夹中包含了驱动的源代码;readme文件是安装说 

不启动,license就不会启动。 

明;Makefile文件的作用类似windows下的setuD, 

由于/etc/svsc0nfig/netw0rk/ifc_fg—eth—id— 

在终端下进入相应目录,执行make和make install 

XXXX

(XXXX表示网卡的物理地址;red]hat/fedora 

即可编译和安装。 

Linux系统里是/etc/sysconfig/network—scrips/ifcfg 

安装readme的指导,在终端下执行cd/home/ 

eth0,0表示第一个网卡),这个档案的内容即是 

user/rtl8168,之后编译执行make,一个问题出现了, 设定网络卡的参数档案。里面可以设定network, 

编译不成功,提示: 

IP,netmask,,broadcast,开机时的IP取得协议之方 

make[2]:Entering directory‘/usr/src/linux一2. 

式(DHCP,static),是否在开机的时候激活等。/etc/ 

21— 

维普资讯

2008年6月 北华航天工业学院学报 第l8卷 

networks,/etc/resolv.conf,/etc/hosts设置了网卡的 

能自动识别的网卡提出了配置驱动安装程序和TCP/ 

预设值,主机名,DNS等内容。经过检查,以上的内 IP网络参数的方法,并对于特定的网卡安装过程中 

容设定无误。那么最后一个,也是比较不常用的文 

出现的常见问题提出了相应的解决办法。 

件,/etc/modprobe.conf(2.4内核的系统中是/etc/ 参考文献: 

modules.conf),它储存了网卡的硬件驱动信息,只有 

[1]鸟哥.Linux基础学习篇[M].北京:科学出版社,2005. 

在系统找不到网卡芯片模块的时候才用的到。问题 

[2]魏永明,骆刚,姜君.L INUX设备驱动程序[M].北京: 

就出在这里,在该文件中应该有一行语句写有: 

中国电力出版社,2002. 

alias eth0模块名。 

[3]孙琼.嵌入式Linux应用程序开发详解[M].北京:人民 

这是为让系统在启动时找到硬件eth0的驱动 

邮电出版社,2006. 

模块并将其加载。如果没有,可以在modprobe.conf 

[4]刘春琳,郭红琳.Linux系统以太网卡驱动程序加载与 

配置[J].山东煤炭科技,2001,(3):52—56. 

文件中在添加alias eth0 rl000后,问题就解决了。 

[5]杨四海.Linux下realtek网卡的配置[J].中国数据通 

5结语 

信,2002,(3):111—112. 

网卡驱动程序的加载与配置比较特殊,Linux的 

[6]蒋丰,张春元.Linux下编写网络设备驱动程序[J].微 

支持函数少,只能依赖内核中的函数,许多操作需要 

型机与应用,2001,(4):27—29. 

自己编写,而且调试也非常不方便,本文根据Linux 

[7]李卫刚.Linux网络设备驱动程序设计[J].计算机世界, 

操作系统中网卡的驱动程序的工作原理,针对系统不 

2002,(36):C21一C22. 

The Driver and Installation of Network Interface 

Card in Linux Operating System 

LIU Jin—mei ZHOU Tong LI Zi—wei LIU Li-jun 

(1.Electronics Engineering Department,North China Institute of Aerospace Engineering,Langfang 065000,China; 

2.TangShan JianLong Industry Co.Ltd.,Tangshan 064200,China; 

3.Langfang Automation Engineering Co.Ltd.,Langfang 065000,China) 

Abstract:The paper introduces the working principle of driver of network interface card in Linux operating system and presents the 

way to configure the parameters of TCP/IP.It also analyzes the problems in installing the network interface card

and finally suggests 

some possible solutions. 

Key words:finux;network interface card;driver 

) ) ) 、 

(上接第18页) 

[3]戚江波.一种新型5一DOF串并联机床及其数控系统的 

[J].石油化工高等学校学报,2001,14(1):3—4. 

研究[D].天津:河北工业大学,2006. 

[5]支劲章.五自由度混联机床数控系统及后置处理技术研 

[4]刘晓堂.基于PMAC的开放式数控系统的研究和开发 

究[D].天津:河北工业大学,2008. 

Hardware Development for three Degrees of freedom 

Parallel Machine Tool NC System Based on PMAC 

DONG Xu TIAN Dong—xing YANG Song 

(Mechanical Engineering Department,North China Institute of Aerospace Engineering,Langfang 065000,China) 

Abstract:Based on the kinematics control characteristics of the parallel tool machine nad the PMAC Multi-Axis Motion Control Card

, 

a hardware control system is developed to apply to parallel machine tool in three degrees of freedom

The testing results show that the 

system design is reasonable and has the baility to control the movement of the machine cacurately

. 

Key words:three degrees of freedom;PMAC;NC system 

22— 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1715835514a2679050.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信