以太网-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大拿”立即指 出你的问题所在。