- openwrt
- openwrt 历史与简介
- 特点:
- OpenWrt优势
- openwrt code下载
- 下载代码
- 创建开发分支
- 文件结构分析
- openwrt编译
- 安装需要的工具包
- 更新包
- 安装包
- 根据硬件配置
- 编译
- openWRT 烧录
- 大家有疑问或者咨询问题,请扫描关注 下面的公众号
openwrt
openwrt 历史与简介
官方网站:https://openwrt.org/
官方github: https://github.com/openwrt/openwrt
OpenWrt Project是一个针对嵌入式设备的Linux操作系统。
特点:
- 提供具有包管理的完全可写文件系统
- 允许通过使用软件包来自定义设备以适应任何应用程序
- 构建应用程序的框架
2016年,LEDE项目成立,作为OpenWrt项目的衍生产品,并分享了许多相同的目标。该项目旨在构建嵌入式Linux发行版,使开发人员,系统管理员或其他Linux爱好者可以轻松地为嵌入式设备(尤其是无线路由器)构建和定制软件。LEDE这个名字代表 (Linux Embedded Development Environment)Linux嵌入式开发环境。
2018年1月,OpenWrt和LEDE项目同意以OpenWrt名称重新合并。
OpenWrt优势
- 可扩展性: OpenWrt提供了许多仅在高端设备中可用的功能。它的3000多个应用程序包是标准化的,因此您可以在任何支持的设备上轻松复制相同的设置,包括两个(甚至五年)旧路由器.
- 安全性:默认情况下,OpenWrt的标准安装是安全的,禁用Wi-Fi,没有差密码或后门。OpenWrt的软件组件保持最新,因此漏洞在发现后不久就会被关闭。
- 性能和稳定性: OpenWrt固件由所有支持设备中使用的标准化模块组成。这意味着每个模块可能会获得比库存固件更多的测试和错误修复,这些固件可以针对每个产品线进行调整,而且不会再次触及.
- 强大的社区支持: OpenWrt团队成员定期参与OpenWrt论坛,OpenWrt开发人员和OpenWrt管理员邮件列表以及LEDE的IRC频道。您可以直接与开发人员,管理软件模块的志愿者以及与其他长期OpenWrt用户进行交互,从而大大增加您解决手头问题的机会.
- 研究:许多团队使用OpenWrt作为他们研究网络性能的平台。这意味着他们成功实验的改进将首先在OpenWrt中提供,远在它被合并到主线供应商固件之前。
- 开源/无额外费用:提供OpenWrt,无需任何金钱成本。它完全由一组志愿者创建:开发人员和维护人员,个人和公司。如果您喜欢使用OpenWrt,请考虑做出一些努力来帮助我们改进其他人!以上所有都是可能的,因为OpenWrt是开源社区的一部分,并且由Linux内核提供支持。
针对当前稳定版本OpenWrt 18.06稳定版系列 学习。
亲身体验,遇到一个音频驱动问题直接发邮件给遇到相同问题的人,很快就给了他的方案,社区开发还是非常给力的。
根据对openWRT/LEDE 熟悉的不同程度,阅读对应的指南 https://openwrt.org/docs/start
openwrt code下载
默认你已经具备基本的linux知识,基本的代码管理能力。建议使用github。
openwrt : https://github.com/openwrt/openwrt fork自己的分支,
直接下载openwrt分支也可以下载自己的分支代码,建议下载自己的分支 ,作为baseline进行开发。同时将openwrt作为一个远端服务器。
下载代码
- git clone https://github.com/ShaolinDeng/openwrt
下载完成后,添加upstream 同步openwrt相关
git remote add upstream https://github.com/openwrt/openwrt
git remote update
git config -l
"
remote.origin.url=https://github.com/ShaolinDeng/openwrt.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
remote.upstream.url=https://github.com/openwrt/openwrt
remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/*
"
创建开发分支
下载的code 是master分支,需要基于稳定分支创建稳定的开发分支
git checkout -b v18.06.1_release v18.06.1
v18.06.1 是发布的tag, 根据tag创建开发分支。
文件结构分析
干净的文件结构包含如下目录
/ config:menuconfig的配置文件
/ include:makefile配置文件
/ package:包makefile和配置
/ scripts:整个构建过程中使用的各种脚本
/ target:用于构建imagebuilder,kernel,sdk和buildroot构建的工具链的makefile和配置。
/ toolchain:用于构建工具链的makefile和配置
/ tools:整个构建过程中使用的各种工具
代码中有README文件,阅读该文件后,进行编译。
openwrt编译
安装需要的工具包
安装提示依赖库与工具
sudo apt-get install gcc binutils bzip2 flex python perl make grep unzip gawk libz-dev
更新包
./scripts/feeds update -a
安装包
./scripts/feeds install -a
根据硬件配置
make menuconfig
我的测试硬件是MTK7628
选择对应的硬件最后生成一个.config文件
编译
make
首次编译时间比较长。
openWRT 烧录
镜像位置:
bin\targets\ramips\mt76x8
openwrt-ramips-mt76x8-mt7628-squashfs-sysupgrade.bin
选择数字2 烧录到Flash。
默认串口比特率 57600
看到logo。