台灣最大程式設計社群網站
線上人數
1716
 
會員總數:246274
討論主題:189809
歡迎您免費加入會員
討論區列表 >> Windows 伺服器 >> linux 9 網卡無法啟動... 請求大大協助
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
linux 9 網卡無法啟動... 請求大大協助
價值 : 0 QP  點閱數:2353 回應數:3
樓主

有緣人
初學者
14 2
66 10
發送站內信

幫幫忙囉....
本篇文章發表於2004-05-25 19:38
1樓
回應

小宏
檢舉此回應
你沒有列出怎樣無法起動,以及你的網卡型號,只說無法啟動幫幫忙,誰幫的了你的忙阿...,無法啟動有很多原因阿...
本篇文章回覆於2004-05-25 23:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

小宏
檢舉此回應
手動安裝網路卡驅動程式 
  
如前面所說的,我們的 Linux 預設核心裡面,已經建立了很多的網路卡驅動程式模組了!所以囉!編譯網路卡模組之前的首要工作就是先確認一下您的網路卡的晶片組是否有被支援呢?如果有支援的話『那麼自然不需要編譯模組了咯』! D-Link 530 這塊網路卡的晶片組就是有名的 via-rhine ( 有的時候也寫成是 viarhine ),先來找一找有沒有這塊網卡的模組吧。核心預設的網路卡模組路徑在底下可以發現: 
  1. 先察看一下核心版本,因為不同的版本模組放置的路徑不同。 
[root@test /root]# uname -r 
2.4.20-18.9 
上面是以 Red Hat 9 為範例, 他的核心是 2.4 版喔。 
  
2. 核心模組的路徑: 
[root@test /root]# cd /lib/modules/`uname -r`/kernel/drivers/net 
上面是 2.4 版的路徑 
[root@test /root]# cd /lib/modules/`uname -r`/net 
上面是 2.2 版的路徑,請依照您的實際核心來查詢。 
  
[root@test net]# ls -l via* 
-rw-r--r--    1 root     root        17892 Sep  7  2001 via-rhine.o 
太好了!被支援到呢! 
  
如果幸運的話,那麼您的網路卡就已經被支援,可以跳過編譯的過程,直接進行模組的載入吧!萬一您連自己的網路卡到底有沒有被 Linux 捉到都不知道,那麼可以使用底下的方法來測試: 
  [root@test /root]# dmesg | grep eth 
divert: allocating divert_blk for eth0 
eth0: RealTek RTL8139 Fast Ethernet at 0xc4844000, 00:50:fc:20:f1:4c, IRQ 10 
eth0:  Identified 8139 chip type 'RTL-8139C' 
eth0: Setting 100mbps full-duplex based on auto-negotiated partner ability 45e1. 
divert: allocating divert_blk for eth1 
eth1: Digital DC21041 Tulip rev 33 at 0xc4852000, 21041 mode, 00:80:C8:5A:87:10, IRQ 9. 
  
看到上面的資訊了嗎?因為我有兩張網路卡,一張是螃蟹卡 ( eth0 ) 另一張則是很舊很舊的 10 Mbps 的網路卡,Linux 預設就捉到了!所以我也就不需要重新編譯核心模組!不過,萬一捉不到呢?亦即上面沒有顯示出 eth0 或者 eth1 等資訊,那就表示 Linux 無法找到該硬體,呵呵!底下就得來編譯囉! 
  
下載網路卡驅動程式模組: 
萬一不幸的,您的網路卡的驅動模組恰好不在 Linux 的預設支援當中,例如買到了雜牌的卡或是特別想要的卡 ( 例如 D-Link 530 TX ) ,那您就必須要注意這些卡的包裝上面是否有提及『支援 Linux 』字樣!如果有支援的話就可以買了,因為一定會有驅動程式附在上面的磁片中的,以鳥哥的 FNW-9702-T 為例,他就有附上一塊驅動程式片,裡頭有一個 linux 目錄,裡面就是安裝驅動程式的原始碼啦!如果找不到驅動程式的話,您可以到下面的網站去找找看有沒有您需要的驅動程式原始檔案,當然囉!最好還是到您買的那張網路卡的公司去下載完整的驅動程式碼!例如上面提到的 D-Link 530TX的驅動程式原始碼,在底下的友訊網站就有提供下載! 
Linux Network Drivers:http://www.scyld.com/network/index.html 
友訊網路卡:http://tsd.dlink.com.tw/info.nsf/download/LAN+Adapters?openview 
  
確定所需套件存在: 
在開始編譯核心模組之前,因為驅動程式需要配合核心來編譯,所以會使用到 kernel source 或者是 kernel header 的資料,此外,也需要編譯器 ( compiler ) 的幫助,因此,先確定您的 Linux 系統當中已經有底下的套件存在 ( 註:每一個版本的 Linux 套件名稱都不相同,我這裡是以 Red Hat 9 來做說明,如果您的 Linux 不是 Red Hat 9 ,不要緊,只要看到 kernel 字樣有出現,應該就沒有問題! ) 
kernel-source-2.4.20-18.9 
kernel-2.4.20-18.9 
gcc-3.2.2-5 
make-3.79.1-17 
而由於很多的核心模組預設都是由 /usr/src/linux 這個 kernel source 的目錄來取得所需要的資訊,偏偏目前很多的 Linux 版本都是使用 /usr/src/linux-2.4 這個目錄來連結,所以很多時候您會發現找不到檔案的錯誤訊息,因此,您可以使用這樣的方式來進行連結目錄的製作: 假設核心的 Open source 目錄為 /usr/src/linux-2.4.20-18.9 
[root@test root]# cd /usr/src 
[root@test src]# ln -s linux-2.4.20-18.9 linux 
另外,如果沒有安裝上述的某些套件時,請拿出您的原版光碟,然後以 rpm 將他安裝上您的 linux 系統吧! ^_^ 
  
編譯下載的模組: 
上述的工作確認過後,並且由友訊網站下載了驅動程式後 ( 註:我下載的是完整的驅動程式片,也就是 DEF-530TX Shipping Driver 那個驅動程式,不過該檔案 530tx.zip 是給 windows 用的,所以還需要在 Windows 底下解壓縮後,才會得到 dlkfet-4.24.tar.gz 這個檔案吶! ) 就可以準備來進行模組的編譯了。 1. 將剛剛取得的 dlkfet-4.24.tar.gz 放置到 /tmp 底下 
[root@test root]# cp dlkfet-4.24.tar.gz /tmp 
[root@test root]# cd /tmp 
[root@test tmp]# tar -zxvf dlkfet-4.24.tar.gz 
[root@test tmp]# cd dlkfet-4.24 
  
2. 開始編譯: 
[root@test dlkfet-4.24]# make 
到此為止,會產生一個檔案模組,稱為: rhinefet.o 
[root@test dlkfet-4.24]# cp rhinefet.o  \ 
> /lib/modules/`uname -r`/kernel/drivers/net 
[root@test dlkfet-4.24]# depmod -a 
特別留意,上面的路徑為 2.4.xx 版本的核心!並且將該模組寫入屬性相依檔案。 
當然囉,如果您是使用其他的網路卡,那麼所得到的網路卡驅動程式自然就會成為 filename.o 啦!同樣將他移動到模組放置的目錄後,執行 depmod -a 即可。(註:如果您的模組原始碼檔名為 driver.c ,並且沒有 Makefile 的輔助,那麼使用『gcc -DMODULE -D__KERNEL__ -O6 -c driver.c』來編譯出 driver.o 也是可以的作法!) 
  
模組測試: 
核心模組編譯完成之後,當然就得需要測試看看能不能正常的運作了。測試的方法很簡單,因為我們已經進行了 depmod -a 了,所以可以直接以 modprobe 來進行模組的載入: 1. 載入模組的測試: 
[root@test root]# modprobe rhinefet 
請注意,不要寫完整的檔名, .o 不需要寫,那個 rhinefet 就是 
剛剛編譯出來的 rhinefet.o 咯! 
[root@test root]# lsmod 
Module                  Size  Used by    Tainted: P 
rhinefet                14208   2 
....(略).... 
  
2. 設定開機時載入模組 
[root@test root]# vi /etc/modules.conf 
# 加入底下這一行 
alias eth0 rhinefet 
  
3. 也可以重新開機是看看能否正常的啟動模組: 
[root@test root]# sync; sync; reboot 
如果可以出現上述的畫面,那麼表示模組可以被正確的載入,同時,如果模組已經正確的載入了,那麼就可以直接寫入開機設定檔 /etc/modules.conf 了。注意一下,在上面的例子當中,我們使用的是 rhinefet 這個模組,如果您的模組名稱並非這個名稱,請依照您的實際狀態來修改,不要在 /etc/modules.conf 照抄我的設定啊!不然.....不要怪我∼ 
 
基本上,這樣就已經編譯成功,並且也將該模組掛上系統了,接下來就是需要測試一下這個網路卡是否能夠正確的來運作啦!


來源:http://linux.vbird.idv.tw/
本篇文章回覆於2004-05-25 23:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

有緣人
檢舉此回應
感謝大大的幫忙...
小弟搞定了...thank you!!
本篇文章回覆於2004-05-26 01:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.