使用 GitHub Actions 编译openwrt固件

前言

Github Ac­tions 是 GitHub 推出的持续集成 (Con­tin­u­ous in­te­gra­tion,简称 CI) 服务,它提供了配置非常不错的虚拟服务器环境,基于它可以进行构建、测试、打包、部署项目。所以就有了 P3TERX 大佬已编写好的 Open­Wrt 编译解决方案。这篇文章就是介绍如何使用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:这个编译只能编译出一个能正常使用的固件,很多插件都是没有的,关于自定义插件请看后面的进阶编译。
  • 首先必须要熟悉整个 Open­Wrt 的编译过程,这会让你非常容易上手并使用 GitHub Ac­tions 进行编译,即使你没有成功过。因为实际上本地编译近 90% 失败的原因是因为网络问题导致的,中国大陆特色,咱也不敢多说。GitHub Ac­tions 服务器由 Mi­crosoft 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博客查看,这里就不在赘述了

原文链接:使用 GitHub Actions 编译openwrt固件 | 一千四光年之外,那一颗星的色彩

-> 加入科技玩家交流群组:点击加入 <-
注意:
1.文中二维码和链接可能带有邀请性质,请各位玩家自行抉择。
2.请勿通过链接填写qq号与密码、银行卡号与密码等个人隐私信息。
3.禁止纯拉人头,拉app注册等信息,发现必小黑屋。
4.同一种信息仅发一次,多发会被删除。
5.文章中源码或APP等,无法保证其绝对安全,需自行辨别。
6.文章关联方不想展示也可以微信站长“socutesheep”删除。
本文由 @SaltedFish 发布。如若转载,请注明出处: 科技玩家 » 使用 GitHub Actions 编译openwrt固件

给TA买糖
共{{data.count}}人
人已买糖
教程玩家投稿

saobing1.9版本最新版本和saobingpro1.4版本最新版本 通用官方APP整合完毕 有喜欢的可以下载系统自带APP了

2022-4-27 20:54:24

教程玩家投稿精选文章

【termux高级终端】安卓手机免root本地运行青龙面板——5月11日更新

2022-4-30 10:27:20

21 条回复 A文章作者 M管理员
贴心提醒
请认真对待作者付出,勿发表无意义言论,触发过滤规则的评论将无法提交,包含敏感词的评论会自动变成待审核状态哦。
  1. igroot

    以前就看过这个博客的方法,奈何手残,一直没试过

  2. 阿元

    会被官方停止

    • SaltedFish

      几年前就搞过了,现在一直没事

  3. hzjflying

    两年前就玩过了。
    到现在还有26个固件在24小时的不停跑、、
    现在再这么玩估计会被GitHub封

    • SaltedFish

      不会啊,我也是几年前就搞这个了,一直没事,也设置了自动编译

  4. 学习者

    感谢分享

  5. kevinloved

    大神就是大神,我看了跟沒看一樣,了解了一下,希望以後能看明白

  6. xiaozhi24

    感谢分享

  7. joshuabu

    不懂!!!!

  8. xiaozhi24

    好好学习天天向上

  9. 晚安25745

    谢谢分享

  10. 幻131

    漫长的升级之路

  11. 清梦85

    谢谢分享

  12. 一只鱼

    感谢分享,谢谢楼主,赞

  13. 还差俩

    学习一下

  14. 𐃍

    打卡升级

  15. 绫

    厉害啊

  16. 这把看我表演

    谢谢分享,学习了

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索