⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ethernet-howto-3.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 HTML
📖 第 1 页 / 共 4 页
字号:
老版本的Ultra驱动程序只支持共享内存模式下的操作。<P><B>解决方案:</B>版本2.0以上的内核所附驱动程序就支持可编程I/O模式的操作。升级到v2.0以上版本。<P><B>问题:</B>老的wd8003或可跳线的wd8013总是得到错误的IRQ。<P><B>原因:</B>老的wd8003网卡或可跳线的wd8013兼容卡没有驱动程序可以从中读取设置的IRQ的EEPROM。如果驱动程序无法读到IRQ,就尝试用auto-IRQ发现它。若auto-IRQ返回0,那么驱动程序就给8比特网卡分配IRQ 5,或者为16比特网卡分配IRQ 16。<P><B>解决方案:</B>使auto-IRQ代码无效,并在你的模块配置文件(对于内建的驱动程序则通过启动参数)告诉内核你把网卡跳成了什么IRQ。<P><B>问题:</B>SMC Ultra网卡被检测成了wd8013,但IRQ和共享内存地址是错的。<P><B>原因:</B>Ultra网卡看起来跟wd8013很相象,如果内核里没有Ultra驱动程序,wd驱动程序就会把ultra误认为wd8013。ultra检测在wd之前,所以一般不会出问题。ultra在EEPROM保存的IRQ和内存地址与wd8013保存的位置不同,所以报告的值是假的。<P><B>解决方案:</B>只保留需要的驱动程序重新编译内核。如果你在同一台机器上同时使用wd和ultra网卡,并使用模块,那么首先载入ultra模块就行了。<P><H2><A NAME="3com-probs"></A> <A NAME="ss3.6">3.6 3Com网卡的问题</A></H2><P><B>问题:</B>3c503选择了IRQ N,但其它设备也需要IRQ N。(比如CD ROM驱动程序、modem等。)可以不编译进内核就解决这个问题吗?<P><B>解决方案:</B>3c503驱动程序按照顺序{5, 9/2, 3, 4}检测空闲的IRQ线,从中找到一个未被使用的IRQ。在网卡被<CODE>ifconfig</CODE>操作配置时选择中断IRQ。<P>如果你使用的是模块化的驱动程序,可以用模块参数设置各种情况,包括中断IRQ的值。<P>下面的语句选择IRQ9、基址<CODE>0x300</CODE>、&lt;ignored value&gt;和if_port #1(外部收发器)。<P><P><BLOCKQUOTE><CODE>io=0x300 irq=9 xcvr=1</CODE></BLOCKQUOTE><P>另外,如果驱动程序被编译进了内核,你还可以通过LILO在启动时传递参数来设置同样的值。<P><BLOCKQUOTE><CODE>LILO: linux ether=9,0x300,0,1,eth0</CODE></BLOCKQUOTE><P>下面的语句选择IRQ3、检测基址、&lt;ignored value&gt;和缺省if_port #0(外部收发器)。<P><BLOCKQUOTE><CODE>LILO: linux ether=3,0,0,0,eth0</CODE></BLOCKQUOTE><P><B>问题:</B>3c503: configured interrupt X invalid, will use autoIRQ.<P><B>原因:</B>3c503网卡只能使用中断IRQ{5, 2/9, 3, 4}中的一个(这些是网卡所能连接的中断线。)如果你使用一个不在其中的IRQ值,就会得到如上的提示。一般情况下,没必要为3c503指定中断值。3c503会在ifconfig配置时使用autoIRQ,并从IRQ{5, 2/9, 3, 4}中选择一个。<P><B>解决方案:</B>使用上述的合法IRQ值,或者不指定IRQ以启用autoIRQ。<P><B>问题:</B>提供的3c503驱动程序无法使用AUI(粗缆以太网)端口。怎样才能不使用缺省的细缆以太网端口而选择AUI端口?<P><B>解决方案:</B>3c503的AUI端口对于内建驱动程序可以在启动时选择,对于模块化驱动程序可以在插入模块时选择。这一选择会覆盖未使用的dev-&gt;rmem_start变量的低比特位,所以启动参数:<P><BLOCKQUOTE><CODE>LILO: linux ether=0,0,0,1,eth0</CODE></BLOCKQUOTE><P>可以对内建在内核的驱动程序起作用。<P>要在载入模块时指定AUI端口,只需把<CODE>xcvr=1</CODE>附加在模块选项包含你的I/O和IRQ值的那一行就行了。<P><P><H2><A NAME="ss3.7">3.7 非特定网卡的FAQs</A></H2><P><P><H3>Linux与ISA的即插即用以太网卡。</H3><P><P>要获得最佳效果(问题最少),推荐使用随网卡附的程序(通常是DOS程序)取消PnP机制,并给网卡设置一个固定的I/O地址和IRQ。确定你使用的I/O地址在启动时被驱动程序检测到,如果使用模块,则在<CODE>/etc/conf.modules</CODE>中使用<CODE>io=</CODE>选项提供地址。你也可以进入BIOS/CMOS设置,把IRQ从PnP改为Legacy-ISA(如果你的计算机有此选项的话)。<P>注意,运行基于DOS的配置程序一般并不需要安装DOS。可以用DOS软盘启动,然后从提供的软盘上运行它们就可以了。你可以自由地下载OpenDOS和FreeDOS。<P>如果需要使用PnP以与其它操作系统兼容,你就得每次启动时都使用Linux的isapnptools包配置网卡。你还需要确定为网卡选择的I/O地址被驱动程序检测到,或用<CODE>io=</CODE>选项提供I/O地址。<P><P><H3>启动时没有检测到以太网卡。</H3><P><P>出现这个问题的常见原因是人们使用的内核不支持特定的网卡。对于模块化的内核,这一般说明要求的模块尚未被载入,或者需要用模块选项指定其I/O地址。<P>如果你使用的是模块化的内核,就象大多数用Linux发行版安装的那样,试著用一下该发行版的配置工具来选择网卡所用模块。对于ISA网卡一个较好的主意是,确定网卡的I/O地址,如果配置工具要求选项则把它作为一个选项(如<CODE>io=0x340</CODE>)加进去。如果没有配置工具,那么你需要在<CODE>/etc/conf.modules</CODE>里添加正确的模块名称(及选项)-- 阅读<CODE>man modprobe</CODE>以了解更多的细节。<P>如果你使用的发行版套件里的预编译内核,那么查看文档以确定你安装的是哪一种内核,以及是否支持你所用的网卡。如果不支持的话,要么试著找一个支持你网卡的内核,要么自己生成一个内核。<P>只保留所需的驱动程序生成自己的内核是个聪明的主意,因为这会减小内核大小(为应用程序保留宝贵的RAM!),减少打扰敏感硬件的设备检测数目。生成内核并不象听起来那么复杂。你只需要对一些有关你想要哪些驱动程序的问题回答是或不是,其它的事都由程序完成。<P>另一个主要原因是其它的设备占用了网卡所需的部分I/O空间。大多数网卡在I/O空间里占用了16或32个字节。如果你的网卡设在<CODE>0x300</CODE>并需要32个字节,那么驱动程序就要求<CODE>0x300-0x31f</CODE>。如果某个其它设备驱动程序注册了哪怕其中一个端口,驱动程序就不会对该地址进行检测,而是静悄悄地进入下一个检测地址。所以,在启动之后,运行一下<CODE>cat /proc/ioports</CODE>以确定网卡要求的全部I/O空间都是空的。<P>还有一个问题就是网卡跳到的I/O地址不是缺省检测的地址。每个驱动程序的检测地址列表可以很容易地在驱动程序源码中的文本注释里找到。即使网卡设定的I/O地址不在检测地址列表上,你也可以在启动时用<CODE>ether=</CODE>命令提供(对内建驱动程序),参见<A HREF="Ethernet-HOWTO-10.html#lilo" tppabs="http://www.linux.org.tw/CLDP/gb/Ethernet-HOWTO-10.html#lilo">传递以太网参数...</A>。模块化的驱动程序可以在<CODE>/etc/conf.modules</CODE>里使用<CODE>io=</CODE>选项指定一个非缺省检测的地址。<P><P><H3><CODE>ifconfig</CODE>报告了错误的网卡I/O地址。</H3><P><P>这不可能。你只是理解错误。这<EM>不</EM>是一个Bug,而且报告的数字是正确的。这只出现在某些基于8390的网卡上(如wd80x3、smc-ultra等),实际的8390芯片位于第一个给定I/O端口加上一个偏移量处。此偏移量保存在<CODE>dev->base_addr</CODE>里,也就是<CODE>ifconfig</CODE>报告的值。如果你想看到网卡使用的全部端口,试一下<CODE>cat /proc/ioports</CODE>以得到想要的数字。<P><H3>PCI机器探测到了网卡,但驱动程序检测失败。</H3><P><P>某些PCI的BIOS在上电时没有启用所有的PCI卡,特别是在使用了“PNP OS”的BIOS选项情况下。这一特性是为了支持当前依然使用某些实模式驱动程序的Windows版本。或者禁用该选项,或者升级到一个可以启用被禁用网卡的新驱动程序。<P><H3>PCI机器里的共享内存ISA网卡不工作(<CODE>0xffff</CODE>)</H3><P><P>这常表现为显示读出大量<CODE>0xffff</CODE>值。除非你正确地设置了PCI ROM BIOS/CMOS SETUP配置,任何类型的共享内存网卡都不会在PCI机器上工作。你必须把网卡所用内存区域设置为可以从ISA总线访问共享内存。如果你不知道哪些设置有用,那么询问你的供应商或者当地的计算机大拿。对于AMI BIOS,在“Plug and Play”部分有一个“ISA Shared Memory Size”和“ISA Shared Memory Base”的设置。对于类似wd8013和SMC Ultra的网卡,把共享内存的大小从缺省的禁用改为16kB,并把基址改为网卡的共享内存地址。<P><P><H3>网卡看来在发送数据,但没有收到过数据。</H3><P><P>执行<CODE>cat /proc/interrupts</CODE>。这样产生的列表会显示网卡产生的所有中断事件的实时数目。如果为0或在试图使用网卡时没有增加,那么可能是与计算机安装的其它设备发生物理中断冲突(无论其它的设备是否安装/提供了驱动程序)。把其中一个设备的IRQ改为未使用的IRQ。<P><P><H3>异步传输模式(ATM)支持</H3><P><P>Werner Almesberger在进行Linux的ATM的支持工作。他使用的是Efficient Networks的ENI155p板(<A HREF="javascript:if(confirm('http://www.efficient.com/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.efficient.com/'" tppabs="http://www.efficient.com/">Efficient Networks</A>)和Zeitnet的ZN1221板<A HREF="javascript:if(confirm('http://www.zeitnet.com/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.zeitnet.com/'" tppabs="http://www.zeitnet.com/">Zeitnet</A>)。<P>Werner说ENI155p的驱动程序已经很稳定了,而ZN1221的驱动程序还没有完成。<P>去下面的连接查看一下最新的进展:<P><A HREF="javascript:if(confirm('http://lrcwww.epfl.ch/linux-atm/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://lrcwww.epfl.ch/linux-atm/'" tppabs="http://lrcwww.epfl.ch/linux-atm/">Linux ATM Support</A><P><H3>吉比特以太网支持</H3><P><P>Linux支持吉比特以太网吗?<P>是的,目前至少已经有了两个驱动程序。在v2.0和v2.2内核里有一个Packet Engines G-NIC PCI吉比特以太网适配器的驱动程序。驱动程序的更多细节、支持和更新可访问:<P><CODE>http://cesdis.gsfc.nasa.gov/linux/drivers/yellowfin.html</CODE><P>v2.2内核提供的<CODE>acenic.c</CODE>驱动程序可用于Alteon的AceNIC吉比特以太网卡和其它如3Com的3c985一类的基于Tigon的网卡。这个驱动程序还可以用于NetGear的GA620,但还需要证实。<P><H3>FDDI支持</H3><P>Linux支持FDDI吗?<P>是的。Larry Stefani为v2.0编写了Digital的DEFEA(FDDI EISA)和DEFPA(FDDI PCI)网卡驱动程序。它被包含进v2.0.24内核。目前还没有其它的网卡被支持。<P><H3>全双工支持</H3>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -