目录
前言
本章节我们将对OpenWrt系统产生的背景进行介绍。
一、为什么需要嵌入式构建系统?
通常我们构建嵌入式系统构建通常比较繁琐:
- 通常需要交叉工具链、bootloader、 kernel、文件系统等;
-
众多软件包多为开源软件,经常出现相互依赖和不兼容、软件包的配置五花八门;
-
内核和软件补丁需要手动安装
-
...
庆幸的是芯片厂商、开发者、开发者社区意识到了这些问题,并积极改变这种状况。嵌入式系统在10几年时间的变化趋势:由封闭转向开放。
传统系统:
- 聚焦单个SOC
- 零散发布版本
- 重复的驱动和中间件
开放系统:
- 以客户、社区为中心
- 强大的上游力量
- 分层内核,用户控件组件
- 分离中间件和解决方案
- 支持多社区发行版
- 积极参与社区工作
嵌入式系统的构建流程:
二、OpenWrt系统历史
OpenWrt项目始于2004年1月,最早的OpenWrt版本基于Cisco Linksys为遵守GPL而放出的、为WRT54G所编写的代码 2005年初,一些新的开发者进入了团队。在封闭开发了数月之后, 团队决定发布OpenWrt的第一个“实验版本,这个实验版本使用的 build系统是基于buildroot2大改而成的,而buildroot2来自于uclibc 项目。
CISCO Linksys GPL代码下载列表:https://www.linksys.com/us/support-article?articleNum=114663
不得不说OpenWrt是踩在思科这个巨人的肩膀上。
正式介绍一下我们OpenWrt: OpenWrt系统是一个高度模块化、高度自动化的嵌入式Linux 系统构建项目。支持各种处理器架构。无论是对ARM,X86, PowerPC或者MIPS都有很好的支持。其多达3000多种软件包囊括从工具链(toolchain),到内核(linux kernel),到软件(packages),再到根文件系统(rootfs)整个体系。模块化设计,其模块化设计也可以方便的移植各类功能到OpenWrt下,加快开发速度拥有强大的网络组件,常常被用于工控设备、电话、边缘计算、物联网网关、小型机器人、智能家居、数字货币矿机、路由器以及VOIP设备等,成为事实上的网络设备的构建系统标准 。
谁在用OpenWrt
- 小米、360、磊科、Tp-link、Cisco、极路由等
- MTK、高通、NXP、全志、矽昌等
-
路由器工厂、矿机生产厂、玩具制造商、教育、工业控制等
-
创客、玩家
- ...
与OpenWrt类似的项目还有DD-Wrt、Tomato、Gargoyle(石像鬼)、Padavan和Merlin(梅林,基于华硕固件源码)等。DD-Wrt和OpenWrt源自同一套Cisco Linksys的wrt系列的代码,内核几乎相同,名字中都有Wrt。DD-Wrt则是开源商业项目alchemy(炼金术)的免费衍生品。alchemy是sveasoft从linksys代码上衍生出来的商业化产品。
OpenWrt的主要网站
OpenWrt官方网站:https://openwrt.org/
OpenWrt编译后的各个版本:http://downloads.openwrt.org/
OpenWrt历史版本及信息: https://dev.archive.openwrt.org/roadmap.html
OpenWrt开发者: https://dev.archive.openwrt.org/wiki/people.html
OpenWrt Wiki :http://wiki.openwrt.org
OpenWrt的主要版本
版本很多,大家可以自行查询,我们统计到2019年。老毛子起的代号还挺有意思的~
版本 | 代号 | 发发布时间 | 说明 |
Attitude Adjustment 12.09 | 调整态度 AA | 2012年9月 | 2012年9月发布Attitude Adjustment正式版本以后, openwrt在国内知名度比较高了。 这个版本也就是我们所说的AA,也 是从这个版本开始,openwrt开始 模拟Ubuntu系统的命名方式(2个单 词,形容词+名词),AA是两个单词 的首字母缩写。Attitude Adjustment正式版本发布于2012 年9月,故其版本名为Attitude Adjustment 12.09,AA的内核使 用3.3.8 |
Barrier Breaker 14.07 | 破雷舰 BB | 2014年7月 | 2014年的7月,Barrier Breaker 14.07。BB的内核使用3.10.49。 |
Chaos Calmer 15.05 Chaos Calmer 15.05.1 | 混乱的平静CC | 2015年5月 | CC版本的内核是3.14.xx |
LEDE 17.01.0 LEDE 17.01.1 LEDE 17.01.2 LEDE 17.01.3 LEDE 17.01.4 LEDE 17.01.5 | LEDE (Linux 嵌 入开发环 境) | 2017年1 月 | 2016年5月初,一群 OpenWrt 核心开发者不满 OPENWRT 项目组缓慢的决议,而在OPENWRT基础上 开发的新项目分支LEDE。LEDE 项目是 OpenWrt 的一 个衍生项目,曾被形容为 OpenWrt 社区的一次重启, 旨在解决无法从 OpenWrt 内部去修复的长期问题。 |
OpenWrt 18.06.0 OpenWrt 18.06.1 OpenWrt 18.06.2 OpenWrt 18.06.3 OpenWrt 18.06.4 (最新稳定版2019年7月) | ![]() | 2018年6 月 | LEDE之后由于 OpenWrt 开发者青黄不接,活跃较低, 二者倾向于重新合并。合并后的项目仍用 OpenWRT 命名。合并后的 OpenWrt 项目将按照 LEDE 制定的规 范进行管理。原有的 LEDE 和 OpenWrt 项目的活跃成 员将继续在合并后的 OpenWrt 上工作。 固件代码不再 使用 BB/CC/DD这样的代号, 使用LEDE 的17.01命名方 式。OpenWrt 18.06 合并了自 LEDE 17.01 发布以来 的 4000 多个 commits,经历了超过一年时间的开发。 这个版本将尝试为合并后的 OpenWrt 项目定义一个未 来开发的基线。主要变化包括:根据不同的处理器架构 Linux kernel 更新到 4.9.111 或 4.14.52 |
本章节简单的对OpenWrt的产生历史进行了回顾,从本章节之后,我们正式开启OpenWrt开发之旅~
总结
OpenWrt最初是群众发现发现思科用了开源代码,并且没有按照协议上的规定公开代码,后来被迫公开源码。才有了今天你和我的故事~
不得被佩服老爷子的先见之明。