若你照著前幾篇文章,不小心真的把 WL-700gE 刷成 OpenWrt。一時後悔想換回來的話,這裡是一些技巧與方法。不過既然刷成功了,能夠享用更多的「自由」,何必後悔
😉

首先,機器上的 Reset 鈕是沒有用的。請不要浪費時間照的手冊試圖 “Reset” 你的機器。凡是透過 tftp 上傳軔體到 CFE 上,你就已經蓋掉官方軔體。既然都已經覆蓋了,就沒有 Reset 的可能性。

要復原軔體最簡單的作法莫過於直接使用 ASUS 所提供的 Firmware Restoration Tool 來重裝所有的軔體。

但是 Firmware Restoration Tool 只能在 Windows 上使用,若你像我一樣只使用 Linux,以下是復原的程序。

WL-700gE 的軔體分成兩個部份,一部分是給 flash 所使用的核心與基本的開機設定工具,一部分則是存在 IDE 硬碟的應用軟體與檔案系統。你在官方網站所下載的軔體都會包含這兩部份。

首先,你該做的是先 flash 部份的軔體從下載的 NAS 軔體檔案中抽出。你需要 nasunpack (uasunpack.exe) 或社群所開發的 AsusTrxExtract (AsusTrxExtract_1.0.0.1.zip),這些工具可以讓你將軔體解出。其中 AsusTrxExtract 是使用 C# 所開發,作者尚提供了原始碼,你可以於網路上搜尋下載。而 nasunacpk 則內含於 ASUS 所提供下載的 GPL 檔案中。

nasunacpk 使用方式很簡單,除了用 nasunpack 解開外,你尚必須去除檔案中的標頭,最後取出的檔案才是我們所需的原始檔

$ nasunpack --sections WL700gE_1.0.7.8.nas
section headers ---
00: type = 0x15 (BRCM_NAS_SECTION_TYPE_TAG  ), length =      126 bytes
01: type = 0x12 (BRCM_NAS_SECTION_TYPE_FLASH), length =  1691648 bytes
02: type = 0x13 (BRCM_NAS_SECTION_TYPE_DISK ), length = 16560128 bytes
$ nasunpack --extract=0,tag WL700gE_1.0.7.8.nas
dumping section 0 into tag...
$ cat tag
BroadNAS System Software
Version: 2.2.1
unknown
Build date: 三  7月 25 15:30:01 CST 2007
Build by: [email protected]
$ nasunpack --extract=1,flash WL700gE_1.0.7.8.nas
dumping section 1 into flash...
$ dd if=flash of=piggy.gz bs=1 skip=28
1691620+0 records in
1691620+0 records out
1691620 bytes (1.7 MB) copied, 8.40643 seconds, 201 kB/s
$ file piggy.gz
piggy.gz: gzip compressed data, was "piggy", from Unix, last modified: Wed Jun 27 21:42:29 2007, max compression
$ nasunpack --extract=2,disk WL700gE_1.0.7.8.nas
dumping section 2 into disk...
$ dd if=disk of=crom bs=1 skip=28
16560100+0 records in
16560100+0 records out
16560100 bytes (17 MB) copied, 81.0496 seconds, 204 kB/s
$ file crom
crom: Linux Compressed ROM File System data, little endian size 65536 CRC 0x911b22f7, edition -1278167390, 138541296 blocks, 1226466058 files

其中 crom 是 WL-700gE 會安裝於 disk 上得應用軟體,若你想研究內含的軟體,可以用 mount -o loop 將檔案掛載起來查看。而 piggy.gz 就是我們所需的 Linux kernel 核心檔案,接下來可以利用重新開機並按下 “Ez Button” 的方式,透過 CFE 重新燒錄舊版軔體。細節請參考 Wl-700gE Reflash HowTo

燒錄好原本的核心後,另外一個麻煩的是要重建原本存在 IDE 硬碟的應用軟體。若你沒有手賤的去亂刪除 /dev/mtdblock/2 的資料,核心應該在重新開機後會載入存於 /dev/mtdblock/2 (/dev/mtdblock/2 只是另外一個 MTD block) 的基本工具,其中包含了復原與重新格式化硬碟的機制。

第二個階段是比較妙的,由於 WL-700gE 在接受第二階段的 disk image 上傳時,會作檢驗,系統必須接受某種 UDP 的認證協定後,才會接受新的 disk image. 因此你沒辦法單純的用 tftp 上傳,這時可以用 nasload (一樣內含於 ASUS 所提供下載的 GPL 檔案中) 使用檔案進行上傳。

用法如下

$ nasload /U /P /a /1 /f WL700gE_1.0.7.8.nas

如此就可以將 WL-700gE 完全復原到出廠的狀態了!

  • west

    Rex 大
    在您的這幾篇文章裡
    對 WL-700Ge 有更多的了解
    這機子不是很好上手
    且BUG 好像沒有修的很完善
    BT 方面網友更是抱怨不少
    要改的話
    好像也要懂LINUX
    我有一台WL-700Ge 苦於英文程度不佳,對Linux 更是一竅不通
    到現在沒法子養動物
    提供一個改機網站 http://wl500g.info/forumdisplay.php?f=87
    希望在您的網頁裡
    獲得更多的中文教學

  • @west 是阿,wl500g.info 其實是最大的無線路由器開放原碼社群之一,而且相關的非官方軔體也不少,若你想透過換用軔體使用某些功能,不妨在討論區中尋找其他開發者做的已編譯版本。如 oleg 改於官方軔體的版本,就頗適合習慣用原始華碩設計介面之使用者。

    另外若英文不好,想找繁/簡中文的改機資訊,可參考以下論壇
    小浮萍 Asus WL-700gE 討論區
    中國無線網路論壇
    PCZONE 無線上網討論區

  • west

    請教Rex 大
    如果採 kfurge 作者的韌體
    參照 http://wl700g.homelinux.net/drupal/?q=node/134
    是否就可以養驢了
    謝謝

  • west 看了一下,kfurge 版本換掉了原本的 Bittorrnet 為 mldonkey,好處是可以同時從 Bittorrent/eDonkey 以外的協定下載同一個檔案,缺點是 Bit Torrent 還不支援 Encryption 與 DHT,若你使用 Bit Torrent,缺乏這兩個功能可能會影響下載的速度。

  • west

    看來我應該期待 Rex 大您的教學
    造就一個養動物的專用機

  • west

    Rex 大
    如果安裝 OpenWrt 及 Debian 可以使養動物速度變得比較正常嗎?
    我用原廠韌體沒有改軟體
    結果是慘不忍睹
    期待您的改機訊息讓此機子獲得重生
    祝 佳節愉快

  • west, 其實不是裝了 OpenWrt 與 Debian 就可以萬事順遂的。至少就介面而言,開放源碼的軔體版本總缺乏比較友善的使用者介面,但這些版本比較容易安裝與調整各種你想要的軟體,進而改善軟體的表現效能。

    來看看是否有人想一起弄一個介面跟套裝軟體吧。

  • Herman

    養動物的專用機? 我用 openwrt的軔體己經養了快一半了, 目前沒有什麼問題

  • Herman, 何不分享你所使用的軟體與版本呢? 🙂

  • Herman

    http://wl700g.homelinux.net/drupal/
    這個網站開始時也有幫忙弄,
    主要的系統及套件基本上都寫在裡面了.
    目前比較試試 debian, 但想到硬體能力..唉..
    胃口好像越來越大了 >”<
    Wl-700ge 硬體能力感覺變半調子…不上不下.有種想花錢的衝動

  • Hi, 有興趣可以玩玩 http://www.fonosfera.org/

  • Daniel Hsu

    請問下有人有CFE的備份么。。我的WL-700gE變磚了,
    boot后ping不到機器,再恢復糢式下也ping不到
    抓包看到一個udp裡面有
    Press reset now, to enter failsafe
    但是reset后還是這樣,用ASUS的Firmware Restoration tool還是不行
    這樣是不是就只能燒flash了?
    還是可以用serial console來救?
    serial console怎么做??
    痲煩好心的大大幫下。。。感激不盡

  • Daniel, 你若按照本文的說明方式就可以復原才是。可否說明你是怎麼把機器磚化了?

  • Daniel Hsu

    Hi Rex:
    我是在刷了OpenWRT f/w後將HDD切割好了後reboot
    再次telnet上去
    在tmp里wget我的ftp上的一個tar檔(此檔800kB)
    然后及其好像就不動了,我將Wl-700p重啓
    后來就沒辦法到CFE mode了,我抓包就看到一個udp
    用ASUS的tool也不行
    NOTE:本來我是寫了個腳本要自動安裝OpenWRT的,
    寫完後要測試呢。。。。。。。

  • Daniel Hsu

    對了,不知道有人可以將CFE弄成BIN給我么,
    我看來只好用JTAG燒了?
    有人有關于WL-700gE的JTAG怎么接的說明嗎,
    有的話請給我個E-mail
    [email protected]

  • Daniel, 依照你的說明,應該不可能覆蓋掉 CFE 才是。(因為根本沒有用到 mtd tools 去覆寫 flash) 建議你按照原廠的指示,再重新測試一次吧。

    若你執意要自己重刷 CFE,聽說 WL-700gE 機器上沒有留 JTag Header,你可能要將 flash 解下來重新燒 CFE 進去才行。

    原廠的 CFE image 可以在 ASUS 提供的 GPL Source code 檔案中取得。

  • Daniel Hsu

    今天有測試了下不行,后來我將機殼打開後在測試又可以了。。。。
    快把我搞瘋了,,,
    後面在測試看。。。。
    謝謝你的提醒阿。。

  • WEST

    Rex 大
    我最近把這台機子玩掛了
    因為更新韌體後
    接電源沒有反應(硬碟也沒啟動)
    連燈號都沒有(拆硬碟至PC上測試OK)
    按了多次Reset也沒反應
    想請問Serial Console 有得買嗎?(我在高雄)
    沒有Linux 也可用嗎?
    謝謝!

  • @WEST, 網拍上有人銷售這種 cable,你可搜尋一番。至於沒有 Linux,則要看對方提供的線路晶片是否提供驅動程式了。

  • WEST

    Rex 大:
    依您文章所提 Adding a Serial Console to an Asus WL-700gE 裡的Serial Console 是 For Siemens A55, C55, M55, S55, M56 但是須跳線 , 如果用 Nokia 的 CA-42 傳輸線還須跳線嗎? 如何得知線的VCC(?), TX, RX, GND .
    另請教這樣的故障還可用 Serial Console 救回嗎?
    THANKS!

  • @WEST, 不確定你的故障為何,缺乏資訊無法判斷。前幾篇文章應有提到機器的 PIN header。至於線材則要看你買的店家是否願意告知你,有時雖然使用同一種晶片,但製成不同也會造成 PIN Header 有所差異。

  • WEST

    Rex 大:
    更新韌體完成後, 可能沒等到程式安裝完成
    直接按RESET 造成
    目前可以當Hub使用,應該還能救回吧
    還沒買到線
    可以由驅動看出晶片種類
    再由接頭對照NOKIA的吧

  • @WEST, 這樣應該還有救吧,聽起來硬體有被初始化,韌體可能只是出了點設定問題之類的。對,可以取得後再查。不過我的經驗是,拆掉 Nokia 的接頭後,裡面的線材很難跟接頭上的街腳對應,所以我自己是拿著電錶慢慢猜出來的。你若也買 CA-42 線材,可以告知我上面的貼紙跟電線顏色,我或許可以告訴你我已查過得線路對應資訊。

  • WEST

    Rex 大:
    目前把線都接好了
    但是不知該後續應如何做?
    需要接硬碟嗎?
    目前沒有Linux系統
    感謝

  • @WEST, 先讓自己可以看到 console message, 然後按照原訂程序重新 refresh 一次?

  • WEST

    請問 console message 是使用超級終端機觀看嗎?
    可以連線, 但無法看見訊息
    因為我沒把線剪開
    直接用NOKIA接頭PIN腳
    轉接至機板上
    會不會因此造成機子未正常連上

  • @WEST 這樣很難確認接腳是否正確耶?請試著重新開機看看,直到可以在螢幕上看到錯誤訊息吧。

  • WEST

    我是對照下圖
    http://buffalo.nas-central.org/w/images/thumb/8/8f/CA-42_DKU-5_pinout.jpg/180px-CA-42_DKU-5_pinout.jpg
    把對應的PINOUT 轉接到 WL-700GE上

    重新開機? 不用將連接線拔除再接上?

  • WEST

    重新開機有出現奇怪符號
    希望不是線材有瑕疵

  • @WEST 有出現代表有訊號,你或可替換其中 RX/TX 看看是否有回應。

  • WEST

    Rex 大:
    請教一下
    用超級終端機觀看嗎?
    我把線剪開了
    我的接法 紅色TX, 藍色RX, 橘色GND
    操作順序
    1.CA-42 接WL700GE
    2.開啟 超級終端機 (COM3 115200-N-8-1 無)
    3.WL-700GE 接電源

    還是測不出來

  • @WEST 你的 CA-42 是 Daipu 的嗎?(吃 ark3116 驅動程式),若是的話,我手上的版本是紅色 Rx, 藍色 Tx. 要不要調換一下試試?

  • WEST

    製造商編號是 DP-U8A
    驅動程式是 USB\VID_067B&PID_2303\5&83BA781&0&2
    像是 PL 晶片
    不過調換後
    仍是一樣狀況

  • @WEST, 對 067b:2303 是 PL2303. 開機沒有畫面的話,網路功能是否有通呢?

  • WEST

    網路有通
    IP 遮罩 DNS 都設了
    可是 超級終端機 下方的(COM3 115200-N-8-1)
    要搖一下接頭才會出現
    可是有連線為什麼都停在自動偵測

  • west

    Rex 大:
    網路顯示有連線
    這樣子還可以救回嗎?
    謝謝!

  • @WEST, 我以為你已經可以進去 Console 看到錯誤訊息? (搖一下接頭會出現),有訊息可以告知嗎?

  • west

    Rex 大:
    是亂碼
    不是訊息
    會不會是線出問題?

  • west

    Rex 大:
    該不會這機真的掛了吧
    願意幫忙試驗嗎?
    感謝!

  • @WEST, 搖一下才有訊號的話,應該是沒接對 RX/TX,或者根本是死機了也有可能。

  • west

    Rex 大:
    可以幫我救回嗎?