以太网-HOWTO包括了该买什么网卡与不该买什么网卡;如何设置网卡,怎样运行多个网 卡,以及其它常见错误和问题。它包含了目前所有最常见网卡能够得到支持的细节资料。
它不包含有关软件方面的内容,因为NET-3 Howto中包含了这些内容。还要注
意这里不包括(或者至少不应当包括)那些非Linux特有的有关以太网的一般问题的解答。
对于那些问题,可以参考comp.dcom.lans.ethernet的FAQ中的大量资料,与所有
其它新闻组FAQs一样通过FTP到rtfm.mit.edu
获取。
本修订版覆盖了Linux 2.2.7及其之前的内核发行版本。
以太网-HOWTO的作者为:
Paul Gortmaker, p_gortmaker@yahoo.com
原始的ASCII版本的以太网-HOWTO的主要资料来源为:
Donald J. Becker, becker@cesdis.gsfc.nasa.gov
感谢他编写了Linux目前使用的绝大多数以太网卡驱动程序。他也是最初的NFS服务器的 作者。谢谢Donald!
Copyright (c) 1993-1999 本文的版权所有人为Paul Gortmaker。请阅读本文档结尾处 的声明与版权信息( copyright) 以了解有关分发本文及通常的“我们不对你试图破坏......的行为负责”之类的法律信息。
本文档的新版本可以从如下主页获得:
希望采用FTP方式或者希望获取非HTML格式文档的可使用以下站点:
这是“官方”站点 - 也可以在其它各种Linux WWW/ftp镜像站点找到本文档。在有了新 资料或新驱动程序时本文档将进行更新。如果你阅读的文档已经存在6个月以上了,那么你 需要检查一下是否已经有更新过的版本。
本文档有多种格式(postscript,dvi,ASCII,HTML,等等)。推荐用HTML格式浏览( 通过WWW浏览器)或Postscript/dvi格式浏览。这两种格式都包含有普通文本ASCII格式无法 提供的交叉引用功能。
由于本指南越来越大,你可能不希望花一个下午从头读到尾。而令人高兴的是你不 必阅读全部内容。HTML和Postscript/dvi版本都有内容列表,可以帮助你更快地找到 所需的内容。
可能你是由于无法使网卡工作,而且不知道该怎么做或者如何检查,才来阅读本文档的。 下一节(帮帮我 - 网卡没反应!)就是针对Linux初学 者并给出正确的指引。
经常有一些问题被不同的人问了一遍又一遍。可能你碰到的某个问题就是常 见问题之一,而且在本文档的FAQ部分(常见问 题)已经有了答案。每个人在发文寻求帮助之前都最好先看一下这一节。
如果你还没有网卡,那么你可能想从决定买网卡开始。(该为Linux买什么网卡?)
如果你已经有了一块以太网卡,但不能确定是否可以在Linux上使用它,那么你可能想 读一下包含每一个制造厂家及其网卡的特定信息的章节。(有关销售商/制造厂家/型号的信息)
如果你对Linux设备驱动程序的一些技术细节感兴趣,那么你可以浏览有此类信息的章 节。(技术信息)
好,别紧张。下面就告诉你如何解决问题,即使你此前对Linux或以太网硬件一无所知。
首先你需要弄清楚你的网卡类型,Linux是否有此类型网卡的驱动程序。主机在控制不 同的网卡时使用的方法一般也不一样,而Linux驱动程序(如果有的话)就以允许Linux使 用此卡的格式包含了这样的控制信息。如果你没有手册一类的东西让你知道网卡的类型, 那么你可以尝试处理“神秘”网卡的章节(参考章节:识别未知网卡)。
现在你知道了你的网卡类型,阅读特定网卡章节中有关你的网卡的细节(参考章节:有关销售商/制造厂家/型号的信息), 那里以字母顺序列出了网卡制造厂家、各自的类型号以及是否有Linux驱动程序。如果在列 表中被表明“不支持”,你就可以放弃了。如果从中找不到你的网卡,那么看一下你的网 卡手册是否说它与某个已知网卡类型“兼容”。例如至少有几百种网卡与原来的Novell NE2000设计兼容。
假设你已经发现了你的网卡有Linux驱动程序,现在就找到并利用它。因为Linux有你的 网卡的驱动程序并不意味着它存在每一个内核中。(内核是启动时最先载入的操 作系统核心,包含各种硬件的驱动程序,以及其它等等。)可能只有很少几个预先生成的 内核,和一大批较小的作为分立模块的驱动程序,或者是许多的内核,覆盖了大量内建驱 动程序的组合,这都完全取决于是谁生成了你所使用的Linux发行版本。
现在的大多数Linux发行版本都提供大量较小的作为分立模块的不同驱动程序。需要的 模块通常可以在启动过程的后期载入,或者在存取特定设备时以命令的形式载入一个驱动 程序。你需要在内核启动后把该模块加载到内核上。查阅你所用的发行版本中有关安装和 使用模块的信息,并参考本文档的有关模块章节。(把以太网驱动程序作为模块使用)
如果你没有找到包含你的网卡驱动程序的已生成内核,也没有找到该驱动程序的模块形 式,那么可能是你的网卡不够常见,而且需要你自己生成一个包含该驱动程序的内核。只 要你已经安装了Linux,生成一个定制的内核一点儿都不难。你只要对内核需要包含些什么 回答是或者不是,然后让它生成就行了。有一个Kernel-HowTo可以帮助你。
此时你还需要以某种方式启动内建了你的驱动程序的内核,或者以模块的形式载入驱动 程序。大约人们碰到的问题有一半儿出在没有以这种或那种方式载入驱动程序,所以你会 发现网卡现在工作了。
如果它还不工作,那么你需要证实一下内核确实检测到了网卡。要做到这一点,你需要
在系统启动以及所有模块载入之后键入dmesg | more
。这可以让你查看启动
过程中内核所显示的启动信息。如果网卡被检测到,你可以从中找到以eth0
开
头的网卡驱动程序显示信息,指出网卡所使用的驱动程序名称和硬件参数(中断设置、
I/O地址等等)。(注意:在启动时,Linux会列出所有系统中安装的PCI卡,无论是否有驱
动程序 - 不要把这个误认为其后的驱动程序检测!)
如果你没看到这样的驱动程序识别信息,那么驱动程序就没有检测到你的网卡,这就是 问题所在。查看FAQ(常见问题) 寻找网卡未检测到时该做些什么。如果你的网卡是NE2000兼容的,在FAQ中有一些有关NE2000 网卡检测的技巧。
如果网卡被检测到了,但检测信息报告了一些错误,比如资源冲突,那么驱动程序可能 无法正常初始化,网卡还是不可用。这一类的最常见错误信息也在FAQ中列出来了,并给出 了相应的解决方案。
如果检测信息看起来没问题,那么再检查一下驱动程序报告的网卡资源是否与网卡的物 理设置一致(网卡的物理设置或者是通过网卡上的跳线,或者是网卡制造厂家提供的软件 工具完成。)它们必须完全一致。例如,网卡的跳线或配置为IRQ 15,而驱动程序在启动 信息中报告为IRQ 10,那么就会出问题。在FAQ中讨论了最常见的驱动程序错误地检测各种 网卡配置信息的情况。
现在你已经使你的网卡以正确的参数被检测到了,但愿一切正常。如果还有问题,那么
或者是软件配置有错,或者是硬件配置有错。软件配置错误就是在ifconfig
和route
命
令中没有设置正确的网络地址,其处理细节可以在Network HowTo和“Network Administrator's Guide”
中找到,它们可能都在你用来安装的CD-ROM上。
硬件配置错误是某些资源冲突或忘记配置(即在启动时没检测到驱动程序),使网卡无
法正常工作。通常可以用几种不同的方法来检查。(1) 在ifconfig
试图打开
设备来使用时报告出错信息,如“SIOCSFFLAGS: Try again”。(2) 驱动程序报告eth0
出
错信息(用dmesg | more
查看)或者每次试图发送或接受数据时奇怪的不一
致。(3) 键入cat /proc/net/dev
来显示eth0
的errs,drop,
fifo,frame或carrier列中的非零数字。(4) 键入cat /proc/interrupts
显
示网卡的零中断计数。大多数典型的硬件配置错误也在FAQ中进行了讨论。
好吧,如果你现在还有麻烦,阅读本文档的FAQ,阅读有关销售商章节中有关你的网卡
的细节,如果问题还没解决,那么你只好求助于某个相应的新闻组了。在求助文
章中请给出所有相关的细节资料,比如网卡商标、内核版本、驱动程序的启动信息、cat /proc/net/dev
的
输出、清晰的问题描述,当然还有你在试图解决问题时尝试采用的方法。
你可能会奇怪有那么多的人发出诸如“Can someone help me? My ethernet doesn't work.” 而没有其它内容的无用信件。新闻组的读者一般会忽略掉这些愚蠢的信件,而详细的有内 容的问题描述则会让“Linux大拿”立即指出你的问题所在。