數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 2008-11-16 00:51:42

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

[DD-WRT] 華碩Router改機

手癢想改機, 卻不知從何著手嗎? 改機之前, 請先參考拙作, 改機前的思考, 改機前的準備工作. 先想清楚自己的技術能力, 再決定是否動手.

事前準備的工具程式:
1. NotePad++: 紀錄改機過程.
2. PuTTY + RS-232 console線: 輸入命令並監看刷機過程.
3. FileZilla: 下載Router的CFE, nvram.
4. WinMD5Free: MD5比對, 檢查韌體的正確性.

刷機過程請盡量使用NotePad++多紀錄. 刷機成功則成了自己的筆記; 刷機失敗也才有跡可循.

以下是用WL-500gx(f/w: v1.9.5.0), 在Windows XP下操作, 提供網友參考.

1. 華碩Router內部照片, 請參考wl500g.info. 接上內部RS-232與console線, 開啟PuTTY, 監看Router輸出訊息並紀錄.
https://digiland.tw/uploads/614_putty_com1_115200.gif

2. 恢復原廠預設值
https://digiland.tw/uploads/614_asus_wl-500gx_advanced_factorydefault_content.gif

3. 備份CFE
請先參考DD-WRT的CFE backup. CFE可在更新韌體後備份, 但nvram則因刷機而變更.
若您的機器是WL-500gP, 亦可經由Telnet操作. 請參考拙作啟用utelnetd, 再設定啟動vsftpd, 將CFE, nvram備份出來.
若無RS-232 console線, 以下可省略.
WL-500gx韌體內找不到telnet程式, 所以下面命令都是在PuTTY內輸入. #是提示符號, 不必鍵入.
3-1. 複製cfe, nvram.

# dd if=/dev/mtd/0 of=/tmp/cfe.bin # dd if=/dev/mtd/3 of=/tmp/nvram.bin


3-2. 新建stupid-ftpd.conf. 下一行, 結束.

# cat > /tmp/stupid-ftpd.conf mode=daemon serverroot=/ changeroottype=real port=21 maxusers=2 user=anonymous * /tmp 2 DM


3-3. 執行ftpd

# stupid-ftpd


3-4. 由FileZilla下載cfe, nvram, 存放在PC.
https://digiland.tw/uploads/614_filezilla_download_wl-500gx_cfe.gif

4. 了解機器
查閱DD-WRT支援的硬體清單, 先確認機器可支援刷機. 紀錄CPU型號與flash memory容量. 亦可參考本站ASUS WL全系列硬體規格表.

5. 下載韌體
暫選用穩定版v24-sp1
下載MD5SUMS後, 再到WL500g-Deluxe目錄, 下載dd-wrt.v24_mini_asus.trx
請注意, Mini版在2MB的機器(WL-520GC等)不適用. 請使用Micro版.

6. MD5檢查
https://digiland.tw/uploads/614_winmd5free_checksum.gif
NotePad++開啟MD5SUMS, 複製MD5碼
https://digiland.tw/uploads/614_notepadpp_dd-wrt_v24sp1_mini_asus.gif
貼到WinMD5Free
https://digiland.tw/uploads/614_winmd5free_paste.gif
按Verify比對, 顯示相符.
https://digiland.tw/uploads/614_winmd5free_verify.gif

7. 刷機
終於到最重要階段. 刷機前先參閱使用手冊, 作硬體Reset.
由網頁方式替換華碩韌體, 適用多種操作系統. 亦可由TFTP方式操作.
2MB的機器(WL-520GC等)請經由TFTP方式替換韌體.
刷機過程當中, 切勿隨意斷電或Reset等動作.
https://digiland.tw/uploads/614_asus_wl-500gx_advanced_firmwareupgrade_content_dd-wrt_v24sp1.gif
https://digiland.tw/uploads/614_putty_advanced_firmwareupgrade_content.gif
Router自動重開機後, 開啟DOS shell(附屬應用程式--> 命令提示字元), 輸入: ping 192.168.1.1

(省略) Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 (省略)


OK, 開啟瀏覽器, http://192.168.1.1/ 應可看到DD-WRT畫面, 恭喜您.

8. 進入DD-WRT
第一次進入, 自訂帳號密碼.
https://digiland.tw/uploads/614_dd-wrt_router_password.gif
https://digiland.tw/uploads/614_dd-wrt_management_top_eng.gif
網頁下拉到語言選項, 切換中文顯示.
https://digiland.tw/uploads/614_dd-wrt_management_language_selection.gif
按Save--> Apply Settings後
https://digiland.tw/uploads/614_dd-wrt_management_top_cht.gif

以上, 先告一段落. 找時間再補後續步驟. 希望您在刷機過程中學到更多東西.
如果喜歡非官方韌體, 也請贊助她, 幫助她成長.




離線

 

#2 2008-11-20 12:42:56

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 華碩Router改機

ok, 已經有了DD-WRT, 再來要更換不同功能的版本就簡單了.

1. 規劃欲擴充改機的環境
1-1. 儲存媒體
通常使用USB flash, HD, SD card等, 但也可以透過CIFS連結內部區網PC所分享的資料夾, 當作儲存的空間.
1-2. 媒體格式
USB HD建議使用ext3; USB flash, SD card使用ext2.
1-3. Swap
swap可使用磁區或檔案型式, 不建議在USB flash或SD card內.

2. 選擇更換韌體的版本
使用DD-WRT自由度很高, 相同的機器可選用不同的韌體版本, 來達到自己的需求. 新手也往往面對眾多版本而不知所措. 首先了解自己機器的能耐, 參閱本站ASUS WL全系列硬體規格表. 再參閱DD-WRT版本說明, 選用合適的版本.
舉例來說, 8MB的WL-500gP可安裝Mega以下版本; 4MB的WL-500gx可安裝Standard以下版本; 2MB的WL-520GC僅能安裝Micro版本.
V24_TNG(The Next Generation)內, 以晶片區分: VINT, NEWD; 以flash memory容量區分: micro, mini, std, mega; 以功能區分: hotspot, usb, openvpn, voip等.
8MB的WL-500gP等, 建議安裝mega; 4MB含USB的WL-500gx等, 可選用mini_usb, nokaid_usb; 2MB的WL-700gE安裝micro版.(再載入USB 2.0 module?)
待您熟悉DD-WRT後, 可依需求選擇占用最低系統資源的版本, 來獲取最大剩餘資源, 作其他運用.

3. 更換韌體
3-1. MD5檢查
3-2. 出廠預設值
https://digiland.tw/uploads/614_dd-wrt_factory_defaults.gif
3-3. 設定Username, Password
3-4. Firmware Upgrade
https://digiland.tw/uploads/614_dd-wrt_upgrade_v24-10923.gif

4. 使用JFFS2與擴充
參閱DD-WRT之Journalling Flash File System
4-1. 使用JFFS2
系統管理--> 基本管理--> JFFS2 儲存區域
JFFS2: 啟用
--> 儲存設定--> 儲存重啟
清除JFFS2: 啟用
--> 儲存重啟
PuTTY console訊息

(省略) Erasing ddwrt ... (省略)


清除JFFS2: 關閉
--> 儲存設定--> 重新啟動路由器
若啟用JFFS2, 預設mount的/jffs的剩餘空間大小, 依據選用的韌體版本而不同. 例如: WL-500gx使用mini_usb版, 剩餘大小380KB.
https://digiland.tw/uploads/614_dd-wrt_management_jffs2_v24-10923-mini-usb_wl-500gx.gif

# df -h Filesystem Size Used Available Use% Mounted on rootfs 2.1M 2.1M 0 100% / /dev/root 2.1M 2.1M 0 100% / /dev/mtdblock/4 704.0k 324.0k 380.0k 46% /jffs


4-2. 擴充JFFS2
/jffs主要存放OpenWrt套件, 核心模組, 開機script等. 空間大小的規劃, 依照需求而定. 如有不足, 利用外接式儲存媒體擴充容量. 亦可使用開機script, mount CIFS.

5. 建立套件列表

# mkdir -p /jffs/tmp/ipkg # ipkg update


6. 硬碟分割與格式化
參閱DD-WRT的USB storage
若使用CIFS當作儲存媒體, 此步驟可省略.
6-1. 啟用USB
伺服器--> 伺服器--> USB 驅動
https://digiland.tw/uploads/614_dd-wrt_services_usb_v24-10923-mini-usb.gif
可依需求點選必要項目.
--> 儲存設定--> 重新啟動路由器
外接式USB硬碟, 請外接電源.
6-2. 檢查

# dmesg | grep -i scsi


6-3. 安裝OpenWrt相關套件
若已在其他PC事先分割格式化者, 此步驟可省略.
不同版本所含的內建命令與模組都不相同. 若您要使用的命令不存在, 得先安裝OpenWrt的相關套件後, 才能執行.

fdisk - Partition table manipulation utility e2fsprogs - Ext2/3 filesystem utilities swap-utils - Swap space management utilities


因使用OpenWrt, 需要相關的library

uclibc - Standard C library for embedded Linux systems libgcc - GCC support library


所以, 依內建命令的缺少, 安裝對應的套件, 更改library來源路徑後, 就可依照WL-500g 系列改機基本步驟, 分割格式化硬碟.
例如: WL-500gx使用mini_usb版
先安裝uClibc

# cd /tmp # wget http://downloads.openwrt.org/whiterussian/packages/uclibc_0.9.27-9_mipsel.ipk # wget http://downloads.openwrt.org/whiterussian/packages/libgcc_3.4.4-9_mipsel.ipk # ipkg -force-depends install uclibc_0.9.27-9_mipsel.ipk libgcc_3.4.4-9_mipsel.ipk # rm *.ipk # cd ~


再安裝fdisk套件

# ipkg install fdisk


開啟另一shell, 更改library來源路徑, 執行fdisk

# sh # export LD_LIBRARY_PATH=/jffs/lib # fdisk -l Disk /dev/scsi/host0/bus0/target0/lun0/disc: 14 MB, 14909440 bytes 2 heads, 32 sectors/track, 455 cylinders Units = cylinders of 64 * 512 = 32768 bytes Device Boot Start End Blocks Id System /dev/scsi/host0/bus0/target0/lun0/part1 * 1 455 14544 83 Linux # exit


同樣道理, 安裝e2fsprogs後, 可執行格式化; 安裝swap-utils, 可啟用swap.
格式化較大硬碟前, 先啟用swap.
nokaid_usb版已內建格式化程式, 不需安裝e2fsprogs.
安裝相關的OpenWrt必要套件後, 可將/jffs目錄打包壓縮備份.

以上, 再告一段落. 因為DD-WRT版本很多, 不像Oleg單純, 所以安裝步驟各不相同. 必須領悟其中的道理, 才能往Optware邁進.



離線

 

#3 2008-11-21 09:41:12

infall
新生
註冊日期: 2008-03-01
文章數: 45
目前積分 :   

Re: [DD-WRT] 華碩Router改機

友情提示:
http://xtalwu.myweb.hinet.net
这个站的内容 大陆访问不到的
所以您帖的图 也看不到。


離線

 

#4 2008-11-21 14:25:38

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 華碩Router改機

因目前相關資料還未整理完畢, 所以圖片部分暫放HiNet空間, 以免佔用站長的頻寬.


離線

 

#5 2008-11-21 22:54:32

Aven
天使
來自: 數位天堂
註冊日期: 2007-07-15
文章數: 2266
網站

Re: [DD-WRT] 華碩Router改機

hippo 提到:

因目前相關資料還未整理完畢, 所以圖片部分暫放HiNet空間, 以免佔用站長的頻寬.

不好意思,礙於現在的聯外頻寬與主機效能,所以暫未提供圖片上傳功能(此功能非 punbb 標準功能,還要改 punbb 才有)。




技術問題請於論壇上集眾人之力公開討論,感恩 thankgod

離線

 

#6 2008-11-23 01:26:43

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 華碩Router改機

ok, 再來就是最後的套件安裝. 您可選用OpenWrt或Optware的套件. 二者都有自己的uClibc, 所以只要注意library的來源路徑, 套件的使用上並無太大的不同. OpenWrt的套件會安裝在/jffs, Optware的套件會安裝在/opt.

OpenWrt的套件安裝, 在上篇已概略提過. 如果您想使用OpenWrt, 建議您再安裝ipkg來管理, 會比DD-WRT內建的ipkge功能更多.

ipkg-sh - lightweight package management system (shell version) ipkg - lightweight package management system


DD-WRT的Optware套件與Oleg的Optware套件, 都是同樣由NSLU2-Linux維護, 所以套件與設定等, 大致相同. 安裝Optware前, 先mount /opt, 再參考DD-WRT的Optware這篇文章. 安裝方式可選用別人寫好的script自動安裝, 也可手動安裝. uClibc一樣是不可少的基本套件, 然後再安裝ipkg-opt作管理.

uclibc-opt - 0.9.28-13 - micro C library for embedded Linux systems ipkg-opt - 0.99.163-10 - The Itsy Package Manager ipkg-web - 7-7 - A web frontend for ipkg


咦, 有web管理耶! 不過我個人還沒用過, 等候您的測試與分享.

談到這邊, 大概可以結束了. 心思慎密的您可能會有個疑問, 每次開機後, 要一步一步來嗎? 開機啟動在哪裡? 答案就在網頁設定內. 可將開機後要執行的命令放在系統管理--> 指令, 命令輸入後--> 儲存啟動指令. 或者寫個script, 附檔名.startup, 存放在/jffs/etc/config目錄內.

最後, 請問您幾個問題:
1. 如何由遠端, 刷機為DD-WRT, 分割, 格式化硬碟, 到安裝OpenWrt/Optware等相關套件?
2. 如何判斷哪些是必要的套件?
3. 如何利用JFFS2/CIFS?
如能解決上述問題, 而別人稱您為師傅, 可當之無愧也. 屆時不要忘了提攜新手, 一起窺探Linux的自由世界.

ps. 上述改機過程會陸續整理在wiki內.


離線

 

#7 2008-12-21 21:46:54

ardayang
精靈
註冊日期: 2008-05-25
文章數: 104
目前積分 :   

Re: [DD-WRT] 華碩Router改機

1.請問mount usb隨身碟或usb外接硬碟有什麼技巧嗎?
USB 驅動都開了,就是mount不起來,可是jffs確正常沒問題.
fdisk -l可以看到/dev/scsi/host1/bus0/target0/lun0/disc
可是df確看不到
swap確有可以正常啟動.

2.有dd-wrt韌體可以超頻嗎?因為他顯示超頻不支援.


離線

 

#8 2008-12-22 10:36:28

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 華碩Router改機

1. 先確認file system核心模組, 我使用ext3

# lsmod | grep ext3 ext3 76884 2 jbd 58280 2 [ext3]


2. 檢查磁碟

# ls -l /dev/discs/disc0/ brw------- 1 root root 8, 0 Jan 1 1970 disc brw------- 1 root root 8, 1 Jan 1 1970 part1 brw------- 1 root root 8, 5 Jan 1 1970 part5 brw------- 1 root root 8, 6 Jan 1 1970 part6


3. 掛載磁碟

# mount -t ext3 /dev/discs/disc0/part5 /opt


4. 檢查

# mount (省略) /dev/discs/disc0/part5 on /opt type ext3 (rw)


設定nvram的clkfreq, 可調整cpu頻率.


離線

 

#9 2008-12-22 21:33:18

ardayang
精靈
註冊日期: 2008-05-25
文章數: 104
目前積分 :   

Re: [DD-WRT] 華碩Router改機

hippo 提到:

3. 掛載磁碟

# mount -t ext3 /dev/discs/disc0/part5 /opt


感謝指導!還是mount不起來,持續研究中,dd-wrt真的比較複雜.


離線

 

#10 2008-12-22 22:56:29

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 華碩Router改機

# dmesg | tail


查看是否有錯誤訊息.


離線

 

友情連結

論壇頁尾

Powered by PunBB
© Copyright 2018 Rickard Andersson
RSS Feed