1.1简介

现阶段openwrt官方支持的路由列表:wiki.openwrt.org/toh/start
如果要学习openwrt的话,买些列表中二手的路由器来实践下更容易学习,大部分要升级一下rom芯片和内存芯片,典型配置都是4M、64M。

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 电脑系统。

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

1.3 Openwrt特点

OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。 同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序。

OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。实际上,这意味着您能够使用您想要的功能而不加进其他的累赘,而支持这些功能工作的linux kernel又远比绝大多数发行版来得新。

1.4优缺点

优点

如果对 Linux 系统有一定的认识, 并想学习或接触嵌入式 Linux 的话, OpenWRT很适合。而且OpenWRT支持各种处理器架构,无论是对ARM,X86,PowerPC或者MIPS都有很好的支持。其多达3000多种软件包,囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,使得用户只需简单的一个make命令即可方便快速地定制一个具有特定功能的嵌入式系统来制作固件。

缺点

由于CPU内核体系不同,造成很多应用程序移植到OpenWrt上的时候经常崩溃。

由于ADSL硬件模块的驱动程序没有开放源代码,造成很多ADSL一体无线路由的ADSL模块不能工作而造成功能缺失(RG100A和DB120除外)。

由于OpenWRT并不是官方发布的路由器固件,所以要使用(刷入该固件)有困难,而且其基于Linux,导致OpenWRT的入门门槛较高。

1.5开发过程

一般嵌入式 Linux 的开发过程, 无论是 ARM, PowerPC 或 MIPS 的处理器, 都必需经过以下的开发过程:

1)创建Linux交叉编译环境;
2)建立Bootloader;
3)移植Linux内核;
4)建立Rootfs (根文件系统);
5)安装驱动程序;
6)安装软件;

熟悉这些嵚入式 Linux 的基本开发流程后,不再局限于 MIPS 处理器和无线路由器, 可以尝试在其它处理器, 或者非无线路由器的系统移植嵌入式 Linux, 定制合适自己的应用软件, 并建立一个完整的嵌入式产品。

1.6历史版本

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
OpenWrt已于2016年3月22号迎来了15.05.1版本更新,这也是“Chaos Calmer”系列的首个发行版。其更新了许多内部组件,首先是内核更新到了3.18.23,修复了keyring reference leak(CVE-2016-0728);其次还迎来了OpenSSL 1.0.2f、Samba 3.6,以及netid、uhttpd、rpcd、uci、procd、ubox和hostapd等改进。

OpenWrt 15.05.1还带来了诸多驱动更新,挑重要来讲的话,有ledtrig-netdev、bcm47xxpart(支持在有坏块的NAND上用bcm53xx)、brcmfmac(更好的TX功率/波束成型/站转储支持)、8139c、solos-pci(增加了RX动态余量)、xrx200-net、以及mac80211。

除了上述这些底层改进,OpenWrt 15.05.1“Chaos Calmer”还添加了对新设备的支持,包括Linksys WRT1900ACS(mvebu)、LinkIt Smart7688(rampis)、TP-Link TL-WR841N/ND v10(ar71xx)、D-LINK DIR-615 rev. Ix(ar71xx)、ZBT WG2626(ramips)、以及Linksys WRT1900ACS(mvebu)。

此外,Gainstrong MiniBox v1.0 (ar71xx)、TP-LINK TL-WR941ND v6 international version (ar71xx)、TL-WR741ND v5 (ar71xx)、以及WR740N v5.0 (ar71xx) 也得到了支持。

最后,NETGEAR R8000迎来了USB与CPU速率方面的改进,树莓派也迎来了系统更新。

目前而言, OpenWrt 15.05.1版本将不再被合并的项目所支持,而这些版本将不会有任何未来的安全性或bug修复。OpenWrt 15.05发行版将获得有限数量的安全性和bug修复。

LEDE
LEDE其实就是Openwrt的衍生物,目前官方主要主要致力于LEDE的开发,截止到目前(2018-03-28),LEDE 17.01是最新的版本,以后将继续得到完整的安全性和bug修复支持。

《OpenWrt开发笔记》第1章 Openwrt入门相关推荐

  1. Java 学习笔记:第一章 Java入门

    Java 学习笔记:第一章 Java入门 1.1 计算机语言发展史以及未来方向 1.2 常见编程语言介绍 C语言 C++ 语言 Java语言 PHP 语言 Object-C和Swift 语言 Java ...

  2. 《OpenWrt开发笔记》第6章 WAN和LAN灵活切换

    6.1VLAN介绍 LAN: Local Area Network 的英文简称,即局域网 指在较小的地理范围内,将两台以上的计算机通过传输电缆连接起来,实现资源共享.局域网的传输速度通常在 10Mb/ ...

  3. Web前端开发笔记——第三章 CSS语言 第六节 CSS定位

    目录 一.定义 二.文档流定位 (一)block类型元素 (二)inline类型元素 (三)inline-block类型元素 三.浮动定位 (一)左浮动和右浮动 (二)清除浮动 四.层定位 (一)st ...

  4. Web前端开发笔记——第三章 CSS语言 第四节 CSS列表、表格样式

    目录 一.CSS列表样式 (一)设计列表项前标志类型 (二)设计列表项前标志位置 (三)设计列表项图片 (四)设计整体列表属性 二.CSS表格样式 (一)设计表格大小 (二)设计表格边框 (三)奇偶选 ...

  5. 云炬WEB开发笔记 第2章小结回顾

  6. Web前端开发笔记——第四章 JavaScript程序设计 第五节 数组

    目录 一.数组的创建 (一)Array()构造函数 (二)字面量方法 二.数组元素的读写和遍历 三.添加和删除数组元素 (一)添加数组元素 (二)删除数组元素 (三)splice()方法 四.二维数组 ...

  7. Web前端开发笔记——第四章 JavaScript程序设计 第四节 条件语句和循环语句

    目录 一.if条件语句 二.while循环语句 (一)while()语句 (二)do--while语句 三.for循环语句 四.switch语句 五.break语句和continue语句 一.if条件 ...

  8. Web前端开发笔记——第四章 JavaScript程序设计 第三节 数据类型

    目录 一.基本数据类型 (一)String类型 (二)Number类型 1.字面量 2.无穷大 3.非数值 (三)Boollean类型 (四)Undefined类型和Null类型 二.引用数据类型 ( ...

  9. Web前端开发笔记——第四章 JavaScript程序设计 第二节 变量

    目录 一.JavaScript中的注释 二.变量的命名规则 三.变量声明以及赋值 四.变量作用域 五.变量提升 一.JavaScript中的注释 JavaScript中单行注释通过"//&q ...

最新文章

  1. 我们用Windows官方跑了跑Linux GUI应用程序,不愧是“胶水操作系统”
  2. Java CountDownLatch的两种常用场景
  3. 实例工厂配置bean
  4. ToDictionary
  5. nodejs生成动态网页
  6. 【转】 详解C中volatile关键字
  7. Transformer入门Transformer和CNN之间的区别
  8. H3C交换机配置DHCP服务器
  9. 《管理3.0》读书笔记
  10. Symbian中的iScanCode和iCode
  11. EasyRecovery2022真正不收费的数据恢复软件
  12. 2021 年年度最佳开源软件!
  13. 具体怎么使用视频播放屏幕的感重力切换横竖屏
  14. Js实现Flash播放效果[带源码]
  15. 强类型语言与弱类型语言/面向过程与面向对象
  16. 【C语言】:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
  17. redis 6.2.6 日志文件输出
  18. js逆向-某岸网络登录参数
  19. MACos下面brew install 速度慢
  20. 增加汉明码、循环码的BPSK通信系统仿真以及误码分析

热门文章

  1. 用CSS制作凸出按钮效果
  2. python3 使用语音库pyttsx3
  3. C语言中a0x0表示什么?
  4. 差分信号,差分对和耦合(四)——差分共模信号和奇模偶模电压分量,远端噪声的产生
  5. 智能佳舞蹈变形机器人闪耀昆博会
  6. [oeasy]python0048_注释_comment_设置默认编码格式
  7. 最新温柔发卡程序源码10套显示模板 附带视频教程
  8. 吉林大学计算机控制在线作业一,吉大20春学期《新视野英语(一)》在线作业二-1(答案)...
  9. 大数据量 分类统计每个类别的排名前三的数据
  10. bone骨骼转换为cs骨骼_使用骨骼构建响应式布局:从入门开始