安裝配置Linux網路卡(轉)

gugu99發表於2007-08-10
安裝配置Linux網路卡(轉)[@more@]

  Linux對網路卡的支援需要透過核心,早期,許多人使用編譯時直接加入網路卡支援的辦法

  ,不過隨著網路卡種類的增加,已經很少有人使用這種吃力不討好的辦法了。現在,大部

  分人都採用加入網路卡模組的方法來驅動網路卡。

  為了加入網路卡,首先必須知道網路卡的型別,Linux對那些破破爛爛的“NE 2000相容”

  的網路卡的支援倒確實是不錯的,但是對於百兆的網路卡就不太好說了,反正你總可以透過

  實驗選出合適的產品。

  首先得一條是瞭解網路卡的晶片型號,由於硬體廠商通常不會提供網路卡的Linux驅動程式

  ,你必須自己為網路卡選擇正確的驅動程式。許多人喜歡說“啊,就是D-Link的”,這種

  說法大概是在Linux中你能聽到的最令人憤怒的說法了,跟那個著名的“在空中”的回答

  差不多,絕對正確而絕對毫無意義。

  你可以首先看看你的網路卡屬於哪一個型別,如果是3COM 3C系列的“骨灰級”產品,你

  根本不需要進一步瞭解型號,Linux中肯定會有對應的驅動程式。到/lib/modules/x.x.

  xx/net 下(x.x.xx是裡Linux核心的版本號)看一看,確定一下到底應該使用那一個驅動

  程式。例如,3C509的驅動程式就是3c509.o

  如果是ne2000 相容型,那麼一般來說只要使用ne2000的驅動程式就可以了,這個驅動

  程式的名字是ne.o,另外還有許多10兆的PCI網路卡屬於"NE2000-PCI"相容型別,對應的驅

  動程式名字是ne2k-pci.o。

  如果都不是,那麼你就需要猜測一種合適的網路卡型號了,網路卡的主控晶片(通常是最

  大的一塊)上面會標出晶片的型號,然後到/lib/modules/2.2.14/net(我使用2.2.14的

  核心,你的核心版本可能會不一樣)下看一看,找到合適的驅動程式名字。

  下一步是對網路卡進行測試,例如,我的網路卡驅動程式是rtl8139.o,是一塊PCI的100M

  網路卡,因此執行

  /sbin/modprobe rtl8139

  路徑名/lib/modules/2.2.14/net和副檔名.o可以省略。

  在我們這個情況下,這個命令直接返回,不產生任何輸出,表示這個模組已經正確地

  裝入核心儲存區。如果你想確定一下,你可以用dmesg命令看一下核心輸出,會有這樣的

  內容:

  rtl8139.c:v1.07 5/6/99 Donald Becker

  vers/r

  tl8139.html

  eth0: RealTek RTL8139 Fast Ethernet at 0xd800, IRQ 19, 00:50:ba:d0:8d:ec.

  這表示網路卡已經被啟用了。

  有些ISA網路卡(特別是ne2000相容網路卡)需要顯式給出一些配置引數,例如,要啟用n

  e2000相容網路卡,需要給出I/O地址,可以使用這樣的形式:

  /sbin/modprobe ne io=0x300

  這裡假定ne2000相容網路卡位於I/O地址0x300處。IRQ不需要指定,Linux會給出正確的

  值。

  對於特定的網路卡,具體的引數格式可以參考驅動程式的原始碼。

  假如網路卡驅動程式不對或者引數有問題,就會顯示出錯資訊:

  [openlab]# /sbin/modprobe 3c509

  /lib/modules/2.2.14/net/3c509.o: init_module: Device or resource busy

  在某些系統中,使用/etc/conf.modules檔案來設定網路卡的預設引數,例如:

  $cat conf.modules

  alias eth0 ne

  options ne io=0x300

  options 命令為模組提供預設引數。以後只要執行/sbin/modprobe ne或者/sbin/mod

  probe eth0就可以自動使用引數了。

  假設你透過上面的過程已經確定了網路卡驅動程式,測試也正確,那麼你就應該把它放

  到系統啟動指令碼中去。前面我們已經提到過,對於RedHat或者Slackware,使用者自選的模

  塊檔案通常可以放在/etc/rc.d/rc.modules中,內容就是簡單的寫上上面用來載入模組

  的命令,例如,我的系統中有兩片網路卡,分別使用rtl8139和ne2000驅動程式,ne2000兼

  容網路卡的I/O地址是0x300,那麼,rc.modules的內容就是

  [openlab]# cat /etc/rc.d/rc.modules

  /sbin/modprobe rtl8139

  /sbin/modprobe ne io=0x300

  不要忘了設定這個指令碼的可執行屬性。當系統重新啟動時,它會自動執行這個指令碼,

  你可以在系統啟動之後用dmesg看看執行是否正確。如果你的Linux啟動指令碼並不使用rc

  .modules,你總可以把它放到rc.sysinit或者rcS裡面去。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939802/,如需轉載,請註明出處,否則將追究法律責任。

相關文章