OpenWrt 可以被描述为一个嵌入式的
Linux 发行版。(主流路由器固件有
dd-wrt,tomato,openwrt,padavan四类)对比一个单一的、静态的系统,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,
X86,
PowerPC或者
MIPS都有很好的支持。 其多达3000多种
软件包,囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages),再到
根文件系统(rootfs)整个体系,使得用户只需简单的一个
make命令即可方便快速地定制一个具有特定功能的
嵌入式系统来制作固件。
一般嵌入式 Linux 的开发过程, 无论是 ARM, PowerPC 或 MIPS 的处理器, 都必需经过以下的开发过程:
2、建立 Bootloader;
3、移植 Linux 内核;
4、建立 Rootfs (根文件系统);
6、安装软件;
熟悉这些嵌入式 Linux 的基本开发流程后,不再局限于 MIPS 处理器和
无线路由器, 可以尝试在其它处理器, 或者非无线路由器的系统移植嵌入式 Linux, 定制合适自己的应用软件, 并建立一个完整的
嵌入式产品。
劣势
历史版本
White Russian
OpenWRT的初始版本,从2005年7月的White Russian RC1开始发展,一直到2007年1月才发布White Russian 0.9。
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
当前的更新版本,仍然在持续更新。
版本时间轴
国内版本
鉴于
开源软件在国内的发展态势,国内有基于OpenWRT改进而来的OpenWRT-DreamBox。
开发Dreambox的lintel之后开发了基于Barrier Breaker的PandoraBox。
这个版本的OpenWRT集成了很多常用功能(包括
脱机下载等),使用了改进过的较为稳定的硬件驱动,通过这个版本的OpenWRT可以把路由器的功能发挥得淋漓尽致,同时也保证路由器的
稳定运行。