由於我目前手上的project是base on OpenWrt, 就讓我門多認識它一些吧!
*
1.關於OpenWrt
當Linksys釋放WRT54G/GS的源碼後,網上出現了很多不同版本的Firmware去增強原有的功能。大多數的 Firmware都是99%使用Linksys的源碼,只有1%是加上去的,每一種Firmware都是針對特定的市場而設計,這樣做有2個缺點,第一個 是難以集合各版本Firmware的長處,第二個是這版本距離Linux正式發行版越來越遠。
OpenWrt選擇了另一條路,它從零開始,一點一點的把各軟件加入去,使其接近Linksys版Firmware的功能,而OpenWrt的成功之處是它的文件系統是可寫的,開發者無需在每一次修改後重新編譯,另它更像一個小型的Linux電腦系統,也加快了開發速度。
*
2. 為什麼使用OpenWrt
因為Linux為我們提供了很多免費的軟件,我們可以用一個很低的價錢購買像WRT54G的硬件,做成一個小型的Linux系 統,現在OpenWrt已經提供了100多個已編譯好的軟件,而且數量還在不斷增加,而OpenWrt SDK更簡化了開發軟件的工序
*
3. OpenWrt的歷史
OpenWrt項目由2004年1月開始,第一個版本是基於Linksys提供的GPL源碼及uclibc中的buildroot項 目,這個版本稱為“stable”版,在網上至今仍有很多項目使用這個版本,較為有名Freifunk-Firmware和Sip@Home.
到 了2005年初,一些新的開發人員加入了這項目,幾個月後他們釋出了第一個“experimental”版本,這和以前版本不同的是,這版本差不多完全捨 棄了Linksys的GPL源碼,使用了buildroot2作為核心技術,將OpenWrt完全模塊化,OpenWrt使用Linux正式發行的核心源 碼(2.4.30),加上了一些補丁和網絡驅動,開發隊伍更為OpenWrt添加了許多免費的工具,你可以直拉把Image寫入Flash (mtd)裡面,設定無線功能和VLAN交換功能,這個版本名為“White Russian”,而1.0版本大概於2005年底公佈。
*
4.為什麼是OpenWrt?
雖 然幾年前已看過一些和嵌入式Linux相關的報導,但由於我的工作和Linux ,甚至嶔入式Linux完全扯不上關係,所以一直沒有機會接觸嵌入式Linux。
而且在香港,要找到嶔入式系統的開發工具並不是那麼容易的。有一次,我為 了在宿舍內安裝無線網橋,買了一對Linksys WRT54G,回來後才知道買錯了(應該買WAP54G才對),於是我上網看看有沒有其他辦法,在這偶然的情況下,我發現OpenWRT可以實現這功能, 便開始了改裝這路由器的研究…Linksys WRT54G是一個幾乎在任何電腦商場都可以買到的無線路由器,只需拿出4-5百元,你就可以擁有一個配備200MHz CPU, 4MB Flash, 16MB Ram的嵌入式開發系統,而且在你完成你的開發後,你還可以應用在生活上,一點都不浪費。
由於它使用Linux作為操作系統,並公開源碼及驅動,在網絡上 已有很多為它而設計的開源項目,包括HyperWRT, OpenWRT, SIP Phone等等,實在是學習嵌入式Linux的入門級首選。
為什麼學習OpenWRT?你不需要對MIPS處理器有很深入的了解,也不用懂得如何去設計一 個MIPS處理器專用的內核,因為這些在網上已有人為你做好,你只需懂得如何安裝和使用就行了,不過你也可以去 http://www.linux-mips.org 找到相關的資料。
如果你對Linux系統有一定的認識,並想學習或接觸嵌入式Linux的話, OpenWRT很適合你,你將學會一些無線路由器的基本知識,以及一般嵌入式Linux的開發過程,你會發現無論是ARM , PowerPC或MIPS的處理器,都必需經過以下的開發過程:
1.創建Linux交叉編譯環境
2.建立Bootloader
3.移植Linux內核
4. 建立Rootfs (根文件系統)
5.安裝驅動程序
6.安裝軟件
7 .調試隨著Linux的成熟,大量不同的處理器內核和應用軟件相繼出現,
當你熟悉這些嶔入式Linux的基本開發流程後,你不再局限於MIPS處理器和無 線路由器,你可以嘗試在其它處理器,或者非無線路由器的系統移植嵌入式Linux,定制合適自己的應用軟件,並建立一個完整的嵌入式產品。