教程类文章具有时效性,看清楚发布日期,超过一定日子文章内容可能失效,仅仅作为参考。
2021年8月20日更新
请前往阅读新文章,旧文章不做修改。https://elstec.cn/archives/20210821
我想说的
碍于国内的网络环境,本地编译出错概率极高,我本地编译出错好几次,于是便转向了 Github
云编译(这应该也算一种曲线救国hhhh)。由于 Github
本身就处在国外,编译出错的几率大大降低。不过 Github Actions
有免费额度,超出需要额外收费。
需要准备的
- 脑子
- 耐心
- GitHub账号
过程
不过利用 Github Actions
进行云编译有多种方法,我就举两例。区别就是,一种需要更改 openwrt-ci.yml
文件达到自定义编译,另一种则是需要在编译开始过程中通过SSH连接 Github Actions
的服务器手动选择配置LuCI,就跟本地编译差不多。
目录
过程
两种方法均在有GitHub账号前提下进行操作,如果没有,请自行注册一个。
<span id="jump1"><h3>方法一</h3></span>
首先打开大雕的仓库。
https://github.com/coolsnowwolf/lede
然后点击右上角的 Fork
。看到 Forking
等待Fork
结束。
Fork
结束。
随即打开 正确的编写示例。这个链接可以在该项目找到 KFERMercer。
打开 正确的编写示例之后
全选,复制。然后打开刚刚 Fork
的大雕的项目,有一个 Actions
,点击,出现如下情况,无视警告,点 I understand my workflows, go ahead and run them
进行激活 Actions
。
然后找到该项目的这个文件。
lede/.github/workflows/openwrt-ci.yml
然后点 Edit this file
。
把刚刚复制的内容粘贴进来,更改代码第15行,第30行。把 CI-demo
改成 默认分支master 。
完成之后点击右上角的 Start commit
→ Commit changes
,触发编译。
然后重新回到 Actions
界面,就会看到一个编译进程。
编译时间较长,一般2-3小时不等,但是编译成功率比较高。
<h3><span id="jump2">方法二</span></h3>
打开,并 Fork
这个项目。
https://github.com/jcjyxjs/Actions-OpenWrt
首先,你需要编辑固件的 IP地址
建议你改一下,不改的话也没事。打开并编辑下面这个文件。
Actions-OpenWrt/diy.sh
在第10行中,有一个 192.168.1.200
就是编译好的固件地址。你可以按需更改。
#!/bin/bash
#=================================================
# Description: DIY script
# Lisence: MIT
# Author: P3TERX
# Blog: https://p3terx.com
#=================================================
# Modify default IP
#sed -i 's/192.168.1.1/192.168.50.5/g' package/base-files/files/bin/config_generate
sed -i 's/192.168.1.1/192.168.1.200/g' package/base-files/files/bin/config_generate
改完IP地址之后。点击下方的 Commit changes
。
然后打开你项目的 Actions
。无视警告,点 I understand my workflows, go ahead and run them
进行激活 Actions
。
完成之后,点击右上角的 Star 触发编译。
然后请不要关闭页面,等待编译到 SSH connection to Actions
之后,会给你一个SSH地址,和一个浏览器的https地址的一个网页端。
浏览器配置SSH,打开链接之后会黑屏,按 Ctrl+C
解除封印,然后terminal输入。
cd openwrt && make menuconfig
手动选择需要编译哪些软件,就跟本地编译一样。
操作方法:
- 选择:Y
- 取消选择:Space
- 最下方的5个选项:键盘上下左右,选择用回车
软路由的话,第一个 x86
,第二个 x64
其他什么都不用改,最重要的还是 LuCI
→ Applications
选择你要保留哪些插件功能。
这里有一个对照表,对照LuCI中的名称对应哪些软件。
https://www.right.com.cn/forum/thread-344825-1-1.html
全部更改完成之后,在最下方选择 < Save >
进行保存。
不要更改名字,直接下一步下一步。最后 < Exit >
退出。退回到这个界面之后,按 Ctrl+D
退出终端。
------------------------------------
____ __________ _____ ____ __ __
| _ \___ /_ _| ____| _ \ \ \/ /
| |_) ||_ \ | | | _| | |_) | \ /
| __/___) || | | |___| _ < / \
|_| |____/ |_| |_____|_| \_\/_/\_\
Brought to you by P3TERX
GitHub: https://github.com/P3TERX
Blog: https://p3terx.com (chinese)
------------------------------------
# runner @ fv-az117 in ~/work/Actions-OpenWrt/Actions-OpenWrt [10:07:06]
$ cd openwrt && make menuconfig
fatal: Invalid revision range 97a4ffcc125611dd5f307d54570373832a73e62d..HEAD
fatal: Invalid revision range 97a4ffcc125611dd5f307d54570373832a73e62d..65cdb1918bf8ab2e880acf952c46b92d139df97d
fatal: Invalid revision range 97a4ffcc125611dd5f307d54570373832a73e62d..HEAD
fatal: Invalid revision range 97a4ffcc125611dd5f307d54570373832a73e62d..65cdb1918bf8ab2e880acf952c46b92d139df97d
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
# runner @ fv-az117 in ~/work/Actions-OpenWrt/Actions-OpenWrt/openwrt [10:11:00]
$
然后 Actions
会继续进行下一步,直到编译完成。
编译时间较长,一般2-3小时不等,但是编译成功率比较高。
其他
<h3><span id="jump3">下载编译好的包</span></h3>
在 Actions
编译的这个任务中有下载地址。