2009年12月6日 星期日

終於設定好 D-Link DWA-140無線網卡


終於設定好 D-Link DWA-140 USB無線網卡!
(最近更新)
2010.03.15
  1. 下載到最新版的RT2870 for Linux v2.3版本。
  2. 已整理好放在分享空間。有需要的網友,可以到這裡自行下載
  3. 包含之前的config.tar的解壓縮完成的config.mk。

一、前言
  1. 幾個月前,為了某專案的需要,自己掏腰包先採購D-Link DWA-140 USB無線網卡來測試。
  2. 當時店員有說,包裝盒上沒有註明可以支援Linux,你買了不一定可以使用!
  3. 沒多久,專案delay,也就沒有拿出來測試。
  4. 最近,在測試崴海尼可的猛速戰熊機無線網卡,又興起這個念頭。
  5. 為了節省時間,我還是打電話請教DLink的客服人員有沒有支援Linux的驅動程式?結果,所得到的答案還是一樣:沒有支援Linux的驅動程式!
  6. 我不放棄,繼續尋找。DLink這麼大的公司,竟然找不到可以支援Linux作業系統的驅動程式。
  7. 終於,昨晚,在老外的Ubuntu論壇,找到這一篇教學說明。
  8. 成功了!
  9. 我重新整理一遍,加上一些解說,不敢掠人之美,全要感謝這位老外 peepingtom!

二、參考資料

(一)參考Ubuntuforums.org論壇的高手peepingtom的大作:
http://ubuntuforums.org/showthread.php?p=8445514
(二)有兩個重要檔案先下載:
  1. config.tar,這個檔案我們馬上會用到。這個檔案已經找不倒,刪除!
  2. 2009_0820_RT2870_Linux_STA_V2.2.0.0.WUSB100v2MOD.2.6.31.tar.bz2,這個檔案是為了要重新編譯的時候才會用到。

三、實作步驟

(一)先抓出來DWA-140的device ID
  1. 連接上電腦的USB埠
  2. 叫出終端機
  3. 建入指令來察看:lsusb
  4. 筆者的這一支device ID為如下圖01所示: 07d1:3c09 ,產品型號為D-Link System DWA-140 802.11n Adapter [ralink rt2870]。
  5. 理論上,在官方的資料,Ubuntu 有支援device ID為 07d1:3c09。
  6. 但是,還是無法work!
  7. 所以,按照peepingtom的步驟,一步一步來做吧!
圖01

(二)下載好兩個檔案,我們要動手做些設定。

叫出終端機,鍵入以下指令:(注意大小寫)
  • sudo mkdir -p /etc/Wireless/RT2870STA
  • cd /etc/Wireless/RT2870STA
  • sudo tar xvf ~/Desktop/config.tar
修改 /etc/modprobe.d/blacklist.conf 環境參數檔案:
  • sudo gedit /etc/modprobe.d/blacklist.conf
加入以下的字串:
  • blacklist rt2x00usb
  • blacklist rt2x00lib
  • blacklist rt2800usb
  • blacklist rt3070sta
記得存檔,然後結束離開 gedit 編輯器。
在終端機之下,繼續建入以下指令,然後重新開機。
  • sudo modprobe -r rt2870sta
  • sudo modprobe rt2870sta
  • sudo /etc/init.d/networking restart
  • sudo restart network-manager
peepingtom說,上面最後那兩句指令,可能不需要,無傷。
我是乾脆就重開機,讓系統去抓看看吧!

(三)結果:
  1. peepingtom說,正常情況,重新開機之後,應該就可以抓得到 DWA-140 USB無線網卡,也可以使用。
  2. 如果不能work,那有可能不是使用RT2870的晶片!
  3. 如果確定是RT2870晶片,但是Ubuntu卻無法偵測到USB device ID,那就只好重新編譯了!

四、重新編譯自己的驅動程式
(一)重新編譯Linux headers

1.叫出終端機,鍵入以下指令:
  • sudo apt-get install build-essential linux-headers-generic
2.解壓縮我們下載下來的 2009_0820_RT2870_Linux_STA_V2.2.0.0.WUSB100v2MOD.2.6.31.tar.bz2檔案。peepingtom假定我們放在桌面:
  • cd ~/Desktop
  • tar -xvf ~/Desktop/2009_0820_RT2870_Linux_STA_v2.2.0.0.WUSB100v2MOD.2.6.31.tar.bz2
3.修改 usb_main_dev.c裏面有關 device ID
  • gedit ~/Desktop/2009_0820_RT2870_Linux_STA_v2.2.0.0/os/linux/usb_main_dev.c
4.加上以下敘述,其中AAAA、BBBB是使用lsusb所得到的device ID數值。
  • {USB_DEVICE(0xAAAA,0xBBBB)} , /* 自己寫廠牌型號 */
5.修改完畢,存檔離開。
6.仍然在終端機之下,鍵入以下指令來重新編譯:
  • cd ~/Desktop/2009_0820_RT2870_Linux_STA_V2.2.0.0/
  • sudo make
  • sudo make install
7.如果沒有出現錯誤訊息,就直接重新開機,以下8~12的步驟省略。
8.如果出現錯誤訊息?找不到rt2870sta.ko?

9.重新再做一次!
10.make clean
11.重新 sudo make
12.重新 sudo make install

備註:
  1. 在 /lib/modules/2.6.31-16-generic/kernel/drivers/staging/rt2870/之下,有個最早安裝Ubuntu 9.10的時候,就內建的 rt2870sta.ko 檔案。這個檔案無法使用!
  2. 在 2009_0820_RT2870_Linux_STA_V2.2.0.0資料夾內,是剛剛我們才編譯好的 rt2870sta.ko,確認這個驅動模組可以正常work之後,舊的就可以刪掉了!
(二)結果:
  1. 編譯正常,沒有再出現錯誤訊息!
(三)重新開機。
(四)結果:
  1. 水啊!系統抓得到,預設值會先找WiFi訊號。
  2. 當然我們可以指定要連接何種無線AP設備。
  3. 參考以下的圖檔:
圖01

圖02
  1. 我沒有打開這台筆電內建的無線網卡。
  2. 直接是用DWA-140無線網卡來連接無線基地台上網。

圖03

21 則留言:

guest 提到...

你好可以請教一下

我裝好驅動程式可以抓到

但是不知道 為什麼無法掃描基地台

匿名 提到...

你好 可以請教一下

我安裝了驅動程式 可以抓到無線網卡了ra0

可是不知道為什麼下iwlist ra0 scanning

就是沒辦法抓到基地台

感謝

勝仔 提到...

iwlist ra0 scanning,我有掃到12個!
不知您為何掃不到?

jmliangzh 提到...

有編譯好的 rt2870sta.ko可以正常work的驅動程式下載嗎? 謝謝

怡靜 提到...

你好!
我想請教你,你在使用D-Link DWA-140無線網卡時,會不會因為它過熱而導致電腦shutdown??(出現藍底白字的畫面?)
我自從安裝了之後經常會出現這種問題,但我的電腦是新裝不到一個月的。
>"<

勝仔 提到...

To 怡靜,
我使用Linux系統,到現在還沒有碰到這個問題。
Windows的系統,我就沒機會測試,改天我找一台電腦試試看。

蒲公英 提到...

哈囉

我最近也買了一個dwa-140,發現你的網站有教學,但我卻找不到你說的要download的二個檔案。請問我該去哪邊download呢?

謝謝您

勝仔 提到...

我忘了差不多了!
先看看這篇原稿:
http://ubuntuforums.org/showthread.php?p=8445514
第一步驟 :
注意dwa-140應該是rt2870sta,以下的內容請按照來做:
(原文)To use rt2870sta and blacklist rt2800usb, run the following commands in terminal:..........
如果不能work,才進行第二步驟 :
(1)lsusb
(2)sudo apt-get install build-essential linux-headers-generic
(3)下載編輯編譯rt2870sta:
Download a copy of Ralink's rt2870 USB driver from http://www.ralinktech.com/support.php?s=2
......
剩下的,請繼續參考原文的作法吧!

勝仔 提到...

蒲公英:
我發覺連結有問題,晚上找找其他資料再POST!

勝仔 提到...

蒲公英:
請參考這一篇:http://ubuntuforums.org/showthread.php?t=766850
有介紹下載位置:
wget http://www.ralinktech.com.tw/data/drivers/2007_1220_RT2870_Linux_STA_v1.2.1.0.tar.bz2
等重要內容。

蒲公英 提到...

您好:

非常感謝你這麼快速,熱心的幫忙。
在昨天我可以連線了,但卻有另一個問題想請問您。

我在沒有設防護的無線網路連線是正常的,但只要是有設wpa2需要輸入密碼的就無法連上線(自家用wpa2)。

不知您的dwa-140是否可以正常連線有驗証保護的網路?

我用的是opensuse 11.2 64bit。

勝仔 提到...

連線到有需要驗證的,沒有問題!

匿名 提到...

你好~我的無線網卡也是DWA-140,
我一直找不到config.tar的檔案
可以請您告訴我下載位置嗎??

我想讓他在arm-linux平台上跑,
方法也是一樣嗎???

匿名 提到...

你好~可以寄給我config.tar檔跟2009_0820_RT2870_Linux_STA_V2.2.0.0.WUSB100v2MOD.2.6.31.tar.bz2檔嗎?因為我找不到下載點,因為最近想在嵌入式linux系統上接無線網路卡,我的無線網卡也是DWA-140,我想方法也是您說的一樣~
我的信箱是welcomelin00@hotmail.com
謝謝~

勝仔 提到...

1. 網路上找不倒config.tar這個檔案。
2. 不過,到是有下載到最新RT2870 for Linux v2.3的版本。
3. 有需要的網友,歡迎來信,我會盡快寄上,節省您自己下載時間。
4. 下載這個檔案,當然在參考網頁上原作的編譯步驟,應該就OK。
5. 只是,我沒有用過最新版,測試出來成功的網友,歡迎分享心得。

勝仔 提到...

已經整理好放在分享空間,請點選下列網址:
http://cid-3b91a4e44ac232c4.skydrive.live.com/browse.aspx/%e5%85%ac%e9%96%8b/Ubuntu/D-Link%20DWA-140

匿名 提到...

sudo modprobe -r rt2870sta
sudo modprobe rt2870sta

會出現錯誤,因該是沒有檔案吧

sudo apt-get install build-essential linux-headers-generic

也是

總之...我用RH5.4 沒有辦法安裝
有辦法救我嗎

勝仔 提到...

RH的,我沒裝過。
真是抱歉,論壇上找一些高手試試看!

匿名 提到...

我試了很久,一直顯示沒有ko檔
到底怎麼建立出ko檔阿- -...

勝仔 提到...

有重新編譯成功嗎?
這台電腦目前因公務需要,改為Windows 7系統,看來我要另找一台ubuntu電腦來try。

匿名 提到...

# sudo make
# sudo make install

無法成功,
沒有.ko檔

我才剛學linux
可請問一下,編譯是文中的哪一段