以太網-HOWTO包括了該買什么網卡與不該買什么網卡﹔如何設置網卡,怎 樣運行多個網卡,以及其它常見錯誤和問題。它包含了目前所有最常見網 卡能夠得到支持的細節資料。
它不包含有關軟件方面的內容,因為NET-3 Howto中包含了這些內容。
還要注意這里不包括(或者至少不應當包括)那些非Linux特有的有關以太
網的一般問題的解答。對于那些問題,可以參考comp.dcom.lans.ethernet
的FAQ中的大量資料,與所有其它新聞組FAQs一樣通過FTP到rtfm.mit.edu
獲取。
本修訂版覆蓋了Linux 2.2.7及其之前的內核發行版本。
以太網-HOWTO的作者為:
Paul Gortmaker, p_gortmaker@yahoo.com
原始的ASCII版本的以太網-HOWTO的主要資料來源為:
Donald J. Becker, becker@cesdis.gsfc.nasa.gov
感謝他編寫了Linux目前使用的絕大多數以太網卡驅動程序。他也是最初的 NFS服務器的作者。謝謝Donald!
Copyright (c) 1993-1999 本文的版權所有人為Paul Gortmaker。請閱讀 本文檔結尾處的聲明與版權信息( copyright) 以了解有關分發本文及通常的“我們不對你試圖破壞......的行為負責” 之類的法律信息。
本文檔的新版本可以從如下主頁獲得:
希望采用FTP方式或者希望獲取非HTML格式文檔的可使用以下站點:
這是“官方”站點 - 也可以在其它各種Linux WWW/ftp鏡像站點找到本文 檔。在有了新資料或新驅動程序時本文檔將進行更新。如果你閱讀的文檔 已經存在6個月以上了,那么你需要檢查一下是否已經有更新過的版本。
本文檔有多種格式(postscript,dvi,ASCII,HTML,等等)。推荐用 HTML格式瀏覽(通過WWW瀏覽器)或Postscript/dvi格式瀏覽。這兩種格式 都包含有普通文本ASCII格式無法提供的交叉引用功能。
由于本指南越來越大,你可能不希望花一個下午從頭讀到尾。而令人高興 的是你不必閱讀全部內容。HTML和Postscript/dvi版本都有內容列表, 可以幫助你更快地找到所需的內容。
可能你是由于無法使網卡工作,而且不知道該怎么做或者如何檢查,才來 閱讀本文檔的。下一節( 幫幫我 - 網卡沒反應!) 就是針對Linux初學者并給出正確的指引。
經常有一些問題被不同的人問了一遍又一遍。可能你碰到的某個問題 就是常見問題之一,而且在本文檔的FAQ部分 ( 常見問題)已經有了答案。每個人在發文尋求幫助 之前都最好先看一下這一節。
如果你還沒有網卡,那么你可能想從決定買網卡開始。 ( 該為Linux買什么網卡?)
如果你已經有了一塊以太網卡,但不能確定是否可以在Linux上使用它,那 么你可能想讀一下包含每一個制造廠家及其網卡的特定信息的章節。 ( 有關銷售商/制造廠家/型號的信息)
如果你對Linux設備驅動程序的一些技朮細節感興趣,那么你可以瀏覽有此 類信息的章節。 ( 技朮信息)
好,別緊張。下面就告訴你如何解決問題,即使你此前對Linux或以太網硬 件一無所知。
首先你需要弄清楚你的網卡類型,Linux是否有此類型網卡的驅動程序。主 機在控制不同的網卡時使用的方法一般也不一樣,而Linux驅動程序(如果 有的話)就以允許Linux使用此卡的格式包含了這樣的控制信息。如果你沒 有手冊一類的東西讓你知道網卡的類型,那么你可以嘗試處理“神秘”網 卡的章節 (參考章節: 識別未知網卡)。
現在你知道了你的網卡類型,閱讀特定網卡章節中有關你的網卡的細節(參 考章節: 有關銷售商/制造廠家/型號的信息), 那里以字母順序列出了網卡制造廠家、各自的類型號以及是否有Linux驅動 程序。如果在列表中被表明“不支持”,你就可以放棄了。如果從中找不 到你的網卡,那么看一下你的網卡手冊是否說它與某個已知網卡類型“兼 容”。例如至少有几百種網卡與原來的Novell NE2000設計兼容。
假設你已經發現了你的網卡有Linux驅動程序,現在就找到并利用它。因為 Linux有你的網卡的驅動程序并不意味著它存在每一個內核中。(內 核是啟動時最先載入的操作系統核心,包含各種硬件的驅動程序,以及其 它等等。)可能只有很少几個預先生成的內核,和一大批較小的作為分立 模塊的驅動程序,或者是許多的內核,覆蓋了大量內建驅動程序的組合, 這都完全取決于是誰生成了你所使用的Linux發行版本。
現在的大多數Linux發行版本都提供大量較小的作為分立模塊的不同驅動程 序。需要的模塊通常可以在啟動過程的后期載入,或者在存取特定設備時 以命令的形式載入一個驅動程序。你需要在內核啟動后把該模塊加載到內 核上。查閱你所用的發行版本中有關安裝和使用模塊的信息,并參考本文 檔的有關模塊章節。 ( 把以太網驅動程序作為模塊使用)
如果你沒有找到包含你的網卡驅動程序的已生成內核,也沒有找到該驅動 程序的模塊形式,那么可能是你的網卡不夠常見,而且需要你自己生成一 個包含該驅動程序的內核。只要你已經安裝了Linux,生成一個定制的內核 一點兒都不難。你只要對內核需要包含些什么回答是或者不是,然后讓它 生成就行了。有一個Kernel-HowTo可以幫助你。
此時你還需要以某種方式啟動內建了你的驅動程序的內核,或者以模塊的 形式載入驅動程序。大約人們碰到的問題有一半兒出在沒有以這種或那種 方式載入驅動程序,所以你會發現網卡現在工作了。
如果它還不工作,那么你需要証實一下內核確實檢測到了網卡。要做到這
一點,你需要在系統啟動以及所有模塊載入之后鍵入dmesg | more
。
這可以讓你查看啟動過程中內核所顯示的啟動信息。如果網卡被檢測到,
你可以從中找到以eth0
開頭的網卡驅動程序顯示信息,指出網卡
所使用的驅動程序名稱和硬件參數(中斷設置、I/O地址等等)。(注意:
在啟動時,Linux會列出所有系統中安裝的PCI卡,無論是否有驅動程序 --
不要把這個誤認為其后的驅動程序檢測!)
如果你沒看到這樣的驅動程序識別信息,那么驅動程序就沒有檢測到你的 網卡,這就是問題所在。查看FAQ( 常見問題)尋找 網卡未檢測到時該做些什么。如果你的網卡是NE2000兼容的,在FAQ中有一 些有關NE2000網卡檢測的技巧。
如果網卡被檢測到了,但檢測信息報告了一些錯誤,比如資源沖突,那么 驅動程序可能無法正常初始化,網卡還是不可用。這一類的最常見錯誤信 息也在FAQ中列出來了,并給出了相應的解決方案。
如果檢測信息看起來沒問題,那么再檢查一下驅動程序報告的網卡資源是 否與網卡的物理設置一致(網卡的物理設置或者是通過網卡上的跳線,或 者是網卡制造廠家提供的軟件工具完成。)它們必須完全一致。例如,網 卡的跳線或配置為IRQ 15,而驅動程序在啟動信息中報告為IRQ 10,那么 就會出問題。在FAQ中討論了最常見的驅動程序錯誤地檢測各種網卡配置信 息的情況。
現在你已經使你的網卡以正確的參數被檢測到了,但愿一切正常。如果還
有問題,那么或者是軟件配置有錯,或者是硬件配置有錯。軟件配置錯誤
就是在ifconfig
和route
命令中沒有設置正確的網絡地址,其處
理細節可以在Network HowTo和“Network Administrator's Guide”中找
到,它們可能都在你用來安裝的CD-ROM上。
硬件配置錯誤是某些資源沖突或忘記配置(即在啟動時沒檢測到驅動程序),
使網卡無法正常工作。通常可以用几種不同的方法來檢查。(1) 在
ifconfig
試圖打開設備來使用時報告出錯信息,如“SIOCSFFLAGS:
Try again”。(2) 驅動程序報告eth0
出錯信息(用
dmesg | more
查看)或者每次試圖發送或接受數據時奇怪的不一
致。(3) 鍵入cat /proc/net/dev
來顯示eth0
的errs、drop、
fifo、frame或carrier列中的非零數字。(4) 鍵入
cat /proc/interrupts
顯示網卡的零中斷計數。大多數典型的硬
件配置錯誤也在FAQ中進行了討論。
好吧,如果你現在還有麻煩,閱讀本文檔的FAQ,閱讀有關銷售商章節中有
關你的網卡的細節,如果問題還沒解決,那么你只好求助于某個相應
的新聞組了。在求助文章中請給出所有相關的細節資料,比如網卡商標、
內核版本、驅動程序的啟動信息、cat /proc/net/dev
的輸出、
清晰的問題描述,當然還有你在試圖解決問題時嘗試采用的方法。
你可能會奇怪有那么多的人發出諸如“Can someone help me? My ethernet doesn't work.”而沒有其它內容的無用信件。新聞組的讀者一般會忽略掉 這些愚蠢的信件,而詳細的有內容的問題描述則會讓“Linux大拿”立即指 出你的問題所在。