在Linux下網卡的安裝思路

←手機掃碼閱讀     火星人 @ 2014-03-25 , reply:0

  摘要:介紹安裝網卡的一般手段與思路
  網卡的安裝(一)
  
    在LINUX網路伺服器配置中,網卡的安裝是一個非常重要的環節。但是由於網卡的生產廠產、晶元、帶寬、匯流排介面的不同,使得我們在安裝時感到非常地頭痛,這些問題對於LINUX初學者來講更是突出。而且在互聯網上的FAQ也非常多,網蟲們雖然可以查尋,但是要找到適合自己網卡的安裝介紹並不是一件容易的事情。下面讓我們3.來介紹一下安裝網卡的一般手段與思路,但並不能面面具到解決您的特殊問題,只希望可以起到拋磚引玉的作用,主要還是靠我們自己動手來解決這些實際問題。
  
    首先,我們必須確定自己的網卡是什麼晶元:是i8255x,還是D-Link DE220......是什麼匯流排介面:是ISA還是PCI?一般情況下,10/100M自適應的網卡是PCI插口的,這類網卡如果在沒有特殊的情況下,LINUX會自動識別,並且自動裝載模塊,
  
    當然是系統支持的情況下,就只剩下軟體的配置,放在下面講,這裡就不再多說硬體安裝的問題。
  
    國內PC與LINUX玩家的經濟條件來看,大多沒有條件也沒有必要購買100M的網卡,因為還需要有100M的集線器配套。這對於家庭或者中小型網吧來講是沒有什麼必要的,除非是一些大的網路應用單位,有幾百個節點的公司,需要使用100M的帶寬。而這些公司大多不必憂慮他們的100M網卡安裝問題,原因就在上文中。
  
    然而10M網卡的用戶面臨的問題也是比較多的(誰叫咱窮呢?窮人命苦啊!)10M的自然是ISA卡的多,(也有一些例外,比如網友們經常談論的R**?45元一塊的網卡就是PCI口的)
  
    這些網卡如果在windows98下安裝地順利地話,那麼對於LINUX那可就麻煩了。當然不必害怕,自有解決之道。
  
    下面我用D-link DE220舉個例子。
  
    首先寫下晶元型號,然後:
  
  1.查看一下你的LINUX的模塊中有沒有ne.o這個模塊。如果沒有的話就要從第2點開始了。如果有,那麼跳過2,3,4、直接從5開始看。
  2.確認你的LINUX的內核源代碼已經安裝(有些初學的朋友往往忘記這一點)這裡需要指出的是,在內核安裝完成後,你還不一定可以編譯,因為這時系統里的編譯器你還不一定安裝了,所以一定要在安裝內核時看一看內核需要的編譯環境,如果不夠格的話,需要升級或者裝一個新的系統,初學者朋友最好裝最新的版本的LINUX,並且完全安裝,這樣就不會漏掉編譯器了,具體的安裝方法請遵照內核代碼的安裝與編譯方面的有關資料。
  3.重新定製內核:(具體的方法請遵照內核的定製與編譯方面的有關資料。這裡只給出一個簡單的方法)。到/usr/src/linux目錄下,輸入make menuconfig在菜單定製中選擇以下內容將它們標為「*」(注意,這是內核級的支持,對一些外設較多的機器來講,不是外掛模塊比較好,具體方法請查閱有關資料)。
   .enable modules suport
   .networking support
   .TCP/IP networking
   .network device support
   .ethernet
   .ne2000/ne1000 support
  
  
  
    這裡我指出一下,
  
    第一句是讓系統支持模塊外掛。
  
    第二句是讓系統支持網路(如果LINUX沒有對於網路的支持,就像沒有望遠鏡的天文台)
  
    第三句是TCP/IP網路協議的支持(TCP/IP是LINUX及UNIX發展的命脈,也是互聯網的命脈)
  
    第四句網路設備支持,你的網卡就屬於網路設備。
  
    第五句乙太網支持,這是現有在大多數網路的拓樸結構,還有其他的,在此不多說。
  
    第六句ne2000/ne1000支持,指的就是你的網卡兼容的模塊名稱,就是告訴LINUX,把你的網卡當成ne2000網卡來用。
  
    注意,由於內核的版本不同、網卡的型號不同,可能以上的內容不盡相同,這裡只是給出一個思路。
  
    在/usr/doc/HOWTO/Ethernet-HOWTO文件中列出了Linux所支持的各種類型的乙太網卡的完整列表,請仔細閱讀這篇HOWTO文檔。
  
    在以下只列出一些比較常見的網卡。
  
    3Com:支持3c503和3c503/16以及3c507和3c509。3c501儘管也支持,但是這種網卡速度太慢,我們不建議使用。
  
    Novell:支持NE1000和NE2000以及各種兼容產品。同時也支持NE1500和NE2100。(註:這類網卡是我們中國最常用的一種)
  
    Western:支持Digital/SMC WD8003和WD8012以及較新的SMC Elite 16 Ultra。
  
    Hewlett:支持HP 27252、HP 27247B和HP J2405A。
  
    D-link:支持D-link公司的DE-600、DE100、DE200和DE-220-T。此外還支持屬於PCMCIA卡的DE-659-T.
  
    DEC:支持DE200(32k/64k)、DE202、DE100和DEPCA rec E。
  
    Allied:Teliesis AT1500和AT1700。
  
    可以參照以上的列表,對你的網卡的類型在內核中的支持有所幫助。
  
  4.在選擇以上內容之後,保存並退出,然後運行: make dep;make clean;make zImage;
  
  
    如果有些朋友的內核太大,除了將內核中有些東西改成模塊支持外,也可以將make zImage 改成make bzimage
  
    如果編譯的時候沒有錯誤發生,那麼新的內核'zImage"將在
  
   /usr/src/linux/arch/i386/boot/zImage中
  
  
    將其copy至/boot。
  
    定製lilo.conf文件,使其指向這個新的文件。
  
    運行lilo
  
    重要啟動。
  
  5.當系統重新啟動后,這個驅動程序將會被裝入,這個程序將會檢查 {0x300,0x280,0x320,0x340,0x360}口上的網卡,
    你可以運行"dmesg"來檢查啟動信息。
  
    需要注意的是有些PNPISA的卡指定的IO埠沒有在這個範圍中,那麼就麻煩了。
  
    (*****非常注意*****,這裡的經驗是經過多次上網求證無果,下網實踐一事無成后,歷盡坎坷不斷探索而最終證得覺悟。),
  
    拿出你的網卡驅動程序,如果沒有,就從供應商的網站上拉一個下來。然後在dos下,注意最好是純DOS狀態,而不是win dos狀態。運行setup在設置中將plug and play設置成無效,改成jumpless方式。這樣你的然後設置IO埠成為以上中的一個。
  
    以上的這種方式是許多ISA的10M網卡安裝的通用解法,許多朋友都被其困惑。(包括:D-link DE220、聯想的leLegend LN-1018 ISA PnP Ethernet Card等)
  
    注意,還有一種老式的網卡,它在驅動程序中沒有設置jumpless的方式。那麼這類網卡只有將機箱打開,拔下網卡,將其上的跳線從PNP換插成jumpless。至於這種網卡的型號,我已經想不起來的,但是我相信,有許多骨灰級玩家有這種網卡,所以還是寫一下,以免錯過了他們。
  
  6.使用netconfig來設置TCP/IP
    注意,應當先使用ifconfig或netstat -i來看看是否這裡且個ne0?

  網卡的安裝思路(2)
  
    還有另一種方法,這種方法比較簡單,但是需要有X-windows的支持。(注意,首先在windows 9x下到系統設備中看一下「網路適配器」的IO Address和IRQ。)有些網卡在Setup成jumpless后無法在windows 9x 中正常工作,那麼只能進入Setup程序中查看一下了。
  
    有許多種網卡的配置的方法。這裡介紹最容易的一種kernelcfg。kernelcfg是Redhat自帶的核心模塊配置工具,是一個在X-windows下非常方便的圖形界面的配置工具。
  
    而且在其他版本中也有類似的工具。在X-windows的xterm中輸入"kernelcfg"。讀者可以看到屏幕上彈出一個"kernel Configurtor"的框。如果內核還沒有找了你的網卡的話,框裡面是沒有關於網卡的描述的。在左下角的"add"點擊一下,然後在彈出的界面中的Module Type按鈕中選擇模塊類型為eth。表明這是一塊乙太網卡,而不是音效卡,或其他的一些硬體設備。
  
    然後選擇OK后,就可以在以後的界面中選擇合適的網卡模塊了。如果配置第一塊網卡,則在「Which module type」中選擇eth0;如果是第二塊那麼就選擇eth1,以此類推。在"which module"中需要選擇的網卡的具體類型,對於D-Link DE220的卡來講,只要在其中選擇單元「ne」就可能了。注意,之後還需要填寫有關於網卡的一些配置參數,這裡需要的參數就是在Setup中設jumpless后,網卡的I/O地址和IRQ。這些工作完成以後,網卡就可以驅動了。系統每次啟動時,都會自動定位網卡的位置和型號。但是並不是每塊卡可以通過的。如果你使用LILO引導系統,那麼就可以在lilo.conf文件中使用附加的命令語句將設備參數傳遞給核心。對於乙太網卡可以使用:
  
  ether=irq,base_addr,param1,param2,name
  
    前四個參數是用數字,最後一個參數是設備的名稱。所有的數字變數都可以自由選擇,如果用戶忽略或是設置成0,那麼核心會自動檢測該設備的參數變數或使用默認值。第一個參數代表分配給設備的中斷請求通道,默認情況下核心會自動檢測設備的IRQ通道。第二個參數變數base_addr用來指定設備的基本I/O地址。同樣,如果這裡是0,就意味著核心會自動檢測該設備的I/O地址;剩下的兩個參數變數param1和param2對於不同的設備有不同的含義。對於共享內存的網卡,它們用來定義共享內存區域的起始點和結束點。對於其他網卡來說,它們使用param1來設置信息的調試等級,數字1到7代表調試等級逐漸增加,而數字8表示關閉信息調試,0表示使用默認值。
  
    如果用戶有兩塊網卡,那麼其中一塊可以讓Linux在啟動時自動檢測而另一塊則通過lilo將其參數傳遞給核心。但是,您必須確保通過lilo傳遞參數的那塊網卡不會在系統啟動時被「偶然」檢測到,否則第一塊網卡就檢測不到了。為此,可以在lilo.conf中使用reserve命令。這條命令語句明確地告訴核心不自動檢測第二塊網卡。例如,為了安裝I/O地址是0x300的第二塊網卡eth1,可以在lilo.conf中加上下面這一條語句:
  
   reserve=0x300,32 eth1=0,0x300,eth1
  
    使用rserve命令語句就可以保證核心在系統啟動檢測其他硬體時不會檢測分配給第二塊網卡的I/O地址。用戶可以使用這條語句來覆蓋自動檢測的第一塊網卡:
  
   reserve=0x340,32 eth1=0,0x340,eth0
  
    如果要關閉自動檢測功能,可以將base_argiment參數變數定義為-1,如:
  
  ether=0,-1,etn0
  
    接下來是網卡介面的配置,可以ifconfig命令來配置TCP/IP網路。它可以使Linux核心知道軟體回送這樣一些網路介面,但這些網路介面被激活以後,核心就可以使用它們發送和接收數據報。我們需要在自己的機器上設置好幾個介面,包括回送介面lo和乙太網介面(或者所有使用的其他網路介面)。ifconfig命令可以激活每一個網路介面。
  
    ifconfig命令最常用的格式是:
  
  #ifconfig interface_type IP_Address
  
    這裡interface_type是介面設備的驅動器名,如回送介面lo,ppp介面PPP和乙太網介面eth等。IP_Address是分配給介面設備的IP地址。運行了ifconfig之後,相應介面會被激活。先配置回送介面loopback位於網路上的每一台主機都應該有一個回送介面,所有系統中回送介面的IP地址都是127.0.0.1。通常Linux系統的回送介面在安裝時就已經自動設置好了,並且使用虛擬主機名localhost來代表地址127.0.0.1。如果在/etc/hosts文件中可以找到下面這一項。
  
   #Sample /etc/hosts entry for localhost
   127.0.0.1 localhost
  
    那麼說明回送介面已經配置好了,如果不存在,則可以使用vi編輯器添加。
  
    當hosts文件中沒有回送介面這一項時,還需要使用ifconfig命令來產生回送介面:
  
  #ifconfig 127.0.0.1
  
    之後我們還可以使用ifconfig命令來顯示回送介面的所有信息以確認配置是否生效:
  
  $ifconfig lo
  lo Link encap Local Loopback
  inet addr 127.0.0.1 Bcast[NONE SET] Mask 255.0.0.0
  UP BROADCAST LOOPBACK RUNNING MTU 2000 METRIC 1
  RX packets 0 errors 0 dropped 0 overrun 0
  TX packets 0 errors 0 dropped 0 overrun
  
    可看到回送介面的掩碼是255.0.0.0,這是因為回送地址127.0.0.1本身是一個A類地址:此外回送介面也沒有設置廣播地址,廣播地址對於回送介面來說意義不是很大,但是如果想運行rwhod守護進程的話,就必須設置回送設備的廣播地址以便rwho命令可以正常工作。如何設置廣播地址將在本章第三節中介紹。現在還需要使用下面兩條命令中的任意一個將回送設備添加到核心路由表中:
  
  #route add 127.0.0.1
  #route add localhost
  
    我們可以使用一些命令來檢查剛才配置的回送網路是否正常工作,檢查網路狀態的命令很多,如ifconfig、arp、netstat等,這裡使用ping命令。ping命令可以指出一台主機是否可以到達,還可以顯示分組報文丟失和傳輸時間等統計資料等等。然後你可以使用
  
  #ping localhost
  
    如果顯示
  
  PING localhost(127.0.0.1):56 data bytes
  64 bytes from 127.0.0.1:icmp seq=0 ttl=32 time=1ms
  ......
  
    那麼你就將回送介面配置好了。
  
    然後就可以配置乙太網介面,這其實與配置回送介面非常相似:使用ifconfig命令配置介面設備,然後將遠程網路的主機路由添加到核心路由表中,配置工作完成後也使用ping命令檢查網路是否暢通。只是如果有子網存在的話,還需要更多的配置參數。
  
    首先,使用ifconfig命令設置乙太網介面。在B類網路Vtriual Breway中定義了兩個C類子網。為了讓介面設備可以識別他們,需要安下面的格式使用ifconfig命令:
  
  #ifconfig eth0 vstout netmask 255.255.255.0
  
    這條命令將把主機的IP地址分配給了乙太網介面eth0。如果忽略了掩碼,ifconfig命令將從IP網路的級別中自動推測出掩碼值,這樣會將掩碼指定為255.255.0.0。
  
    現在可以用下面的命令來檢查乙太網介面的工作狀況。
  
  #ifconfig eth0
  eth0 Link encap 10Mps Ethernet HWaddr 00:00:C0:90:B3:44
  inet addr xxx.xxx.xxx.xxx Bcast xxx.xxx.xxx.255 Mask 255.255.255.0
  UP BROADCAST RUNNING MTU 1500 Metric 1
  RX packets 0 errors 0 dropped 0 overrun 0
  TX packets 0 errors 0 dropped 0 overrun 0
  
    從輸出結果可以看到Linxu依照主機的IP地址自動地為eth0設置廣播地址xxx.xxx.xxx.255,這個地址是主機IP地址的網路號加上將所有主機位位置為1而得到的。信息傳送單元(MTU)被設置成了最大值1500bit。在下文,您將看到所有這些數值都可以使用特殊的命令進行修改。




[火星人 ] 在Linux下網卡的安裝思路已經有239次圍觀

http://coctec.com/docs/linux/show-post-155863.html