app教程网 学习教程 linux 以太网配置(linux 以太网)

linux 以太网配置(linux 以太网)

Linux操作系统以其独特的开放性、稳定性和高效性受到越来越多人的青睐。随着IT行业巨头宣布支持Linux,Linux正在迅速扩大其应用市场,尤其是服务器市场。在标准上,

Linux兼容POSIX1003.1,但比现有的UNIX系统有更合理的内核结构。由于它的开放性,各种广泛使用的网络协议在该系统中得到了实现。

目前人们使用的Linux系统一般是指由Linux内核、外壳和外围应用软件组成的发行版。

Linux发行版是不同的公司或组织有效捆绑Linux内核、外壳、安装工具和应用软件的结果,所以种类繁多,各有利弊。但是一般来说,这些发行版支持尽可能多的网卡。

本文只讨论RedHat这个特定发行版中网卡的选择、安装和配置,希望能为其他发行版中的相同问题提供一些参考。

就像UNIX一样,Linux支持的网卡主要是以太网卡。如3COM、ACCTON、ATT、IBM、CRYSTAL、D-LINK等众多品牌的以太网卡,只要安装配置正确,就可以得到想要的效果。

一、Linux中网卡的工作原理

为了更清楚地解释这个问题,我们先简单分析一下Linux是如何让网卡工作的。一般来说,Linux内核实现了OSI参考模型的网络层和上层。网络层的实现依赖于数据链路层的有效工作。

网卡驱动是数据链路层和物理层的接口。通过调用驱动程序的发送例程向物理端口发送数据,通过调用驱动程序的接收例程从物理端口接收数据。

1.网卡驱动程序

简单来说,你唯一需要做的就是拿到这个网卡的驱动。驱动程序为操作系统的核心提供了一个接口,并为物理层提供了一个接口。

驱动程序的操作系统接口是用于发现网卡、检测网卡参数以及发送和接收数据的例程。当驱动程序开始运行时,操作系统首先调用检测例程来查找系统中安装的网卡。如果网卡支持即插即用,

那么检测例程应该能够自动发现网卡的各种参数;否则,您必须在驱动程序运行之前设置网卡的参数,供驱动程序使用。当内核想要发送数据时,它调用驱动程序的发送例程。发送例程将数据写入正确的空间,

则激活物理发送过程。

面向物理层的驱动程序接口是一个中断处理例程。当网卡接收到数据,发送过程结束,或者发现错误,网卡产生中断,然后内核调用中断处理例程。中断处理程序判断中断的原因并处理响应。

例如,当网卡接收数据并被中断时,中断处理例程调用接收例程来接收数据。

2.驾驶员操作参数

驱动的工作参数随着网卡的性质而变化,包括I/O端口号、中断号、DMA通道、共享存储区等等。I/O端口号,也称为I/O基址,在网卡工作在端口I/O模式时使用。

端口I/O模式需要CPU的全面介入,但所需硬件和存储空间较低。CPU通过端口号指定的空间与网卡交换数据。中断号就是网卡的中断号,只要不与其他设备冲突。当网卡使用DMA模式时,

它使用DMA通道批量传输数据,无需CPU干预。

对于特定的网卡,如果网卡支持全自动检测,那么不需要指定参数,驱动程序检测例程会自动设置所需的参数。通常,您需要手动设置其中的一些参数。如果您的网卡使用端口输入和输出模式,

你需要设置端口号和中断号。如果您的网卡使用DMA模式,您应该设置DMA通道和中断号。如果您的网卡使用共享内存模式,您必须设置共享内存的地址范围。

3.如何使用驱动程序

有了网卡的驱动,你可以选择是把驱动添加到Linux内核,还是把驱动处理成一个独立的模块。Linux系统一个吸引人的优点就是可以定制系统的核心。将需要经常调用的函数添加到系统核心,

可以大大提高系统的效率。在这种情况下,当系统启动时,系统内核自动加载网卡的驱动程序。驱动程序的参数可以由LILO命令参数指定。系统启动后,驱动程序永久驻留在内核中,无法通过常规方法卸载。

至于定制的系统内核,是通过重新编译获得的;如何编译内核将在后面描述。

如果驱动程序被编译成一个可加载的模块,它可以在系统启动后用系统提供的命令随时加载。随时加载有减少内存开销、易于管理的优点,但也牺牲了网络传输的效率。

驱动程序的参数直接在命令行中输入,或者通过配置文件指定。

二、网卡安装前的准备

安装网卡之前,请务必检查是否满足以下条件:

1.硬件方面

以太网卡

网线和连接器,如10base-T,一般为8芯双绞线,带RJ-45接口。

2.软件。

Linux操作系统

网卡驱动程序(目标代码或源代码)

*网卡配置器

*软件开发工具,如GNU toolkit(包括编译器gcc、make等。)

3.系统配置信息

可用的端口地址

可用的中断号

上面没有标星号的是必要条件,标星号的是根据不同情况要求的条件。具体情况下面进一步说明。

三、网卡的安装和配置

第一步:配置以太网卡的工作参数。

配置网卡就是配置网卡的工作参数,比如端口地址,中断号等。网卡的默认参数一般存储在网卡内部的EEPROM中,是网卡出厂前设置好的。默认参数在大多数情况下是可行的,

但是,如果这些参数与您的系统冲突,并且网卡不支持软件动态设置,那么您应该使用网卡的设置程序。并不是所有的网卡都要经过这一步,因为有些网卡支持通过驱动软件及其输入参数来确定网卡的工作参数。

这可以通过查阅网卡的使用说明书来确定。

网卡的安装程序与驱动程序不同。设置程序仅用于修改网卡EEPROM中的设置。网卡程序本身可能运行在其他操作系统下,如WINDOWS95/98、OS/2、DOS等。如果是非Linux平台,

那你就先在适合设置程序运行的系统中安装网卡,按设置程序说明设置网卡参数。然后再在Linux系统下安装该网卡。

第二步:安装Linux系统

假如你将要安装以太网卡的Linux系统本身还未安装,那么可以先试着在安装Linux的同时安装网卡。这一步成功的前提是你的Linux发行版本包含将要安装的网卡的驱动程序。

运行Linux的安装程序,按提示进行操作,别忘了安装核心的网络部分。当进行到LAN配置时,安装程序会列出它支持的所有网卡的类型。看看你的网卡是否榜上有名。随着Linux发行版本的不断升级,

目前RedHat 6.0已经覆盖了常用的网卡类型。如果很幸运地你的网卡恰好在其中,那么下文讨论的很多步骤都可以不必考虑了,安装程序会自动完成网卡的安装与驱动。但如果没找到适用于你的网卡类型,

也不必担心,继续下一步。

第三步:手工安装网卡

安装网卡也就是安装网卡的驱动程序。网卡要工作必须要有驱动程序,并且驱动程序越成熟越好。驱动程序一般由网卡的生产或供应商提供。由于Linux是一个起步不久的新兴操作系统,

网卡的生产商并不一定提供Linux环境下的驱动程序。这时候你就得从其它途径想办法了,比如到INTERNET上专门提供硬件驱动程序的网站查找一下,也可以在新闻组上贴个求助信息。总之,

只有得到网卡的驱动程序后,方可进行下一步。

网卡的驱动程序有两种类型。一是可直接使用的二进制代码;另一种是驱动程序的源代码。二进制代码一般是预先编译好的可装载模块。源代码可以编译成可装载模块,也可以编译成系统核心的一部分。

如何把源代码编译成可装载模块不在本文讨论之列,具体可以查阅驱动程序的说明书。

1.可装载模块的使用

系统提供了一组命令用于将驱动程序模块载入内存执行。这些命令包括modprobe、insmod、Ismod、rmmod。modprobe 与insmod命令功能相似,但是方式各异。

modprobe 命令使用配置文件/erc/config.modules来加载可执行模块。要用modprobe命令加载以太网卡的驱动程序,可以在config.modules文件中加入:

alias eth0 drivermodule (drivermodule是驱动程序模块的名称)

这行配置信息把以太网卡的设备名与驱动程序模块联系起来。modprobe命令依据这条信息,自动加载存放于/lib/library/xxxx/net目录下名为drivermodule.o的模块。

因此要使modprobe命令找到驱动程序模块,必须将该模块放在/lib/library/xxxx/net目录下。

那么驱动程序的参数如何指定呢?还是使用conf.modules文件。方法是在接着上述配置信息的后面加入下行信息:

options drivermodule parml=valuel,parm2=value2,……

这里parm1 是驱动程序可以接受的参数名,valuel是该参数值;依次类推。

比如options cs89x0 io=0x200 irq=0xA media=aui

insmod命令直接通过命令行参数将驱动程序模块载入内存,并可以在命令中指定驱动程序参数。例如:

insmod drivermodule.o parml=valuel,parm2=value2,……

以上两个命令中可以使用驱动程序参数要依据具体的网卡及其驱动程序而定,要仔细阅读网卡及驱动程序的说明书。有的网卡驱动程序可以用这些参数覆盖网卡本身EEPROM中存储的参数。

有的则必须使用EEPROM中的参数。有的因为驱动程序不自动检测网卡使用的参数,所以还得把网卡使用的EEPROM中的参数传给驱动程序。

卸载驱动程序模块使用rmmod命令:

rmmod drivermodule.o

2.把驱动程序编译入系统核心

除了以可装载模块的形式使用驱动程序,还可以把驱动程序编译进Linux核心,以获取更高的效率。这种方式需要驱动程序的源代码、Linux核心源代码及其编译工具。

Linux核心的编译过程包括配置核心、重建依赖关系、生成核心代码等步骤。

配置核心的过程是用系统提供的配置工具(make config 或make menuconfig)重新生成用来编译核心的众多make文件的过程。为了让核心的配置工具了解你的网卡驱动程序,

你需要修改一些核心的配置文件。

(1)修改配置文件:主要修改核心源代码目录下

本文来自网络,不代表本站立场,转载请注明出处:https: