在幫忙物色3G Router 剛好看到一款 ,剛好看到廠商有提供 Open source 所以先參考一下。
不過我目前還沒有機器測試。
【環境】
- Ubuntu 9.10
【下載】
- 到此處選擇 DIR-457U 下載 http://tsd.dlink.com.tw/downloads2008.asp
- 選擇好產品後按 Go
- 下載 GPL:DIR-457U_A1_for F/W:v1.01 這個。
【編譯】
- 以一般使用者登入
- 解開 tarball,例如
$ tar zxvf DIR-457U_A1_FW_v1.01_GPL_20100128.tgz - 請直接參閱 DIR-457U.GPL.readme.txt,按照上面步驟進行。
- 但最後make的時候會出現停在編譯 Kernel 的地方。
- 承上,發現 kernel 目錄會發現沒有 .config 檔,多加了下面的命令
$ cp boards/wrgg27/kernel.config kernel/.config - 再跑一次 make。
- 最後 image 目錄會多一個檔案(ex. dir457u_v1.01_a3hh.bin, 3.1M )。不確定這個是不是就是用來upgrade的 image,還需和官方的release image 大小比對,才可自行 upgrade。
【結構】
研究一下檔案放置的方式。都是以 source code 最上層路徑當主要路徑。
- Image相關
- rootfs: root file system
- kernel.img(723k)
- rootfs.img(2.3M)
- image/dir457u_v1.01_a3hh.bin(3.1M): 這三個應該是build 出來的 firmware
- 應用程式相關
- progs.board/board 一些設定檔
- apps/atcmd: 猜是 at command 相關的程式。
- apps/modules: 猜是 Broadcom wireless driver。
- templates: wps/wifi 相關的 script?
- scripts: 也是一些 script,這邊會發現他有的 script 是用 php 寫的。
- progs.brand
- www: 這應該是網頁的code吧。
- dir457u/www: 這邊也有一個 www。不知和上面那個有什差別。
- progs.gpl 一些 gpl 的 code
- iproute2
- busybox 1.00
- Mathopd: Web server
- telnetd
- wireless_tools
- pppd.alpha
- dnrd
- libgsasl: 這東西我不知道是甚麼
- progs.priv 廠商自己寫的 code
- alpha_3gtool
- xmldb
- dyndns
- wpstools
- upnpkits
- alpha_xgi: 這東西我不知道是甚麼
- progs.template
- busybox-1.00.config
- progs.board/board 一些設定檔
- Linux 相關
- kernel: v2.4.20
- 其他相關工具
- tools
- squashfs-tools: 應該是squashfs用的吧。
- tools
- 還未歸類
- ftpget
- tftp
- nvram
- diagnostic
- neaps ?
- rgbin ?
- mfc ?
【問題】
- 再編譯那邊的#5,不知是否正確,還需再研究。
- 還要研究 php 怎放進去的。
【參考】
- SQUASHFS-Linux壓縮型檔案系統的王者 http://daydreamer.idv.tw/rewrite.php/read-28.html