网卡设置指南( 二 )


TCP/IP networking (CONFIG_INET) [Y/n/?] Y
Network device support (CONFIG_NETDEVICES) [Y/n/?] Y
Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [Y/n/?] Y
PCI Ethernet adapters (CONFIG_NET_PCI) [N/y/?] Y/* 如果是PCI网卡的话*/
方式2为大多数发行版所采用,而且可以在安装时设置网卡,选用相应的网卡即
可 。值得指出的是,安装时很多网卡没有列出,但并不代表 Linux 本身不支持,详
见 EthernetHOWTO 。这时您可以查阅网卡及手册,会发现其使用何种芯片,可以用安
装时网卡列表中同种芯片的网卡试试 。通常,网卡手册中会说明该网卡兼容或类似某
种通用网卡 。很多10M网卡兼容 NE2000,比如我的 D-LINK DE220,这时可以选
NE2000 试试 。
然而,很多 PNP 的网卡并不能被检测到,例子还是我的 DE220 。据说在 Linux
环境下可以通过 isapnp 设置,我没试过,详情请 man isapnp 吧 。为免麻烦,我使
用了另一种方法:在 DOS 下使用 DE220 的驱动程序(可以在其网站下载到),屏蔽掉
PNP 功能,并设定“IO=0240h-025fh”,“IRQ=11” 。然后再进行安装 。
糟糕的是,有部分网卡并非完全兼容 NE2000,例子又是我的 DE220,这类网卡
在 EthernetHOWTO 中被称为 bad NE2000 clone,他们采用了非标准的标识方法以
致 Linux 的 NE2000 驱动不能自动检测到它 。我的 RedHat 6.1 就是这样,导致安
装后找不到网卡,必需手动进行配置了 。
解决这个问题需要向内核传递 IRQ 号及 IO 端口,这两项的具体数据可以从
WIN9X 的设备管理中查到,最笨却最稳妥的是如前哪样用网卡 DOS 下的驱动程序设
定好,记下来 。Linux 下输入的数据格式类似 C 语言,IO采用十六进制,即 0xNNN,
其中 NNN 是 IO 中 0XXXh-0XXXh 的前一个数的“XXX”部分 。IRQ 可直接用十进制 。
针对我的 DE220,就是“0x240”和“11”了 。配置方法如下:

如果采用方式1,必须直接将 IRQ 号及 IO 端口传递给内核——在系统启动出现
Boot: 的时候,输入“linux ether=IRQ,IO,eth0” 。具体针对我的 DE220 就是这样:

Boot: linux ether=11,0x240,eth0

通常传递了 IO 地址系统就可以检测到网卡了,因此也可以输入:

Boot: linux ether=0,0x240,eth0

IRQ 或 IO 处可以输零(如上),是告诉内核自动检测该项 。如果这样可以了,可以
通过 LILO 每次启动时自动把以上参数传递给内核,具体方法是:

编辑 /etc/lilo.conf,加入:
append="ether=0,0x240,eth0"
然后:
# lilo/* 重新加载 lilo */

append 是告诉 LILO 把引号中的字符串传递给内核 。使用 Loadlin.exe 的道理与此
类同,不过我没试过,请查阅 Loadlin 的手册(一般随程序提供) 。

如果采用方式2,就需要手工加上相应的 modules :
a.) 查看目录“/lib/modules/内核版本号/net/”,其中内核版本号部分可能每台机器
都不同,看你自己的决定吧 。该目录下文件格式如 *.o,分别代表不同网卡的
modules,记下你自己网卡相应的文件名,如 DE220 兼容 NE2000,就是 NE2000
的 ne.o 了 。
b.) 编辑文件 /etc/conf.modules,如没有就建一个 。加入以下两行:
alias eth0 “网卡相应 module 的文件名”
options 网卡类型 io=0xNNN
针对我的 DE220,这两行就应该是这样:
alias eth0 ne.o
options ne io=0x240
c.) 重启动后,我的 DE220 就可以找到了 。

启动后,查看 /proc 下的 ioports 和 interrupts 文件,如果网卡设置成功,
应该有相应描述,如我的 DE220 使用 NE2000 的驱动,可以看到:

推荐阅读