前言
Github Actions 是 GitHub 推出的持续集成 (Continuous integration,简称 CI) 服务,它提供了配置非常不错的虚拟服务器环境,基于它可以进行构建、测试、打包、部署项目。所以就有了 P3TERX 大佬已编写好的 OpenWrt 编译解决方案。这篇文章就是介绍如何使用P3TERX 大佬项目,进行云编译 OpenWrt固件,并且还可以自定义自己想要的插件。
项目地址
- P3TERX编译项目:https://github.com/P3TERX/Actions-OpenWrt
- Lean的openwrt源码:https://github.com/coolsnowwolf/lede
- kenzok8的插件库:https://github.com/kenzok8/openwrt-packages
准备工作
- 注册一个Github账号
- 搭建编译环境,用来生成.config配置文件,推荐使用Vmware安装Ubuntu虚拟机(需要自定义插件的这个必选)
基础编译
TIPS:这个编译只能编译出一个能正常使用的固件,很多插件都是没有的,关于自定义插件请看后面的进阶编译。
- 首先必须要熟悉整个 OpenWrt 的编译过程,这会让你非常容易上手并使用 GitHub Actions 进行编译,即使你没有成功过。因为实际上本地编译近 90% 失败的原因是因为网络问题导致的,中国大陆特色,咱也不敢多说。GitHub Actions 服务器由 Microsoft Azure 提供,拥有万兆带宽,可以使编译成功率大大提升
打开 P3TERX 编译项目,点击页面中的 Use this template (使用这个模版)按钮
- 填写仓库名称,然后点击Create repository from template(从模版创建储存库)按钮
- 经过几秒钟的等待,页面会跳转到新建的仓库,内容和P3TERX的项目是相同的。
- 点击 Actions 选择 Build OpenWrt,然后点击 Run Workflow 选项,在点击 Run Workflow(运行工作流)按钮即可开始编译
- 在等待编译完成的过程中,你可以进入这个项目点击右上角的star,这是对项目最大的支持。
- 经过几个小时的等待,不出意外你就可以在 Actions 页面看到已经打包好的固件目录压缩包
进阶编译
- 如果你想要编译出更多的固件,可以使用这个方法,这个编译可以编译出多个固件,比如支持更多的插件,比如支持更多的系统,比如支持更多的平台。
- 接下来说下如何自定义插件,首先得搭建一个编译环境,这个编译环境可以是虚拟机,也可以是本地编译,我这里使用的是VMware安装的Ubuntu,具体安装方法我就不说了,百度上有很多资料,我就不多说了,具体请看下面的编译过程
- 然后打开虚拟机,右键打开终端,然后输入以下指令更新软件包和安装编译依赖
sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip qemu-utils
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
- 接下来需要下载源代码,然后进入到源代码目录
git clone https://github.com/coolsnowwolf/lede
cd lede
- 然后将插件库地址添加到配置文件进去,这里我使用的是kenzok8的插件库,打开feeds.conf.default,将插件库地址添加到最后一行并保存
src-git kenzo https://github.com/kenzok8/openwrt-packages.git
src-git small https://github.com/kenzok8/small.git
- 配置文件修改好之后,输入以下指令更新feeds并安装插件
./scripts/feeds update -a
./scripts/feeds install -a
- 然后输入make menuconfig进入编译配置
- 设置好参数之后,点击Save保存退出,然后打开源代码目录下的.config文件,把里面的内容全部复制
- 然后打开刚刚新建的仓库,然后点击 Add file 选择 Create new file(创建新文件),文件名填.Config,把刚刚虚拟机上的.config复制的内容粘贴到里面去
- 然后再次点击 Actions 选择 Build OpenWrt,然后点击 Run Workflow 选项,在点击 Run Workflow(运行工作流)按钮即可开始编译你的自定义固件,等待几个小时就可以在 Actions 页面看到已经打包好的固件目录压缩包
- 更多进阶方法在p3terx博客查看,这里就不在赘述了
打卡升级
学习了!!!来顶一下👍
谢谢,分享学习了
打卡升级
点赞,感觉真不错👍🏻
mark一手,这么优秀哈哈
mark一手!不错!
让我看看
打卡升级
打卡打卡
mark一下。
mark一下。
感谢分享,插眼学习
学习学习
真棒,感谢分享!
谢谢分享!
插眼评论涨分
真棒,感谢分享!
打卡升级