?? 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 + -