📄 hardware-netcard2.html
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Author" content="Edward Fu">
<meta name="GENERATOR" content="Mozilla/4.05 [zh-CN] (X11; I; Linux 2.1.127 i686) [Netscape]">
<title>Freesoft Linux FAQ -- 配置网卡之二</title>
</head>
<body>
发信人: Farmer (阿东), 信区: linux
<br>标 题: [减少重复问题]Linux下新手装网卡指南 fro
<br>发信站: 饮水思源站 (Mon Nov 2 23:18:13 1998) , 转信
<p>发信人: yuhj (勇 梦回唐朝), 信区: Linux
<br>标 题: [减少重复问题]Linux下新手装网卡指南
<br>发信站: BBS 水木清华站 (Fri Oct 30 13:44:24 1998)
<p>在第n次看到"如何在Linux下配置我的XXX网卡"这样的问题之后
<br>我觉得有必要把一些最基本的Linux网卡安装的知识总结一下,
<br>省省大家的时间.以后有空再写声卡的和显卡的.
<p>本文主要面对新新手,不对任何高难度问题进行讨论,包括双网卡,
<br>正常编译了driver也不能用的古怪网卡等.本文的主要目的是告诉
<br>新新手,Linux下网卡是怎样被驱动的.本文不讨论安装Linux
<br>的问题,假设用户已经成功安装了Linux,就等驱动网卡.
<p>第一步--不要再问"Linux下能够装XXX卡么?"这样的问题,Linux是个
<br>开放的系统,借助于网络上无数的高手,几乎所有的硬件都能找到支持.
<p>首先需要指出,Linux下对网卡的支持往往是只对芯片的,所以对
<br>某些不是很著名的网卡,往往需要知道它的芯片型号以配置Linux.
<br>比如我的Accton 网卡,就不存在Linux的driver,但是因为它是NE2000
<br>兼容,所以把它当NE2000就可以在Linux下用了.所以当你有一块
<br>网卡不能用,在找Linux的driver之前一定搞清楚这个网卡用
<br>的什么芯片,跟谁兼容,比如3c509,ne2000,etherexpress等等.
<br>这样的型号一般都在网卡上最大的一快芯片上印着,抄下来就是了.
<p>最普遍使用也许是最好配的网卡也许就是Ne2000兼容卡了,我用它
<br>来作例子.注意实际上很多廉价卡都是NE2000兼容的.
<p>对于NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式.
<br>很多现在的网卡缺省都是PnP模式,这在95下的确能减少很多麻烦,
<br>但是Linux不支持,所以Linux下必须是Jumpless模式.一般所有
<br>网卡都有带的驱动盘和DOS下可执行的一个设定程序,用该
<br>程序将网卡设为Jumpless.当然如果是老卡,本来就不是PnP,不用
<br>管这个.注意,这里主要是ISA的NE2000,关于PCI的NE2000,需要
<br>另外设置.
<p>下来就是得弄清楚网卡的IO地址和IRQ.这是两个非常重要的网卡
<br>驱动参数.这个最简单就是还用那个网卡的设定程序,设定完
<br>Jumpless之后肯定有地方可以软设定IO和IRQ.老一些的卡得跳
<br>线,道理一样.另外一个方法是如果网卡能在95或NT下工作,去
<br>95下的control panel里看这个卡的properities,查IO和IRQ.
<br>
<p>OK,到现在,你知道了你的卡是NE2000兼容,知道了它是在Jumpless
<br>模式下,知道了IO地址和IRQ,就可以安装了.
<p>Linux系统与95这些系统不同的一点是它是运行在"内核"上的,
<br>所谓内核,就是把系统最核心的部分孤立出来编程,将各种
<br>驱动程序,内存控制等部分编在一起.于95不同,Linux得内核是
<br>公开的,经常更新的,这样不需要更新整个系统,用户只需要
<br>把最新的内核原程序download下来编译,就可以得到一个
<br>支持更多硬件,更多文件系统,更安全的系统了.所以需要指出,
<br>Linux的Driver很少有象95下那样是"安装"的.Linux下的driver
<br>大多数都是以C程序形式发布,或者在内核里,或者需要用户
<br>自己修改内核代码.总之要让Driver运行,得重新配置编译内核.
<br>如何操作Linux内核是学习Linux中非常重要的一节.Linux的新手
<br>最好在这里多下点功夫搞清楚.有关核心的问题建议看Linux How To
<br>文档中的kernel How to.
<br><font color="#FF0000">注:其实也不一定要去编译内核,把驱动程序编译成模块,动态加载也可以.</font>
<br> <font color="#FF0000">不象瘟都死这种破东东,干个什么事情都要重新启动.</font>
<p>Anyway, Linux已经装好了,那么用的是什么内核呢?一般缺省的Linux
<br>内核是从安装盘上来的.那个内核一般包括大多数硬件的驱动
<br>程序,比如Ne2000卡.所以未一定要重新编译内核,也许现有的内核
<br>就可以驱动.所以下一步就是把网卡插入计算机,看看Linux能否
<br>发现它.这可以从Linux的启动画面中看出来,如果你发现如下的一行:
<br>eth0:NE2000 card found at 0x300 using IRQ 05
<br>那就说明Linux发现了NE2000卡,在IO 300, IRQ 05的地方.
<p>如果Linux没有发现你的网卡,但是你确认你网卡得型号和参数,
<br>比如我的网卡是NE2000兼容,IO 0x300, IRQ 05.那么可以修改
<br>Linux启动文件专门搜索这个设备.这个文件在/etc/rc.d/rc.modules里
<br>对于NE2000,是这样的:
<br>#/sbin/modprobe ne io=0x300 # NE2000 at 0x300
<br>将最前面的#号去掉,再启动机器试试.
<p>另外该文件里还可以发现对其它系列网卡比如3C系列的autoprobe.
<p>OK,到现在启动屏幕上也没有出现
<br>eth0:NE2000 card found at 0x300 using IRQ 05
<br>这样的好消息,那么你就得编译内核了.
<p>编译内核之前一定要搞清楚的是网卡的芯片号.比如我有一块SMC的网卡,
<br>但是我是无法在Linux的内核配置菜单里找到SMC这样的字样的,Linux
<br>不是win95,有那么长一串厂商牌号等.我在这个SMC的卡上找到了
<br>digital 21140-AE的字眼,于是我知道这个卡用的是DEC 21140-AE芯片,
<br>于是按照这个寻找,就找到了驱动.
<p>知道了芯片类型,或者兼容类型(比如ne2000)就可以开始编译内核了.
<br>具体的针对不同系统的内核编译推荐先看看有关内核编译的文章,这里
<br>不多作介绍.
<p>进入/usr/src/linux
<br>运行make menuconfig进入菜单配置内核.找到Network Device Support.
<br>选则EtherNet,再选则相应的芯片号.如果是ISA系线的NE2000,就选则
<br>other ISA cards,选则NE2000/NE1000 ISA support.如果是PCI的网卡,就
<br>选则PCI ethernet adapters.注意,PCI卡未必都能这样驱动,很多都不
<br>行,得另外找driver.比如Intel PCI EtherExpress Pro 100等.
<p>有关其它选项希望能多自己摸索.多看看help和how-to.
<p>配置完内核后,运行make dep;make;make zlilo就可以了.如果内核选项过
<br>多会出现过大的情况而无法安装.那么需要把一些不必要的驱动去掉或编译成模块.
<br>
<p>一般这样之后再启动就可以发现网卡了.驱动了网卡,下一步就是设定
<br>TCP/IP这些东西.这就不是这里的内容了.
<br>
<p>我的经验,Linux下NE2000兼容卡都比较好设.3c系列的卡也都有支持.
<br>至于其它卡比如我的DEC 21140就麻烦很多.另外有些卡即使用某种芯片
<br>也未必就能用这个芯片的驱动,这种情况就是有驱动程序也不能用,就需要
<br>上网查了.
<p>有关Intel Etherexpress系列卡的配置.Linux内核中有Etherexpress 16的支持,
<br>但没有其它卡的driver.在http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html里
<br>有关于EtherExpress 100B pro的讨论.在那里可以download到一个c源码的
<br>驱动程序,编译进内核就可以了.
<p>那么,如果以上都试过了,而你的网卡的确还是不能认,那么你需要上网查driver了.
<br>在网上查东西是一门看起来简单实际上极体现经验的学问.建议寻找Linux
<br>网卡的driver从http://cesdis.gsfc.nasa.gov/linux/drivers/开始.
<br>在那里可以发现的针对网卡得驱动有:
<p>DEC DC21*4* Tulip chip based cards
<br>3Com PCI Etherlink PCI and EISA cards
<br>Intel EtherExpress Pro100B, Pro100+ and Pro10+ PCI
<br>3c515 ISA Fast Etherlink card
<br>SMC EtherPower II (EPIC/100 83c170 chip) driver.
<br>RealTek RTL8129/8139 driver.
<br>Lite-On lc82c168 PNIC driver (now merged with the Tulip driver).
<br>Macronix MX98713 and ASIX experimental drivers are now merged with
the Tulip driver).
<br>VIA Rhine (VT86C100A and 3043) driver (now released).
<br>Winbond w89c840 driver (beta test). Note: this driver was written without
official documentation.
<br>TI ThunderLAN driver (external link -- Caldera/James Banks).
<br>Hewlett Packard 100VG driver updates (external link -- Yaroslav).
<p>Intel EtherExpress Pro/10 PCI driver (remote link).
<br>3c509/3c529/3c579 ISA/MCA/EISA EtherLink III driver update. The driver
now detects multiple cards when loaded as a module.
<br>AMD LANCE/PCnet driver update. The driver is now usable as a loadable
module.
<br>Cirrus/Crystal/IBM CS8900 series driver (remote link).
<br>PCI NE2000 driver (local page)
<br>PCI NE2000 updates (remote link)
<p>Intel Etherexpress Pro 100,
<br>DEC 21X4* based board,
<br>3Com EtherLink III PCI/EISA (3c590 3c592,3c595,3c597,3c900 3c905)
<br>Intel EtherExpress Pro/10 PCI9 With i82596 Chip)
<br>TI ThunderLan
<br>PCI NE2000
<br>Packet Engines "Yellowfin" G-NIC
<br>SMC EtherPower II (EPIC/100 83c170 chip)
<br>RealTek RTL8129/8139
<p>同时还有一个Ecom EtherLink III family 的setup程序,没有用过,也许不错.
<br>
<p>如果这里你还是没有找到相应的网卡驱动,那么就去search了.
<br>我推荐的方法是上Internet Newsgroup查.因为你绝对不是第一个在Linux
<br>下用这个网卡的人,你的问题绝对有人在网络上问过.而且有人回答过.
<br>那么问题就是如何找到他. 最简单的方法是打开netscape 到www.dejanews.com
<br>去.这里的关键是关键字的选则,比如我有个卡的芯片是DEC的21140,那么我考虑到
<br>21140已经是个长数字,于是输入21140 linux来搜索,这里Linux是必须的,否则
<br>看到上千篇关于21140 win95的驱动问题,是不是很烦?结果21140 linux
<br>很快就找到了有关文章.
<p>如果这样也找不到驱动程序,或者有了驱动程序不知道怎么用,用了出问题,再
<br>来版上问.记得把具体的网卡型号,芯片型号,你作过什么努力,什么问题等都
<br>写清楚,以便于他人帮助.
<p>Remember: God helps those who help themselves.
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -