• 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作为一个远端服务器。

下载代码

  1. 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

openwrt 架构 openwrt project_github

看到logo。