openWRT

一個針對嵌入式設備的Linux操作系統

OpenWrt 可以被描述為一個嵌入式的 Linux 發行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類)而不是試圖建立一個單一的、靜態的系統。OpenWrt的包管理提供了一個完全可寫的文件系統,從應用程序供應商提供的選擇和配置,並允許您自定義的設備,以適應任何應用程序。

對於開發人員,OpenWrt 是使用框架來構建應用程序,而無需建立一個完整的固件來支持;對於用戶來說,這意味著其擁有完全定製的能力,可以用前所未有的方式使用該設備。

開發背景


當Linksys釋放 WRT54G/GS 的源碼后,網上出現了很多不同版本的 Firmware 去增強原有的功能。大多數的 Firmware 都是99%使用 Linksys的源碼,只有1%是加上去的,每一種 Firmware 都是針對特定的市場而設計,這樣做有2個缺點,第一個是難以集合各版本Firmware的長處,第二個是這版本距離 Linux 正式發行版越來越遠。
OpenWrt 選擇了另一條路,它從零開始,一點一點的把各軟體加入進去,使其接近 Linksys 版 Firmware的功能,而OpenWrt 的成功之處是它的文件系統是可寫的,開發者無需在每一次修改後重新編譯,令它更像一個小型的 Linux 電腦系統。

發展歷程


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年底公布。

系統特點


OpenWRT是一個高度模塊化、高度自動化的嵌入式Linux系統,擁有強大的網路組件和擴展性,常常被用於工控設備、電話、小型機器人、智能家居、路由器以及VOIP設備中。同時,它還提供了100多個已編譯好的軟體,而且數量還在不斷增加,而 OpenWrt SDK 更簡化了開發軟體的工序。
OpenWRT不同於其他許多用於路由器的發行版,它是一個從零開始編寫的、功能齊全的、容易修改的路由器操作系統。實際上,這意味著您能夠使用您想要的功能而不加進其他的累贅,而支持這些功能工作的linux kernel又遠比絕大多數發行版來得新。

優勢

如果對 Linux 系統有一定的認識, 並想學習或接觸嵌入式 Linux 的話, OpenWRT很適合。而且OpenWRT支持各種處理器架構,無論是對ARM,X86PowerPC或者MIPS都有很好的支持。其多達3000多種軟體包,囊括從工具鏈(toolchain),到內核(linux kernel),到軟體包(packages),再到根文件系統(rootfs)整個體系,使得用戶只需簡單的一個make命令即可方便快速地定製一個具有特定功能的嵌入式系統來製作固件。
一般嵌入式 Linux 的開發過程, 無論是 ARM, PowerPC 或 MIPS 的處理器, 都必需經過以下的開發過程:
1、創建 Linux 交叉編譯環境;
2、建立 Bootloader
3、移植 Linux 內核;
4、建立 Rootfs (根文件系統);
5、安裝驅動程序;
6、安裝軟體;
熟悉這些嵌入式 Linux 的基本開發流程后,不再局限於 MIPS 處理器和無線路由器, 可以嘗試在其它處理器, 或者非無線路由器的系統移植嵌入式 Linux, 定製合適自己的應用軟體, 並建立一個完整的嵌入式產品。

劣勢

1.由於CPU內核體系不同,造成很多應用程序移植到OpenWrt上的時候經常崩潰。
2.由於ADSL硬體模塊的驅動程序沒有開放源代碼,造成很多ADSL一體無線路由的ADSL模塊不能工作而造成功能缺失(RG100A和DB120除外)。
3.由於OpenWRT並不是官方發布的路由器固件,所以要使用(刷入該固件)有困難,而且其基於Linux,導致OpenWRT的入門門檻較高。

歷史版本


White Russian
OpenWRT的初始版本,從2005年7月的White Russian RC1開始發展,一直到2007年1月才發布White Russian 0.9。
Kamikaze
OpenWRT的第二個版本,從2007年6月開始發布Kamikaze 7.06,一直更新到2010年1月的Kamikaze 8.09.2結束。這期間OpenWRT進行了大量改進,並為它的發展打下了堅實的基礎。
Backfire
2010年03月04日,OpenWrt Backfire 10.03 Beta發布,該版本是開源的路由器固件,基於linux,功能強大,支持很多主流的平台和路由器,甚至支持國內的君正jz4740平台,是學習和開發嵌入式,也是工業、商業應用理想平台。更新方面: brcm-2.4 更新到 2.4.37 kernel ,other targets 更新到 2.6.30 or 2.6.32 ,arm/mips平台的 gcc 更新到 4.3.3 ,powerpc的gcc更新到 4.4.3 ,uClibc 更新到 0.9.30.1 , Broadcom 11g 晶元組的 b43 無線網卡驅動更新到 2.6 kernel ,支持Atheros 11n ath9k ,支持很多新的ar71xx設備,magicbox歸入ppc40x平台。
2010年03月25日,OpenWrt 發布 Backfire 10.03-rc1,支持國內流行的tp-link最新多款11n的路由器,是不是想讓路由器支持萬能中繼呢,或者增加路由器的多wan口支持呢,更多的這些高端路由才有的功能,或許能讓家用路由輕鬆具備。
2010年04月07日,OpenWRT放出Backfire 10.03正式版。
2010年08月29日,OpenWRT放出了Backfire 10.03.1。修正了很多BUG,提高了兼容性。TP-LINK WR841N v2 已經可以正常使用了,包括無線部分和上網部分。自rc1之後的變動:改進了防DNS重綁定攻擊,改進了uhttpd穩定性, Rootfs生成修復(Orion景象),修正了基於BRCM47XX的PCI初始化,添加了rtl8366 vlan 改變的 整合腳本,還原了一般x86鏡像 GRUB控制台,提高了ar71xx系列乙太網驅動程序性能,添加了ar7240 交換機驅動,一些swconfig 和 交換機驅動的改進,RDC 使用啟動載入器支持波特率,允許原生HID 支持 通過添加 kmod-input-hid,6in4:適當的處理了PPPoE連接並且修復了終端隧道更新。
Attitude Adjustment
於2013年4月25日放出。相對於Backfire版本,Attitude Adjustment將內核更新至linux 3.3,改進了網路配置方法,並添加了諸多新特性,例如對IPv6的初步支持。同時,這個版本也改善了防火牆,更新了許多新的驅動,並添加了許多新的支持的型號。對ramips、bcm2708(即樹莓派)等方案提供了支持。
Barrier Breaker
於2014年10月2日放出。Barrier Breaker更新了3個RC版本,相對Attitude Adjustment,其內核升級至 3.10,添加了原生IPv6支持;改進了文件系統,添加了nand快閃記憶體的系統更新,並支持文件系統的快照和回滾;UCI配置工具也得以改進,支持測試性配置並允許將配置回滾至上一次穩定工作的狀態;加強了網路功能,對動態防火牆規則、空間等添加了支持。這個版本相當穩定。
Chaos Calmer
當前的更新版本,仍然在持續更新。

版本時間軸


版本號發布日期代號
穩定版本
18.06.02018年7月
17.01.62018年9月Reboot
17.01.52018年7月Reboot
17.01.42017年10月Reboot
17.01.32017年10月Reboot
17.01.22017年6月Reboot
17.01.12017年3月Reboot
17.01.02017年2月Reboot 
15.05.12016年3月Chaos Calmer
15.052015年6月Chaos Calmer 
14.072014年10月Barrier Breaker
12.092013年4月Attitude Adjustment
10.03.12011年12月Backfire
10.032010年4月Backfire
8.09.22010年1月Kamikaze
8.09.12009年6月Kamikaze
8.092008年9月Kamikaze
7.092007年9月Kamikaze
7.072007年7月Kamikaze
7.062007年6月Kamikaze
0.92007年1月White Russian0.9
0.x2006年11月White RussianRC6
0.x2006年3月White RussianRC5
0.x2005年11月White RussianRC4
0.x2005年9月White RussianRC3
0.x2005年7月White RussianC2
0.x2005年6月White RussianRC1
0.x2005年2月Before experimental
openWRT
openWRT

國內版本


鑒於開源軟體在國內的發展態勢,目前國內有基於OpenWRT改進而來的OpenWRT-DreamBox。
開發Dreambox的lintel之後開發了基於Barrier Breaker的PandoraBox。
這個版本的OpenWRT集成了很多常用功能(包括離線下載等),使用了改進過的較為穩定的硬體驅動,通過這個版本的OpenWRT可以把路由器的功能發揮得淋漓盡致,同時也保證路由器的穩定運行。