我的openwrt学习笔记(一):OpenWrt简介
关于 OpenWrt
openwrt是嵌入式设备上运行的linux系统。OpenWrt 的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的 Linux 电脑系统,也加快了开发速度。你会发现无论是 ARM, PowerPC 或 MIPS 的处理器,都有很好的支持。并且附带3000左右的软件包,用户可以方便的自定义功能来制作固件。也可以方便的移植各类功能到openwrt下。总之,OpenWrt SDK 更简化了开发软件的工序。
优势
如果对 Linux 系统有一定的认识, 并想学习或接触嵌入式 Linux 的话, OpenWRT很适合。而且OpenWRT支持各种处理器架构,无论是对ARM,X86,PowerPC或者MIPS都有很好的支持。其多达3000多种软件包,囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,使得用户只需简单的一个make命令即可方便快速地定制一个具有特定功能的嵌入式系统来制作固件,那么openwrt的固件即是包括工具链(toolchain),内核(linux kernel),软件包(packages)和根文件系统(rootfs)的整个体系。
一般嵌入式 Linux 的开发过程, 无论是 ARM, PowerPC 或 MIPS 的处理器, 都必需经过以下的开发过程:
1、创建 Linux 交叉编译环境;
2、建立 Bootloader;
3、移植 Linux 内核;
4、建立 Rootfs (根文件系统);
5、安装驱动程序;
6、安装软件;
通过openwrt快速构建一个应用平台,openwrt从交叉编译器,到linux内核,再到文件系统甚至bootloader都整合在了一起,形成了一个SDK环境。
随着Linux的成熟,大量不同的处理器内核和应用软件相继出现。熟悉这些嵚入式 Linux 的基本开发流程后,不再局限于 MIPS 处理器和无线路由器, 可以尝试在其它处理器, 或者非无线路由器的系统移植嵌入式 Linux, 定制合适自己的应用软件, 并建立一个完整的嵌入式产品。
劣势
1. 由于CPU内核体系不同,造成很多应用程序移植到OpenWrt上的时候经常崩溃。
2. 由于OpenWRT并不是官方发布的路由器固件,所以要使用(刷入该固件)有困难,而且其基于Linux,导致OpenWRT的入门门槛较高。
历史版本
White Russian
OpenWRT的初始版本,从2005年7月的White Russian RC1开始发展,一直到2007年1月才发布White Russian0.9。[3]
Kamikaze
OpenWRT的第二个版本,从2007年6月开始发布Kamikaze 7.06,一直更新到2010年1月的Kamikaze 8.09.2结束。这期间OpenWRT进行了大量改进,并为它的发展打下了坚实的基础。[3]
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 11nath9k ,支持很多新的ar71xx设备,magicbox归入ppc40x平台。
2010年03月25日,OpenWrt 发布 Backfire10.03-rc1,支持国内留下的 tp-link最新多款11n的路由器,是不是想让路由器支持万能中继呢,或者增加路由器的多wan口支持呢,更多的这些高端路由才有的功能,或许能让家用路由轻松具备。
2010年04月07日,OpenWRT放出Backfire 10.03正式版。
2010年08月29日,OpenWRT放出了Backfire 10.03.1。修正了很多BUG,提高了兼容性。TP-LINK WR841Nv2 已经可以正常使用了,包括无线部分和上网部分。自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
当前的更新版本,仍然在持续更新。
版本时间轴
版本号 |
发布日期 |
代号 |
版本前沿 |
||
测试中 |
持续更新 |
Chaos Calmer |
稳定版本 |
||
14.07 |
2014年10月 |
Barrier Breaker |
12.09 |
2013年4月 |
Attitude Adjustment |
10.03.1 |
2011年12月 |
Backfire |
10.03 |
2010年4月 |
Backfire |
8.09.2 |
2010年1月 |
Kamikaze |
8.09.1 |
2009年6月 |
Kamikaze |
8.09 |
2008年9月 |
Kamikaze |
7.09 |
2007年9月 |
Kamikaze |
7.07 |
2007年7月 |
Kamikaze |
7.06 |
2007年6月 |
Kamikaze |
0.9 |
2007年1月 |
White Russian0.9 |
0.x |
2006年11月 |
White RussianRC6 |
0.x |
2006年3月 |
White RussianRC5 |
0.x |
2005年11月 |
White RussianRC4 |
0.x |
2005年9月 |
White RussianRC3 |
0.x |
2005年7月 |
White RussianC2 |
0.x |
2005年6月 |
White RussianRC1 |
0.x |
2005年2月 |
Before experimental |
5国内版本
鉴于开源软件在国内的发展态势,目前国内有基于OpenWRT改进而来的OpenWRT-DreamBox。
开发Dreambox的lintel之后开发了基于Barrier Breaker的PandoraBox。
这个版本的OpenWRT集成了很多常用功能(包括脱机下载等),使用了改进过的较为稳定的硬件驱动,通过这个版本的OpenWRT可以把路由器的功能发挥得淋漓尽致,同时也保证路由器的稳定运行。[4]
参考资料
· 1. 什么是OpenWrt openwrt中文技术应用网. http://www.openwrt.org.cn/
· 2. OpenWRT官方Wiki. http://wiki.openwrt.org/
· 3. OpenWrtVersion History .OpenWRT Wiki https://en.wikipedia.org/wiki/OpenWrt.
· 4. 关于OpenWrt-DreamBox .OpenWrt-DreamBox开发中心 .