UMU 2010 年初就玩 OpenWRT/DD-WRT 了,蛋似編譯東西仍是初學者,本文純屬蛋疼的過程,歡迎批評教育,謝謝……git
首先到 https://github.com/pepe2k/u-boot_mod 看明白做者的說明。這裏簡單說一下原理:固件(firmware)刷壞,但 U-Boot 沒壞,這是半磚,能夠用 TTL 線連路由器,經過 U-Boot 的功能刷好 firmware。若是二者都壞了,叫全磚,只能把 Flash 拆下來,用編程器刷好 U-Boot 和 firmware。不死 U-Boot 就是修改了 U-Boot 的實現,使咱們能夠用 RJ-45 網線來救磚,省去拆機搭 TTL 線的麻煩。程序員
本質上說,這東西並不是真的不死,只要 U-Boot 被刷壞了,仍是會死,不過概率不大,由於 OpenWRT 官方發行的 ROM 全都是保護 U-Boot 區域的,根據 UMU 的經驗,只有三個狀況會不當心或故意刷壞:一、從原廠固件刷不良固件;二、在 DD-WRT 下搞破壞(DD-WRT 沒有保護 U-Boot);三、自制固件去掉 U-Boot 寫保護後搞破壞……若是您真的這麼蛋疼,仍是準備編程器吧,只要是軟件問題,在編程器面前沒有磚的概念。(JTAG 也是救磚神器,但不是每臺路由器都有,好比 DIR-505 就沒有!)github
因爲 UMU 是 Windows 程序員,平時沒有安裝 Linux 桌面的習慣,蛋似因爲作快遊項目,買了很多服務器,都是 CentOS,因此第一步就是在 CentOS 上嘗試編譯,後來,您們懂的,爆出各類 213 碼!服務器系統仍是不適合開發!編程
不得已就在 Hyper-V Server 2012 上安裝了 Ubuntu 12.04.1-desktop-i386,原本是想安裝 x64 版本的,但又怕這些嵌入式的東西對 x64 可能支持不夠好,算了,不要裝 13 了。服務器
接下來是選擇編譯環境了,按照 UMU 對 OpenWRT 的好感,明顯是選擇 OpenWrt Toolchain for AR71xx MIPS,而後開始編譯,嘩嘩譁,編譯好了……最後編譯出來的 bin 倒是 64KB+110B,尼瑪,這 size 超標了,刷進去不是不死,是馬上死!ip
而後終於明白了,做者其實並無用這個編譯過,他是用 Sourcery CodeBench Lite Edition for MIPS GNU/Linux 的,因此……爲了節省時間,仍是和做者保持一致吧!吐槽一下,這是商業軟件,雖然有免費的 Lite 版本,但沒搞明白爲何做者不用 OpenWRT 的……路由
make dlink_dir505 一下,最後固然就編譯出來了,UMU 還小修改了一下 Web 界面,加入了本身的特點,不過要提醒一下,不要加太多,會爆……只有 64KB 的空間!開發