视频:https://www.youtube.com/watch?v=AnSuwC8ZB3U
下载:https://downloads.openwrt.org/
OpenWrt系列教程汇总:http://www.openwrt.org.cn/bbs/thread-60-1-1.html
Open + WRT
LinkSys WRT 54G 的创新点在于首次使用 linux 内核开发的路由系统,由于linux使用GPL,因此基于此开发的 WRT 系统也随之开源了(也就是现在的 OpenWRT)。
说到 linux 不得不说 GPL(GNU General Public License) 通用公共许可证,允许商业销售,但是必须开源,且基于此二次开发的软件也必须开源
OpenWRT 开源后得到极大的发展
2020年6月14日
AA:Attitude Adjustment 调整情绪
BB:Barrier Breaker 破界者
CC:Chaos Calmer 混乱平息者
DD:Designated Driver 指定 “死” 机
- 版本名如此怪异。。明显是为了凑字符。
- DD 最后没有发布(由于出现了 LEDE)
LEDE Linux Embeded Development Environment 就是 OpenWRT 的一个分支。
当年社区大佬认为社区规则老套、对于新硬件支持不好,于是单干,谁知支持的人多
(许多新功能代码都贡献到了 LEDE 项目中,以至于原本的 OpenWRT 都受到了影响)
2016 年 LEDE 开始分支
2017 年 第一个稳定版本
2018 年 重新合并入 OpenWRT
(OpenWRT 以后版本也没有用 DD EE FF … 了)
除了稳定版,还有开发版(喜欢最新(踩坑)的同学的版本)
DDWRT 和 OpenWRT 的关系不大,两者最初都使用的了 LINKSYS 内核,但后来他们走了不同的方向
OpenWRT 基于原来代码,重写驱动和组件
DDWRT 实际是一个开源的商业项目,在其上面的继续演化
(类似Linux中的CentOS和Redhot的区别)
大家可能还听过PandoraBox。它是一个国内项目,当年OpenWRT社区创始人之一LinTel带团队维护的。
这个版本对 OpenWRT 做了很多的深度定制,系统偏向稳定(但是17还是18年开始就停止开发了。。所以内核基本停止在了3.14)
这个版本对 LEDE 做深度定制,特点是软件中心(安装插件方便,但是稳定性。。。呵呵。。适合小白的系统)
来自于 恩山 的大神 Lean大 开发的版本。
原贴:https://www.right.com.cn/forum/thread-252647-1-1.html
其代码可以在Github上找到。
https://github.com/coolsnowwolf/lede
按着步骤一步步编译,基本可以编译出自己的一套版本
特点是比较接近原生 OpenWRT(没有做过度的定制化),稳定
另外有丰富的系统插件(应该能满足绝大数人的需求)
参考:https://blog.csdn.net/hongwei_1990/article/details/93791798
序号 | 目录和文件 | 描述 |
---|---|---|
1 | /config |
存放着整个系统的配置文件 |
2 | /docs |
包含了整个宿主机的文件源码的介绍,里面还有Makefile 为目标系统生成 docs 。使用 make -C docs/ 可以为目标系统生成文档 |
3 | /feeds |
下载管理软件包的 默认的 feeds 下载有packages 、management 、luci 、routing 、telephony 如要下载其他的软件包,需打开源码根目录下面的 feeds.conf.default 文件,去掉相应软件包前面的# 号,然后更新源:./scripts/feeds update -a 安装下载好的包: ./scripts/feeds install -a |
4 | /include |
OpenWrt 的很多Makefile 都存放在这里,文件名为*.mk 这里的文件是在 Makefile 里被include 的,类似于库文件,这些文件定义了编译过程 |
5 | /package |
存放了 OpenWrt 系统中适用的软件包,包含针对各个软件包的Makefile |
6 | /scripts |
存放了一些脚本,使用了 Bash ,Python ,Perl 等多种脚本语言 编译过程中,用于第三方软件包管理的 feeds 文件也是在这个目录当中在编译过程中,使用到的脚本也统一放在这个目录中 |
7 | /target |
OpenWrt 的源码可以编译出各个平台适用的二进制文件,各平台在这个目录里定义了firmware 和kernel 的编译过程 |
8 | /toolchain |
存放的就是编译交叉编译链的软件包 包括: binutils ,gcc ,libc 等等 |
9 | /tools |
编译时,主机需要使用一些工具软件,tools 里包含了获取和编译这些工具的命令软件包里面有Makefile 文件,有的还包含了patch 每个 Makefile 当中都有一句$(eval $(call HostBuild)) ,这表明编译这个工具是为了在主机上使用的 |
10 | Config.in |
在include/toplevel.mk 中可以看到,这是和make menuconfig 相关联的文件 |
11 | feeds.conf.default |
可以配置下载第三方软件包时所使用的地址 |
12 | Makefile |
在顶层目录执行make 命令的入口文件 |
13 | rules.mk |
定义了Makefile 中使用的一些通用变量和函数 |
14 | LICENSE |
软件许可证 |
15 | README |
软件基本说明:描述了编译软件的基本过程和依赖文件 |
编译一次 OpenWrt 源码后,会出现一些新的目录:
序号 | 目录 | 描述 |
---|---|---|
1 | /build_dir/host |
在该文件夹中编译主机使用的工具软件 |
2 | /build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2 |
在此编译目标平台的目标文件,包括各个软件包和内核文件 |
3 | /build_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2 |
在该文件夹中编译交叉工具链 |
4 | /bin |
保存编译完成后的二进制文件 包括:完整的 bin 文件,所有的ipk 文件 |
5 | /dl |
在编译过程中使用的很多软件 刚开始下载源码并没有包含,而是在编译过程中从其他服务器下载的 这里是统一的保存目录 |
6 | /staging_dir |
用于保存在build_dir 目录中编译完成的软件所以这里也和 build_dir 有同样的子目录结构比如:在 target-XXX 文件夹中保存了目标平台编译好的头文件,库文件在我们开发自己的 ipk 文件时,编译过程中,预处理头文件,链接动态库,静态库都是到这个子文件夹中 |
7 | /tmp |
在编译过程中,有大量中间临时文件需要保存,都是在这里 |
8 | /logs |
编译过程中出错的信息,只有当编译出错了才会出现 |