| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 操作系统 >> Linux教程 >> 文章正文  
 [图文]网卡设置指南
 

网卡设置指南

http://www.domcn.org  文章来源:本站收藏  点击数:

  关键字:网卡设置指南

索引关键词:[Linux,网卡,D-LINK DE-220/NE2000,D-LINK DFE530TX,双网卡]
最新修改日期:Oct. 9th, 2000
发布日期:19991119
版权协议:GPL


作者说明:
    本文现由我本人维护(mailto:wangdong@163.net),但我的知识、精力、时间都
不足,因此希望与有兴趣的朋友讨论并欢迎合作修改、整理。
    其实本文大多数信息可以在 EthernetHOWTO 中找到,初写这篇文章时Ethernet
HOWTO 中文版还没有正式发布,现在您可以在中国 Linux 论坛的“藏经阁”中找到
 EthernetHOWTO 中文版 8-)。

    本文的写作目的是给新手在设置网卡时提供一些帮助。我曾在设置我的 DE220 
网卡时遇到了一些问题,查询资料时发现很多书籍对此没有涉及;各大 BBS 及新闻
组问的很多,答的虽然大多正确,但办法五花八门,令人一头雾水。其实资料最全的
是在各种 HOWTO 中,可惜中文的却很少,所以写这篇文章,希望能节省大家的时间。

    本文只包含初步的信息,如希望详细了解这方面的内容,请参考各种 HOWTO:
BootpromptHOWTO  包含启动时如何向内核传递参数信息
ConfigHOWTO      包含 LILO 及 Loadin 如何使用的信息
EthernetHOWTO    包含以太网卡是否被系统支持(买网卡时可以参考),及如何设置
                 的信息,Linuxforum已推出中文版
KernelHOWTO      如何修补、编译内核
NET2-NET3-HOWTO  包含 TCP/IP 设置的信息,最新已是NET3-4-HOWTO,中文版正在

                 翻译
以上各种 HOWTO 英文版、中文版均可从中国Linux论坛
 (http://www.linuxforum.net) 的“藏经阁”中获得。
中文版也可从中文 LDP 处获得
http://www.linux.org.tw/CLDP/

    因为现在大多数实际应用的网卡都是以太网卡,如不是特别指明,本文中网卡即
指以太网卡。

    在 Linux 中,第一块网卡设备名为 eth0,以后依次为 eth1,eth2…… 但网卡
并不作为裸设备出现于 /dev 下,而是内核在引导时在内存中建立的。这就是说,应
该在系统引导时自动设置网卡。现在大多数发行版都是采用 module 的方式在系统引
导时设定网卡的,当然如果你清楚的知道你的网卡类型,也可以把相应的网卡驱动编
译进内核。

    Linux 的引导通常有以下几种方式,
A. 通过硬盘以 LILO 引导。优点是启动快而简捷;缺点是需要写硬盘主引导扇区,
在多系统共存时可能与 DOS/WIN 下某些防病毒软件冲突,而且很多人希望 LILO 默
认引导到 DOS/WIN 下,这就需要掌握 LILO 的配置方法,这对新手是有一点障碍的。
B. 通过软盘引导。虽然慢,但这是对原系统影响最小的办法。只要在安装时不安装
LILO,而做一张引导软盘就行了。这样想启动 Linux 时,只要插入软盘就可以了。
C. 通过 Loadin.exe 引导。Loadin.exe 是 DOS 下的程序,可以装入 Linux 的内
核,启动到 Linux 下。这样可以从 WIN9X 的纯 DOS 环境下直接启动 Linux 。当
然,需要学会如何配置,--很简单的哦。

    
    不管采用哪种方式引导,加载网卡的方式有两种:
1. 把网卡驱动编译进内核,引导时就加载。
2. 采用 modules 自动加载。

    采用方式1,则不可能支持所有的网卡,哪样内核会变成个庞然大物。因此很多
发行版为了灵活支持多种网卡,采用 modules 的方式。然而对于每一台特定的电脑
通常只需要支持有限的一种或几种网卡,因此可以采用方式1,不过需重新编译内核。
编译内核的方法详见 KernelHOWTO,编译时需要注意的是以下几项:
Networking support (CONFIG_NET) [Y/n/?] Y
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 的驱动,可以看到:
# cat ioports
...
0240-025f:      NE2000
...
# cat interrupts
...
11:     ...     XT-PIC  NE2000
...
然后就可以开始设置 TCP/IP 的参数了(本文不涉及)。值得指出的是,采用
ping 127.0.0.1 的方式只能测试内核是否支持网络及 lo 设备,并不能测试到 eth0 
是否工作,应该 ping 通实际的 IP 地址,才算 TCP/IP 配置成功。

    因为要配置路由器,我在另一台机器上实验了双网卡。采用了 Topstar TE2000 
系列,ISA 接口,使用8019芯片,兼容 NE2000。有的书上告戒不要使用两块相同的
NE2000 兼容网卡,我不知道原因,而我配置过程中也没发现问题。
    首先下载该网卡 DOS 下驱动/设置程序,用 DOS6.22 启动,运行设置程序并设定
IRQ,IO 地址。关键是两块网卡不能设成一样的以免冲突,同时注意不能同其它的设备
冲突。有在 DOS 下配置硬件经验的朋友当然轻车熟路了 8-)。用纸记录下来。编译内
核使之支持 NE2000 系列后,用新内核重启(RedHat 6.1),报告发现 eth0,没有提到
eth1(第二网卡)。
    接下来编辑 /etc/lilo.conf,加入:
append=ether=9,0x320,eth1     /* 我第二网卡设置为 IRQ=9,IO=0X320 */       
然后:
# lilo                          /* 重新加载 lilo */
    重启动,发现 eth0,eth1,成功!

    我在为一台机器配 D-LINK DFE530TX (10/100M)的网卡时,在其网站下找到了技
术支持文档,说的很详细(http://tsc.dlinktw.com.tw/nic/dfe530/RedHat6.pdf)。 
配置该网卡的朋友可以参考。
    由此也可以总结出在 linux 下配置网卡的终极大法:
A. 从买网卡开始,就应选择 Linux 支持比较好的品牌,可以参考 EthernetHOWTO,
   如果最新的 EthernetHOWTO 中对该品牌甚至芯片都是 unsupported,建议还是换
   一块吧。
B. 不要急于发问,先查查厂商的网站,厂商自己的解决方案可能是最好的,起码可
   以参考。
C. 建议屏蔽掉网卡的 pnp,客观的说,虽然人们对 M$ 有 Plug And Pray 的嘲弄,
   Linux 对 PNP 的支持还不如 M$。屏蔽掉网卡的 pnp,能省掉好多麻烦,起码在
   不成功时缩小了排错的范围。
D. 如果系统还不能找到网卡,可能需要去相应的 Linux 驱动下载点下载最新的驱动
   程序。然后按其说明安装。不过绝大多数比较新的发行版都带了很多,而且工作
   的相当好,比如 NE2000 兼容系列,完全可以使用 NE2000 的 ne.o。
E. 重新编译内核,详情请参考 KernelHOWTO,注意相关的网络选项一定要选定支持。
   而对应的网卡一定要选 y(编译进内核) 或 m(采用 module)。如果选 m,还需要
   编译 module。
F. 试验新内核或 module。如果还不能找到网卡,就参照上文所说的方法向内核或
   module 传递 IRQ 和 IO 等参数。
G. a.) 成功了!配置 LILO 或 /etc/conf.modules,使每次引导都可以自动加载网
       卡。
       恭喜!你的水平也上了一个台阶。
   b.) 还不行!你有三个选择:
       1.) 去各大 BBS,新闻组,求求各位大侠赐教,不过恐怕近期内不会有什么
           新招了。
       2.) 痛骂网卡的制造商,然后做个顺民,回去继续受 M$ 的压榨。
       3.) 苦练编程本领,自己写个驱动出来!为自由天地做个贡献!


网卡设置指南
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.