2010/02/06

Asus WL-520GU 刷 DD-WRT 韌體

家裡有一台Asus製的WL-520GU無線AP,很多ptt鄉民推薦這台,尤其是刷過DD-WRT、Tomato的,還說要是沒刷過就沒有意義了。真的有這麼離譜嗎?使用原廠的韌體也有一段時間了,設定簡單、介面漂亮是他最大的特色,除此之外就沒有了。到底第三方的韌體有什麼吸引力可以讓一堆人冒著喪失保固的風險也要刷呢?

DD-WRT至少多出以下特色:
- USB 隨身碟支援 / FTP
- VPN 連線
- 網路統計圖表
- VoIP
- XLink Kai
- 網路橋接及防火牆設定
- Telnet / SSH 管理介面

更重要的,它根本就是一個小型的Linux嵌入式系統,甚至提供Telnet/SSH可以連進去管理,強大之餘可以做出更多應用。例如說網友Abin就把它改成網頁伺服器。

1. DD-WRT在下載頁面有非常多的版本,這是因為每一台AP的Flash RAM大小不一樣,可以容納的檔案不同之故,檔案越大的功能越全面,比如說Mega版的就是涵蓋所有功能的版本,但是要確定有8MB才可以刷。一般AP用Standard或者Mini版的就可以,有的RAM太小的就只能刷Micro版了,維基百科有各版本的介紹,DD-WRT Wiki有更複雜的列表

像我選擇了 Standard + USB (mini-usb-ftp) 的版本,因為WL-520GU有一個USB孔。原本是作為列印伺服器之用的,刷了支援USB的版本之後搖身一變成為了檔案伺服器了。這樣十分方便,這是原廠韌體所無法支援的。

2. 下載了韌體 bin 檔之後,我們還需要韌體的上傳工具,標準的 TFTP 工具就可以了,像 DD-WRT 官方提供的 tftp2.exe 就夠用了。

3. 確定了版本之後,首先將網路環境簡化到只剩 WL-520GU 跟電腦兩台即可,電腦的網路設定改成手動指定 192.168.1.2,WL-520GU則是自訂值或預設 192.168.1.1。

4. 先把 WL-520GU 的電源拔掉,在天線旁邊有兩顆按鈕,其中一顆黑的是Restore重置鈕,按住不放再插上電源,等約三秒電源指示燈在閃爍的時候放開按鈕,代表我們開啟了維護模式,可以準備上傳韌體。

5. 電腦端開啟 TFTP 工具,Server填AP的IP位置 (如圖我的是 192.168.1.101,預設是 192.168.1.1),Password留空,File選取剛才下載的韌體檔。按下Upgrade鍵等進度列跑完。跑完後程式提示完成後再等個兩三分鐘讓AP進行安裝,直到電源指示燈不閃了就代表更新完成了。


6. 先以拔電源的方式讓 AP 重新啟動,再用電腦開啟瀏覽器,瀏覽 http://(AP設定的IP) 來開啟設定畫面,如果出現提示輸入帳號密碼的視窗則以root / admin的組合輸入,就代表大功告成啦。


刷韌體是很容易,但是要把之前所作的設定調回來可就不太容易,DD-WRT的設定項目非常的多,跟原廠韌體絕對是不能比。

另外要附掛USB隨身碟也十分容易:
  1. 準備一個格式化好的隨身碟 (檔案系統應該是 FAT)
  2. 插到 WL-520GU 的USB插槽
  3. 設定介面的 伺服器→USB 就是相關設定,把「USB 驅動核心」打開之後會有更多選項跳出,選取所有的USB1.1跟2.0支援,然後把「USB 儲存裝置驅動」跟相關檔案系統支援也打開。
  4. 最後別忘了也把 Automatic Drive Mount 打開,可以開機後自動掛載隨身碟。Disk Mount Point則隨喜好,我設定在 /jffs 上。儲存重開後就可以看到相關資訊。
  5. 系統管理→基本管理的jffs支援也可以打開。這個是刷完韌體後 Flash 剩下的空間可供使用,有512KB多可以用。如果上面的 USB 已經夠大了這邊開不開都無所謂了,這是給沒有 USB 可擴充的 AP 一個可以儲存資料的地方。


最後有一個我十分注意的功能,專有名詞叫做 PPPoE-Relay,用途是讓使用NAT虛擬IP上網的電腦,也可以透過分享器撥號取得實體IP。用例子說的話就是無線AP設定自動撥號取得動態IP,平常一開機所有電腦都可以NAT上網。但偶爾也想透過撥號取得實體IP來對外。這個功能在原廠的韌體裡是有的,在設定PPPoE的時候就有項目可勾選 (但我現在忘了名稱),但刷到 DD-WRT 卻找不到類似的功能,除非你在「基本設定」把WAN連接類型關閉,下面才會多一個「將 WAN 端指定給交換器」的選項,但這樣一來NAT就沒有作用了,每台電腦都必須透過撥接才能上網,真的沒有兩全的方案嗎?

原來 PPPoE-Relay 功能預設是在付費的 DD-WRT 韌體才有,但有人提出變通方案:利用姊妹品 OpenWRT 的套件 rp-pppoe-relay 來達成。簡單來說在AP啟動時執行這個小程式就可以達成這項任務,但是這個小程式要放在AP裡面很困難,因為AP裡面沒有很便利的讀寫區,有的只是燒錄的ROM跟RAMDISK,前者無法寫入後者重開機就消失了。如果有開啟額外 Flash 空間建立 JFFS2 的話就可以拿它來用,或者也可以靠外部 USB 來達成。

1. 先取得 pppoe-relay 檔案 URL 位置。參考DD-WRT PPPoE Passthrough (on WRT54G)這篇我們可以知道 OpenWRT 網站有 pppoe-relay 檔案可以下載 (這裡)。複製URL位置備用。

2. telnet 192.168.1.1
登入AP,帳號固定是root,密碼看你的設定。

3. cd /tmp
切換到RAMDISK下,我們要做些解壓的動作。

4. wget (剛才那個套件的網址)
可以下載到套件包。

5. tar -xzf rp-pppoe-relay_3.10-1_mipsel.ipk
解壓套件。

6. tar -xzf data.tar.gz
再解一層。

7. cp usr/sbin/pppoe-relay /jffs
複製檔案到 JFFS 下,如果你剛才有開啟JFFS2或是擴充USB隨身碟並掛到/jffs下應該會有空間可放

8. 到網頁介面的系統管理→指令新增一行
sleep 10 && /jffs/pppoe-relay -S vlan1 -C br0


並儲存啟動指令,這樣啟動時就會執行這個小程式。

至此全部的設定大功告成,還有很多地方沒有提到如 VPN 的就請自行摸索囉,我也是才剛會而已。

沒有留言:

張貼留言