下一页 上一页 目录

1. 简介

以太网指南包含了关于当前可用的大多数常见以太网卡的支持级别的详细信息。它涵盖了常见的硬件配置问题,以及选择正确的驱动程序,然后加载并使其正常工作相关的问题。它不涵盖设置的后续阶段(选择互联网地址、路由等)。这些信息可以在其他 Linux 文档中找到。

在 Linux 的早期,旧的 ISA 类型以太网卡是主流。ISA 总线没有合理或安全的方式让 Linux 确定安装了哪些卡,或者每张卡要使用哪些设置。这意味着最终用户更多地参与向 Linux 提供此信息,他们求助于本指南以获得这方面的帮助。

幸运的是,如今几乎每台计算机都可以找到更新的 PCI 总线,而 ISA 总线则与过去的 386 和 486 计算机一起被束之高阁。PCI 总线的设计者认识到旧 ISA 总线上的卡检测问题,因此增加了对每张卡的支持,使其能够向主机计算机传达其制造商和型号,以及要使用的设置。

ISA 总线的逐渐衰落大大减少了最终用户的参与。因此,今天的大多数 Linux 用户不需要求助于本指南来获得帮助。然而,总有一些角落案例,事情没有按预期工作,或者一些问题需要排除故障。当然,仍然有一些旧的 ISA 计算机在黑暗的壁橱底部执行着默默无闻的专用任务。

本版本涵盖了内核版本 2.4.21 及以下版本中找到的以太网驱动程序。还提到了一些与即将发布的 2.6 版本相关的功能。

以太网指南作者是

Paul Gortmaker, p_gortmaker @ yahoo.com

最初的纯 ASCII 版本的以太网指南的主要信息来源是

Donald J. Becker, becker @ scyld.com

我们应该感谢他编写了许多目前可用于 Linux 的以太网卡驱动程序。

本文档版权归 Paul Gortmaker 所有,(c) 1993-2003。是的,我已经维护这东西 10 年了!有关本文档的再分发以及通常的“我们不对您设法破坏的内容负责……”类型的法律条款,请参阅本文档末尾的免责声明和复制信息(版权)。

1.1 本文档的新版本

可以从以下位置检索本文档的新版本

Ethernet-HOWTO

或者对于那些希望使用 FTP 和/或获取非 HTML 格式的人

Sunsite HOWTO 存档

这是“官方”位置 - 它也可以在各种 Linux WWW/ftp 镜像站点上找到。当有新信息和/或驱动程序可用时,将进行更新。如果您正在阅读的副本已超过 6 个月,则应检查是否有更新的副本可用。

本文档有多种格式(postscript、dvi、ASCII、HTML 等)可用。我建议在 HTML 中(通过 WWW 浏览器)或 Postscript/dvi 格式中查看它。这两种格式都包含纯文本 ASCII 格式中未包含的交叉引用。

1.2 使用以太网指南

由于本指南越来越大,您可能不想花整个下午的时间阅读完整内容。好消息是您不必全部阅读。HTML 和 Postscript/dvi 版本都有目录,这将真正帮助您更快地找到您需要的内容。

您很可能正在阅读本文档,因为您无法使事情正常工作,并且您不知道该做什么或检查什么。下一节(帮助 - 它不起作用!)是针对 Linux 新手的,并将为您指明正确的方向。

通常,不同的人会一遍又一遍地提出相同的问题。您的特定问题或疑问很可能是这些常见问题之一,并在本文档的 FAQ 部分中解答。(FAQ 部分)。每个人都应该在寻求帮助之前浏览一下本节。

如果您还没有以太网卡,那么您将需要从决定购买哪种卡开始。(我应该购买哪种卡...

如果您已经有了以太网卡,但不确定是否可以在 Linux 中使用它,那么您将需要阅读包含有关每个制造商及其卡的特定信息的章节。(厂商特定...

如果您对 Linux 设备驱动程序的一些技术方面感兴趣,那么您可以浏览包含此类信息的章节。(技术信息

1.3 我需要做什么才能使以太网工作?

作为快速概述,您需要:1) 拥有插入式以太网卡或内置以太网支持的主板,2) 确定以太网卡或板载以太网芯片的品牌或制造商和型号,3) 确定是否存在此型号卡/芯片的 Linux 驱动程序,4) 找到并加载此驱动程序,5) 检查驱动程序输出以验证它是否找到了您的卡,6) 为新检测到的网络接口设置或配置网络参数。

1.4 帮助 - 它不起作用!

好的,不要惊慌。这将引导您完成使事情正常工作的过程,即使您没有 Linux 或以太网硬件方面的先验知识。

您需要做的第一件事是弄清楚您的卡是什么型号,以便您可以确定 Linux 是否有该特定卡的驱动程序。不同的卡通常有不同的方式被主机计算机控制,Linux 驱动程序(如果有)包含这种控制信息,其格式允许 Linux 使用该卡。

如果您没有任何手册或类似的东西告诉您有关卡型号的任何信息,那么您可以尝试使用 lspci 实用程序来获取有关计算机中 PCI 设备的信息。执行 cat /proc/pci 会提供类似(但较少)的信息。对于 ISA 卡,请参阅有关帮助识别神秘卡的章节(参考章节:识别未知卡)。

现在您已经知道您拥有哪种类型的卡,请阅读卡特定部分(参考章节:厂商特定...)中有关您的特定卡的详细信息,该部分按字母顺序列出卡制造商、各个型号以及它是否具有 Linux 驱动程序。如果它列为“不支持”,您几乎可以在这里放弃。如果您在该列表中找不到您的卡,请检查您的卡手册是否将其列为与另一种已知卡类型“兼容”。例如,有数百种甚至数千种不同的卡被制造为与最初的 Novell NE2000 设计兼容。

假设您已查明您的卡存在 Linux 驱动程序,您现在必须找到它并加以利用。仅仅因为 Linux 有您的卡的驱动程序,并不意味着它内置于每个内核中。(内核是启动时首先加载的核心操作系统,除其他外,还包含各种硬件的驱动程序。)根据您使用的特定 Linux 发行版的制作者,可能只有少数预构建的内核,以及一大堆驱动程序作为较小的单独模块,或者可能有大量的内核,涵盖了内置驱动程序组合的广泛组合。

大多数 Linux 发行版现在都附带了一堆小模块,这些模块是各种驱动程序。所需的模块通常在启动过程的后期加载,或者在需要驱动程序访问特定设备时按需加载。您需要在内核启动后将此模块附加到内核。请参阅您的发行版附带的有关安装和使用模块的信息,以及本文档中的模块部分。(将以太网驱动程序用作模块

如果您没有找到带有驱动程序的预构建内核,也没有找到驱动程序的模块形式,那么您很可能拥有一张非常规的卡,您将不得不构建自己的包含该驱动程序的内核。一旦您安装了 Linux,构建自定义内核就一点也不困难。您只需对您希望内核包含的内容回答是或否,然后告诉它构建它。有一个内核指南可以帮助您。

此时,您应该以某种方式设法启动了一个内置驱动程序的内核,或者正在将其作为模块加载。人们遇到的大约一半问题与没有以某种方式加载驱动程序有关,因此您可能会发现现在事情可以正常工作了。

如果它仍然不起作用,那么您需要验证内核是否确实检测到该卡。为此,您需要在系统启动并且所有模块都已加载后登录时键入 dmesg | more。这将允许您查看内核在启动过程中向上滚动屏幕的启动消息。如果卡已被检测到,您应该在该列表中看到来自您的卡驱动程序的消息,该消息以 eth0 开头,提及驱动程序名称和卡设置的硬件参数(中断设置、输入/输出端口地址等)。(注意:在启动时,Linux 列出系统中安装的所有 PCI 卡,无论有哪些驱动程序可用 - 不要将此与稍后出现的驱动程序检测混淆!)

如果您没有看到这样的驱动程序识别消息,则驱动程序没有检测到您的卡,这就是事情不起作用的原因。有关如果未检测到您的卡该怎么办,请参阅 FAQ(FAQ 部分)。如果您有 NE2000 兼容卡,那么在 FAQ 部分中也有一些关于如何检测卡的 NE2000 特定提示。

如果卡被检测到,但检测消息报告某种错误,例如资源冲突,那么驱动程序可能无法正确初始化,并且卡仍然无法使用。FAQ 部分还列出了此类最常见的错误消息以及解决方案。

如果检测消息看起来正常,那么请将驱动程序报告的卡资源与卡物理设置的资源(通过卡上的小黑跳线或卡制造商提供的软件实用程序)进行仔细检查。这些必须完全匹配。例如,如果您将卡跳线或配置为 IRQ 15,并且驱动程序在启动消息中报告 IRQ 10,则事情将无法正常工作。FAQ 部分讨论了驱动程序错误检测各种卡的配置信息的最常见情况。

至此,您已设法使您的卡以所有正确的参数被检测到,并且希望一切正常。如果不是,那么您要么有软件配置错误,要么有硬件配置错误。软件配置错误是没有为 ifconfigroute 命令设置正确的网络地址,以及如何执行此操作的详细信息在网络指南和“网络管理员指南”中完全描述,这两者可能都来自您安装的 CD-ROM。

硬件配置错误是指某种资源冲突或错误配置(驱动程序在启动时未检测到)阻止卡正常工作。这通常可以通过几种不同的方式观察到。(1) 当 ifconfig 尝试打开设备以供使用时,您会收到错误消息,例如“SIOCSFFLAGS: 请重试”。(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 的输出、问题的清晰描述,以及您为使事情正常工作而尝试做的事情。

您会惊讶于有多少人发布无用的东西,例如“有人可以帮帮我吗?我的以太网不起作用。”而没有其他任何信息。新闻组的读者往往会忽略此类愚蠢的帖子,而详细且信息丰富的问题描述可能会让“Linux 大师”立即发现您的问题。当然,通过电子邮件发送问题报告也是如此 - 始终提供尽可能多的信息。

1.5 您的卡应支持的电缆类型

双绞线电缆,带有 RJ-45(巨型电话插孔)连接器,在技术上称为 10BaseT。您也可能听到它被称为 UTP(非屏蔽双绞线)。

细缆或细以太网布线(RG-58 同轴电缆),带有 BNC(金属推入并转动锁定)连接器,在技术上称为 10Base2。

较旧的粗以太网(10 毫米同轴电缆)仅在较旧的安装中找到,称为 10Base5。在某些以太网卡上找到的 15 针 D 形插头(AUI 连接器)用于连接到粗以太网和外部收发器。

大多数以太网卡也有“Combo”版本,只需多花 10-20 美元。这些版本内置了双绞线和细缆收发器,允许您稍后改变主意。

大多数安装将使用 10BaseT/100BaseT。10Base2 不提供任何升级到 100Base-whatever 的途径。当出于某种原因不希望购买集线器时,10Base2 非常适合业余爱好者设置家庭网络。

有关不同类型的以太网电缆的其他注意事项,请参阅 电缆、同轴电缆...


下一页 上一页 目录