freebsd 設定網路介面卡
2008年11月18日 星期二 by Anati
1、開機時kernel是否有正確的抓到網路卡
在開機啟動的時候我們可以用Scroll Lock鎖定銀幕之後用Page UP/Down向上下捲動,我們會去找找是否出現我們的網路卡型號和晶片。
ex1:
sis0: SiS 900 10/100BaseTX port 0xc800-0xc8ff mem 0xe7003000-0xe7003fff irq 19 at device 4.0 on pci0
ex2:
rl0: RealTek 8139 10/100BaseTX port 0xe400-0xe4ff mem 0xe7005000-0xe70050ff irq 18 at device 10.0 on pci0
以上我是從dmesg中看到的資訊:
ex1:
SiS 900 10/100BaseTX SiS網卡的晶片組
sis0 所使用sis的NIC(Network Interface Card)軀動程式
ex2:
RealTek 8139 10/100BaseTX RealTek網卡晶片組
rl0 所使用的rl的NIC軀動程式
※這裡看到在軀動後面所加的編號從0開始往上數,是因為可能不止一張Sis或是rl的網路介面卡,因此為了系統的識別,所以用編號來表示,而且在系統中網路介面卡是唯一的編號。
要設定網路介面卡前一定要先確認此部份的資訊,若不在開機的時候看也可以使用
#vim /var/run/dmesg.boot 來找開機過程中硬體的支援度
如果再懶一點的話也可以使用
#pciconf -lv 來看系統所抓到所有在pci匯流排上所有的介面卡及相關資訊
2、是否kernel提供些網路卡的driver
由第一步就可以知道系統抓到那些卡和晶片,而在抓的同時就會載入相關的軀動程式,像是SiS0和rl0,但是若像下面這種情況,就表示「有抓到,但沒有軀動程式支援」
ex:
pci0: multimedia, audio at device 2.7 (no driver attached)
這是在dmesg.boot所看到的資訊,表示有抓到這個晶片,但是沒有提供相關的軀動程式。
透過pciconf我們可以看的更清楚
none0@pci0:0:2:7: class=0x040100 card=0xa0021458 chip=0x70121039 rev=0xa0 hdr=0x00
vendor = 'Silicon Integrated Systems (SiS)'
device = 'SiS7012 PCI Audio Accelerator'
class = multimedia
subclass = audio
直接看none0表示沒有軀動程式支援,如果你的網卡遇到這種情況的話,那就很麻煩了,要自己重編核心,或是重編kernel module,或是用以下的方法來做。
使用NDIS透過windows的軀動來產生kernel module,並設定在開機時載入
請看 NDIS driver
如果一切都正常,有抓到網卡,而且已提供支援的軀動程式,那我們就可以開始設定網路卡介面了。
3、設定網路卡介面
你可能會問,介面在那裡,所謂的介面就是剛剛上面提到的sis0或是rl0網卡所支援的軀動加上編號,這就是網路卡介面,我們要設定的就是此介面,介面設好之後,代表這個設定是這張網路卡所專用的
先透過ifconfig來看看我們有那些網路卡介面並說明一下顯示的資訊:
sis0, rl0 乙太網路卡介面
plip0 列印埠點對點網路介面
lo0 軟體回朔網路介面(loopback)很特別的介面
tun0 PPP的通道網路介面
一些細部的資訊請直接man網路介面,或是man ifconfig
※我們會注意到一個欄位status:這表示目前網卡的狀態,如果為active表示目前工作中,如果為no carrier,表示沒有接網路線。而當我們關閉此介面的時候,那status:就不會顯示了,因為沒有啟動當然沒有狀態啦
可以直接設定網路卡介面,或是透過rc.conf設定為開機自動設定好,這裡假設我們要設的網卡介面是sis0的話
a. 直接設定網路卡介面(每次重開都要設一次)
DHCP做法:
# dhclinet sis0 (網路介面卡)
固點IP做法:
# ifconfig sis0 down (先關閉網路介面)
# ifconfig sis0 inet 140.138.144.192 netmask 255.255.254.0 up (設定IP)
# route add default 140.138.144.254 (設定gatewary)
# vim /etc/resolve.conf (設定dns)
nameserver 168.95.192.1
nameserver 168.95.1.1
b. 透過rc.conf開機自動設定(設定需要重開機以才會有效果)
固點IP寫法
# vim /etc/rc.conf
ex:
ifconfig_sis0="inet 140.138.144.192 netmask 255.255.254.0" (網卡介面sis0)
defaultrouter="140.138.144.254" (Gateway)
ex:
ifconfig_rl0="inet 140.115.75.1 netmask 255.255.0.0" (網卡介面rl0)
defaultrouter="140.115.1.254" (Gateway)
DHCP IP寫法
# vim /etc/rc.conf
ex:
ifconfig_sis0="DHCP" (網卡介面sis0跑DHCP)
ex:
ifconfig_rl0="DHCP" (網卡介面rl0跑DHCP)
4、啟動網路卡介面
先使用ifconfig來看一下你的網卡介面是否為status: active如果不是的話表示你沒有開起來所以用請先開起來
# ifconfig sis0 up (將sis0啟動)
※如果你手動連的話要特別注意,而如果你是寫在rc.conf裡面的話,重開機的時候就會自動啟動了,所以就不用手動up起來,所以先用ifconfig來確認看看有沒有啟動。
5、測試網路卡介面
如果你有耐心的話使用官方的測式方法,就是先ping自己的ip,確保是不是真的有開啟來,之後在ping你的gateway IP如果也正常的話就ping外面吧!不過這樣很麻煩快速的做法直接
#telnet www.google.com 80
※以上一次測了網路、DNS、Getway有沒有通
透過以上的設定,就可以連線上網了,如果你家是pppoe連線就是所謂的ADSL對點對連線上話,那就請參考blog中其它的文章。