为什么要自己编译固件
如果你在使用软路由,对于OpenWrt应该不陌生,肯定也纠结和尝试过各种网上的固件,对于大部分人来说,网上的固件是够用的,但我还是建议大家自己编译固件,因为网上的固件要么插件太多,要么自己想要的插件没有,其次就是编译的源码很多没有共享出来,你会不会也担心安全问题?
今天给大家分享一下如何使用Github Action进行云编译OpenWrt。
云编译
使用Github Action编译OpenWrt固件网上有很多教程,但是对于小白来说,还是不友好,我踩了不少坑,以下教程适合小白用户。
开始之前首先感谢以下几位大佬:
Lean: https://github.com/coolsnowwolf/lede
P3TERX: https://github.com/P3TERX/Actions-OpenWrt
kenzok8: https://github.com/kenzok8/small-package
fw876: https://github.com/fw876/helloworld
工具准备
首先需要准备以下工具:
一个GitHub账户
一台装有Ubuntu的电脑或者虚拟机
为什么需要Ubuntu的电脑或者虚拟机呢?网上有教程通过Github Action的SSH功能也能实现编译,但是我实际验证非常容易报错和中断,所以建议大家采用Ubuntu系统来生成配置文件。
创建Github仓库
登陆Github账户,访问P3TERX大佬的原始仓库,根据P3TERX的说明,创建自己的仓库,步骤如下:
1.进入 P3TERX/Actions-OpenWrt 项目页面,点击页面中的 Use this template (使用这个模版)按钮。
2.填写仓库名称,然后点击Create repository from template(从模版创建储存库)按钮
3.经过几秒钟的等待,页面会跳转到新建的仓库,内容和我的项目是相同的。然后点击Create new file(创建新文件)按钮
4.文件名填写为.config,这里不需要填写,后面会讲如何配置
5.翻到页面最下方,点击Commit new file(提交新文件)按钮
修改sh(可选)
修改固件的IP地址
在Github Code页面,找到diy-part2.sh,点击编辑,修改默认IP地址,将192.168.2.1改为你想设置的地址即可。
添加软件包库
在Github Code页面,找到diy-part1.sh,点击编辑,按需求增加编译时可选的软件包,以下三个是我所使用的,包含绝大部分支持OpenWRT的软件包,大家可以访问对应的地址,查看详细软件包仓库说明
生成Config文件
P3TERX大佬的脚本其实是支持SSH访问来生成Config,但是我几经尝试均失败,最后采用本地生成Config的方法成功了。
登陆Ubuntu系统,按Lean的教程进行编译 登陆Ubuntu系统,按Lean的教程进行编译
1.安装编译依赖
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
2.下载源代码
git clone https://github.com/coolsnowwolf/lede && cd lede
这里需要注意:
不能用使root权限帐户拉取(虽然可以拉但后面编译就凉凉)
不能在需要使用sudo 提取的地方拉不然后面编译加sudo 就报错不加就是权限不足
3.进入本地的LEDE文件夹,修改feeds.conf.default文件,增加三个软件仓库
4.生成.Config文件(一会把生成的内容复制到前面创建.config文件中)
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
之后就能看到OpenWrt的配置界面,按需选择想要的设置,然后保存。进入本地的LEDE文件夹,可以看到.Config文件
将.Config文件上传到Github仓库
开启Action编译
在Github页面,点击Action,选择Build OpenWrt,SSH默认为false,Run workflow即开始云编译,等待编译结束后,可以在Action页面看到固件
自己编译使用的固件
链接:https://pan.baidu.com/s/1GhPIH-4NL7SwdN0QKVI1Tg?pwd=s60g
提取码:s60g
–来自百度网盘超级会员V5的分享
评论区