问题:在用v2.0.x启动时没有检测到PCI NE2000兼容网卡。
原因:在v2.0.30之前的ne.c驱动程序只知道基于RealTek 8029的兼容网卡的PCI ID号。在此只后才出现了使用其它PCI ID号的PCI NE2000兼容网卡,所以驱动程序无法检测这些网卡。
解决方案:最简单的方法是把Linux内核升级到v2.0.31以上版本。它可以识别五种不同的NE2000-PCI芯片的ID号,在启动或载入模块时自动检测到它们。如果你升级到了2.0.34以上版本,会有一个比原先的ISA/PCI驱动程序稍小但更高效的PCI专用NE2000驱动程序。
问题:启动时PCI NE2000兼容网卡被报告为ne1000(8比特网卡!)或者在v2.0.x下载入ne.o模块不起作用。
原因:某些PCI兼容网卡不支持字节存取(因此不是百分之百的兼容NE2000)。这使检测时被误认为NE1000网卡。
解决方案:你需要升级到v2.0.31以上版本。现在的驱动程序会检测到这种硬件Bug。
问题:PCI NE2000网卡的性能很差,即使按照性能技巧章节所说的减小了窗口大小。
原因:十多年前设计和出售的初始8390芯片的技术数据手册上提到,为了得到最高的可靠性,在每次写操作之前需要一个读操作。驱动程序能够轻易地做到这一点,但从v1.2内核时代起,缺省情况下取消了这一操作。有一个用户报告说重新使用这一“错误的特性”就可以改善廉价的PCI NE2000兼容网卡的性能。
解决方案:由于只有一个用户提出报告把它作为解决方案,不要对此寄予太大的希望。重新使用写之前的读操作可以简单地编辑linux/drivers/net/下的驱动程序文件,取消包含NE_RW_BUGFIX的那一行的注释,然后重建内核或载入相应的模块。如果这样确实有效,请给我发一封e-mail,描述性能上的差异和你所使用的网卡/芯片类型。(对ne2k-pci.c驱动程序也可以如法炮制。)
问题:ne2k-pci.c驱动程序对PCI NE2000网卡报告诸如timeout waiting for Tx RDC错误信息,无法正常工作。
原因:你的网卡或网卡到PCI总线的连接无法处理该驱动程序使用的长字I/O优化。
解决方案:首先,检查BIOS/CMOS设置,看看与PCI总线相关的计时对于可靠的操作是否过于严格了。否则,使用ISA/PCI的ne.c驱动程序(或者删除ne2k-pci.c中的#define USE_LONGIO),使你的网卡可用。
问题:没检测到ISA的即插即用NE2000网卡(如RealTek 8019)。
原因:初始的NE2000特性不支持即插即用,因此Linux的NE2000驱动程序也不支持即插即用。
解决方案:使用网卡所附的DOS配置盘取消PnP,并为该网卡设置一个指定的I/O地址和IRQ。在/etc/conf.modules里增加这样的一行options ne io=0xNNN,这里0xNNN是你为网卡设置的16进制I/O地址。(假设你使用的是模块化驱动程序;否则,在启动时使用一个ether=0,0xNNN,eth0参数。你也可以进入BIOS/CMOS设置,把IRQ从PnP改为Legacy-ISA。如果你需要为兼容其它的操作系统而保留PnP设置,那么你可以看一下isapnptools包。使用man isapnp看看它是否已经安装在你的系统上了。如果没有,浏览一下下面的连接: