2012年2月11日 星期六

Linux平台底下如何安裝網路卡

Linux平台底下如何安裝網路卡


伺服器類
在指令提示模式下設定網路卡﹕
萬一增加的網路卡不能使RH8識別的話﹐我們就需要進行以下的步驟來進行設定。
檢視一下你的網路卡的晶片組的型號。這裡我們使用8139和8029系列的晶片組為例﹔因此﹐我們在這裡記下"PCI晶片組--8139"跟"ISA晶片組ne」。

檢視網路卡的類型﹐如: ISA界面還是PCI界面或是PCMCIA(我們會單獨一個章節來具體敘述PCMCIA界面的網路卡)。如果使用的是PCI界面的不需要下面的附加步驟﹔但如果使用的是ISA界面的卡子﹐我們需要進一步的設定﹕
找出 IRQ(中斷請求號中斷要求) 和 IOI/O(請求輸入/輸入位址)。通常現在較新的都沒有 jumper(跳線) 設定的了﹐廠家會提供一片磁碟供您設定資源數值的(假設我們這裡將 ISA 網路卡設定為 IRQ=3﹐IO=0x300)。如果沒有軟體設定的舊式網路卡﹐請檢視相關廠商預設的jumper用法以符合需要。

接著重新啟動電腦﹐進入 BIOS (Basic Input/Output System)﹐確定它們沒有和其他設備衝突(如﹕需要遮閉掉串行接頭的設定﹐即IRQ=3)﹐再進去入 PnP/PCI 的設定上﹐將我們 網路卡所佔用的 IRQ 保留起來(這裡我們保留的是3號IRQ)﹐也就是把設定改為 Legacy ISA 值。

從這裡開始﹐我們需要使用root用戶身份登入系統來完成設定工作。請使用你最熟悉的文本編輯器來編輯/etc/modules.conf。編輯器我們選 項使用vi﹐因為在vi是所有類unix系統必定有的基本編輯器﹐不用擔心換了一個新的系統﹐而又沒有熟悉的編輯器可用的尷尬。

我們需要在檔案中增加以下2行﹕(其目的為何?如果不這樣會如何?此外,請對alias指令做各參數的介紹)
alias eth0 8139too ←被稱為eth0的網路卡使用8139系列的模組

alias eth1 ne IO=0x300 irq=3 ←被稱為eth1的網路卡使用ne模組,而且IO設定為0x300,IRQ設定為3

其實這些模組﹐我們可以在
/lib/modules/XYZ/kernel/drivers/net/下找到。
其中XYZ代表的是當前Linux的內核版本。我們可以使用uname –r指令來獲得。
如:
$uname –r ←輸入uname指令
2.4.18.-14 ←顯示器回顯系統的內核版本號
也就是說﹐本例中我們實際需要進入的目錄是﹕
/lib/modules/2.4.18-14/kernel/drivers/net

一般地﹐PCI界面的網路卡不需要象ISA界面卡那樣子需要指定IO跟IRQ值﹐因為BIOS已經給你分配好了﹐所以你無需對這些繁瑣的設定掛心。但是﹐ 方便之餘﹐卻又有個小問題﹕不能清楚知道﹐哪張卡子是eth0﹐哪張是eth1。雖然﹐預設的大多數情況是比較接近顯示卡的那塊網路卡為eth0,而較遠 的為eth1,依此類推….

但如果﹐兩張網路卡晶片型號也是一樣的話﹐那一次性的進行設定可能會出現比較混亂的情況。這種情況的解決方法是﹕先插上一張網路卡﹐設定好了之後再來插上 第二張﹔這樣子的話﹐由於第一張網路卡已經設定好了﹐能工作了﹐那麼它所佔用的資源就會不釋放出來﹐不會對新的網路卡的情況感到混亂。

對/etc/modules.conf檔案的修改後﹐我們需要使用指令把剛才修改的模組裝進記憶體內。

modprobe 8139too ←裝入8139模組
modprobe ne ←ne模組

或者我們也可以使用insmod指令裝入﹐如﹕
insmod 8139too

這裡要注意的是﹕所有模組一定要在前面所說的模組目錄裡面存在﹐否則將會出錯。

如果出錯將意味著﹐沒有相應的模組可以載入。這種情況下﹐我們只有兩種方法可以做
從內核相容列表中檢視是否支援該網路卡的晶片﹐如果當前版本內核不能支援﹐這就需要新版本內核進行支援。Download新的內核程式碼後進行編譯內核﹐ 把支援的模組編譯出來﹐重新從前面編輯/etc/module.conf設定檔案開始﹐再做一次。(內核編譯不在此多敘述)

新版本內核也不能支援該網路卡。這種情況下﹐我們只能考慮使用廠方的driver了。Download了driver後﹐檢視裡面的readme檔案﹐該 檔案有敘述如何安裝的程序﹐而且每個driver都有不同的安裝方法﹐所以這裡不多敘述了﹐請按driver裡面的readme檔案安裝。

設定網路卡的IP位址以及子網路遮罩
在本例中﹐我們使用的IP位址為192.168.123.1﹔子網路遮罩為255.255.255.0
使用vi /etc/sysconfig/network-scripts/ifcfg-eth0指令來編輯eth0網路卡設定檔案﹐內容如下﹕
DEVICE=eth0 指定為eth0網路卡
BOOTPROTO=static IP位址類型﹐這裡我們用的是靜態IP位址
BROADCAST=192.168.123.255 網路廣播位址
IPADDR=192.168.123.1 這是我們的網路卡的IP位址
NETMASK=255.255.255.0 網路卡的子網路遮罩
NETWORK=192.168.123.0 網路卡所隸屬的子網路﹐這裡是192.168.123子網路
ONBOOT=yes 啟動電腦的時候﹐是否網路卡也一同啟動﹐在例中我們是需要它啟動的


這裡等號右邊填上的內容就是前面我們需要向ISP索取的資訊﹐請按具體獲得的資訊增加或修改。如果資訊不是從ISP獲得﹐而是自行分配的﹐請按照分配的內容增加或修改。

編輯好後﹐存儲檔案退出vi。
到這裡﹐我們的設定檔案都已經修改完成了。唯一要做的就是啟動network而已。

我們使用以下指令來啟動network
#cd /etc/rc.d/init.d ←進入/etc/rc.d/init.d目錄
#./network start ←啟動network服務

設定網路參數﹕ [確定]
啟動loopback界面卡 [確定]
啟動eth0界面卡 [確定]

上面的loopback界面卡指的是linux自己本身所產生的虛擬網路卡﹐做為偵錯linux內部網路功能之用。如﹕ping 127.0.0.1,這個位址就是linux自己本身﹐ping指令檢查linux自身是否存在網路傳輸協定上的問題。Eth0才是我們真正加上的網路 卡。

如果原來已經有網路卡啟動了﹐ 我們只需要變更一下network的參數而已。如﹕
#./network restart ←這裡變更參數為restart即可

上一步我們已經啟動了網路卡﹐現在需要用指令來檢視一下網路卡是否在符合我們設定的參數運作。

我們可以使用ifconfig指令來檢視﹕
$ifconfig

沒有留言:

張貼留言