编译属于自己的OpenWrt固件

2021-08-27 13:38:07 83点赞 769收藏 39评论

创作立场声明:首先感谢各开源项目,此文仅为个人折腾分享,如有不对,欢迎评论区指正,感谢大家的支持!

大家好!

由于本人DDNS、广告屏蔽等需求,需对家里路由固件升级,因此开始了折腾之路。本文只是着重描述了对固件的选择及编译的过程,并总结心得分享此文,希望各位少走弯路。

目录

前言

固件选择

环境搭建

源码下载及配置

编译

总结

前言

编译属于自己的OpenWrt固件

OpenWrt项目是一个针对嵌入式设备的Linux操作系统。OpenWrt不是一个单一且不可更改的固件,而是提供了具有软件包管理功能的完全可写的文件系统。这使您可以从供应商提供的应用范围和配置中解脱出来,并且让您通过使用适配任何应用的软件包来定制设备。对于开发人员来说,OpenWrt是一个无需围绕它构建完整固件就能开发应用程序的框架; 对于普通用户来说,这意味着拥有了完全定制的能力,能以意想不到的方式使用该设备。

以往路由器固件都是厂家维护,主要完成了路由功能,其他功能聊胜于无,并且更新很慢。因此OpenWrt项目的出现,给这个自由的时代又添上了美好的一笔。

正因为OpenWrt项目有着非常丰富的插件应用,可根据需求自行选择,极大符合着我开头描述的需求,也减少了我后期需求变更带来的折腾。

固件选择

原版的固件

原版固件里件很多插件是不含的,需要自己去网上找,然后自己集成进去。如果编译报错的话,需要自己debug。

Lean的固件

Lean大佬根据原版OpenWrt项目,整合了很多插件,并且可根据自己需求进行选择整合成自己的固件。

结论

由于个人只是小白,没得选,必须得跟随Lean大的步伐。

环境搭建

安装Ubuntu 20.04 LTS x64

下载镜像下载镜像

下载镜像

  • 虚拟机安装系统,使用快捷安装;

选择镜像选择镜像

选择镜像

勾选快捷安装勾选快捷安装

勾选快捷安装

配置完成配置完成

配置完成

自动安装自动安装

自动安装

安装完成后登入界面安装完成后登入界面

安装完成后登入界面

  • 更新软件包列表,命令行输入以下命令"sudo apt-get update " ;

打开终端打开终端

打开终端

更新软件包列表更新软件包列表

更新软件包列表

  • 安装编译软件环境,

    命令行输入以下命令" sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync"

安装编译软件环境安装编译软件环境

安装编译软件环境

源码下载及配置

下载

  • 下载源代码,输入以下命令"git clone https://github.com/coolsnowwolf/lede"(如果速度较慢,可通过码云中转方式下载,具体方法自行搜索)

  • 进入目录,输入以下命令"cd lede";

下载源代码及切换目录下载源代码及切换目录

下载源代码及切换目录

添加部分插件源,例如Helloword,(不需要的可跳过这步)

以下方式二选一

  • 下载仓库方式:命令行输入以下命令"git clone https://github.com/fw876/helloworld.git package/lean/luci-app-ssr-plus"

  • 添加feeds方式:命令行输入以下命令"echo 'src-git helloworld https://github.com/fw876/helloworld' >>feeds.conf.default"

helloWordhelloWord

helloWord

两种方式区别:下载仓库方式只用来编译,添加feeds方式还会把链接放到路由器的"软件包"“软件源”里,建议用下载仓库方式

更新并安装feed

  • 命令行输入以下命令"./scripts/feeds update -a "

更新更新

更新

  • 命令行输入以下命令"./scripts/feeds install -a "

安装安装

安装


OpenWrt Configuration 配置

  • 生成配置界面,命令行输入以下命令"make menuconfig"

生成配置界面命令生成配置界面命令

生成配置界面命令

配置界面配置界面

配置界面

  • 根据路由器的平台和架构,在 Target System(目标系统类型,即路由器CPU架构)、Subtarget(子目标,即路由器芯片型号)、Target Profile(目标文件, 即路由器型号) 中选择相应的选项;本人使用的软路由,所以都为默认x86选项。

平台和架构平台和架构

平台和架构

  • Target Images中勾选需要的固件格式等,个人按默认了并去掉了vmdl格式

Target ImagesTarget Images

Target Images

  • IPv6支持,需要在Extra packages里勾选ipv6helper,自动会把所有ipv6需要的组件都选上的

ipv6ipv6

ipv6

选择插件选择插件

选择插件

  • 配置完成后光标移动到 Save ,回车保存为.config文件。

保存保存

保存

编译

先说结论:我尝试2次本地编译都失败了,所以各位还是优先选择在线编译,因为本地环境中网络,会导致部分dl库下载不成功,并且电脑需开机2~3个小时,而在线编译的话,用的是微软服务器,不存在网络问题,也不会有时间和用电的浪费。

本地编译

  • 下载dl库,输入以下命令"make -j8 download V=s"(需要下载很久)

下载dl库下载dl库

下载dl库

  • 编译固件,输入以下命令"make -j1 V=s",(-j1 后面是线程数。第一次编译推荐用单线程)

编译编译

编译

在线编译

P3TERX大佬编写的Actions-OpenWrt项目,使用 GitHub Actions 云编译 OpenWrt 。可以直接阅读大佬的使用说明,写的很详细。

以下仅作为个人操作记录。

Use this templateUse this template

Use this template

  • 填写仓库名称,然后点击Create repository from template按钮

创建仓库创建仓库

创建仓库

  • 经过几秒钟的等待,页面会跳转到新建的仓库,点击Create new file按钮

新建文件新建文件

新建文件

  • 文件名填写为.config,把配置章节生成的.config 文件的内容复制粘贴到下面的文本框中

.config 文件.config 文件

.config 文件

  • 翻到页面最下方,点击Commit new file按钮

提交文件提交文件

提交文件

  • (在配置章节跳过设置部分插件源的朋友亦可调过此步骤)提前设置插件源等环境,继续以helloword插件为例,打开diy-part1.sh并编辑以下内容,二选一,对应的方式与配置阶段的设置插件源方式保持一致

配置helloword配置helloword

配置helloword

  • 在 Actions 页面选择Build OpenWrt,然后点击Run Workflow按钮,即可开始编译

编译编译

编译

  • 经过2~3小时的在线编译,编译结果为一个压缩包,下载解压后得到固件

编译结果编译结果

编译结果

编译结果编译结果

编译结果

固件固件

固件

总结

至此,OpenWrt的固件篇到此结束了,由衷感受到开源软件的强大,及各大佬的无私分享,给小白用户带来了极大的福利。

展开 收起

正版授权 仙剑奇侠传七标准版实物 方块游戏 PC游戏 仙剑奇侠传7 仙剑7 标准版 仙剑 角色扮演游戏 豪华版

正版授权 仙剑奇侠传七标准版实物 方块游戏 PC游戏 仙剑奇侠传7 仙剑7 标准版 仙剑 角色扮演游戏 豪华版

158元起

微软Microsoft 365个人版家庭版密钥匙Office 365激活码2019永久

微软Microsoft 365个人版家庭版密钥匙Office 365激活码2019永久

239元起

微软Microsoft 365个人版家庭版密钥匙Office 365激活码2019永久(Microsoft365 家庭版-1年订阅)

微软Microsoft 365个人版家庭版密钥匙Office 365激活码2019永久(Microsoft365 家庭版-1年订阅)

239元起

微软Microsoft 365个人版家庭版密钥匙Office 365激活码2019永久(Office2019家庭学生版-永久使用)

微软Microsoft 365个人版家庭版密钥匙Office 365激活码2019永久(Office2019家庭学生版-永久使用)

239元起

微软Microsoft 365个人版家庭版密钥匙Office 365激活码2019永久(Microsoft365个人版-1年订阅)

微软Microsoft 365个人版家庭版密钥匙Office 365激活码2019永久(Microsoft365个人版-1年订阅)

239元起

WPS 金山软件 超级会员年卡372天

WPS 金山软件 超级会员年卡372天

159元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(其他、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(其他、简体中文)

479元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(典藏版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(典藏版、简体中文)

459元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(收藏版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(收藏版、简体中文)

459元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(特典版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(特典版、简体中文)

459元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(普通版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(普通版、简体中文)

459元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(豪华版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(豪华版、简体中文)

459元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(首发版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(首发版、简体中文)

459元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(终极版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(终极版、简体中文)

459元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(新手版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(新手版、简体中文)

459元起

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(限定版、简体中文)

国行机专用 任天堂Switch健身环大冒险游戏卡中文兑换码国行游戏机ns体感套装运动环健身圈舞力全开实体卡带(限定版、简体中文)

459元起
39评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
769
扫一下,分享更方便,购买更轻松