利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件


利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件

有很多朋友都想编译一个合适自己使用的OpenWRT固件,这样的好处就是只保留了自己需要使用的插件,非常精简,那么就需要自己搭建一个编译环境。但是并不是每个人都会搭建,现在有一个很便捷的方案,就是利用GitHub ACTIONS 在线云编译。一起来看看吧:


一、注册GitHub账号

官网地址:https://github.com/

二、激活GitHub ACTIONS功能(此步骤已经不需要做,直接到项目里面点击Action选项卡,就可以跳转到激活页面了)

激活地址:https://github.com/features/actions/signup

三、fork 一建脚本项目

https://github.com/KFERMercer/OpenWrt-CI

图片[1]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活图片[2]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

四、fork L大的LEDE源码

https://github.com/coolsnowwolf/lede

图片[3]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活
图片[4]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

五、进入L大源码目录.github/workflows/

图片[5]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活图片[6]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活图片[7]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

六、打开openwrt-ci.yml,编辑代码(如需要添加其他的主题或者插件,可参考第九和第十条)

图片[8]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

 

 

图片[9]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

docker images -q
echo “Deleting files, please wait …”
sudo rm -rf
/usr/share/dotnet
/etc/mysql
/etc/php
sudo -E apt-get -y purge
azure-cli
ghc*
zulu*
hhvm
llvm*
firefox
google*
dotnet*
powershell
openjdk*
mysql*
php*
sudo -E apt-get update
sudo -E apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch 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
sudo -E apt-get -y autoremove –purge
sudo -E apt-get clean

– name: Update feeds
run: |
./scripts/feeds update -a
./scripts/feeds install -a

– name: Costom configure file
run: |
rm -f ./.config*
touch ./.config

#
# ========================固件定制部分========================
#

#
# 如果不对本区块做出任何编辑, 则生成默认配置固件.
#

# 以下为定制化固件选项和说明:
#

#
# 有些插件/选项是默认开启的, 如果想要关闭, 请参照以下示例进行编写:
#
# =========================================
# | # 取消编译VMware镜像: |
# | cat >> .config <<EOF |
# | # CONFIG_VMDK_IMAGES is not set |
# | EOF |
# =========================================
#

#
# 以下是一些提前准备好的一些插件选项.
# 直接取消注释相应代码块即可应用. 不要取消注释代码块上的汉字说明.
# 如果不需要代码块里的某一项配置, 只需要删除相应行.
#
# 如果需要其他插件, 请按照示例自行添加.
# 注意, 只需添加依赖链顶端的包. 如果你需要插件 A, 同时 A 依赖 B, 即只需要添加 A.
#
# 无论你想要对固件进行怎样的定制, 都需要且只需要修改 EOF 回环内的内容.
#

# 编译x64固件:
# cat >> .config <<EOF
# CONFIG_TARGET_x86=y
# CONFIG_TARGET_x86_64=y
# CONFIG_TARGET_x86_64_Generic=y
# EOF

# 固件压缩:
# cat >> .config <<EOF
# CONFIG_TARGET_IMAGES_GZIP=y
# EOF

# 编译UEFI固件:
# cat >> .config <<EOF
# CONFIG_EFI_IMAGES=y
# EOF

# IPv6支持:
# cat >> .config <<EOF
# CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y
# CONFIG_PACKAGE_ipv6helper=y
# EOF

# 多文件系统支持:
# cat >> .config <<EOF
# CONFIG_PACKAGE_kmod-fs-nfs=y
# CONFIG_PACKAGE_kmod-fs-nfs-common=y
# CONFIG_PACKAGE_kmod-fs-nfs-v3=y
# CONFIG_PACKAGE_kmod-fs-nfs-v4=y
# CONFIG_PACKAGE_kmod-fs-ntfs=y
# CONFIG_PACKAGE_kmod-fs-squashfs=y
# EOF

# USB3.0支持:
# cat >> .config <<EOF
# CONFIG_PACKAGE_kmod-usb-ohci=y
# CONFIG_PACKAGE_kmod-usb-ohci-pci=y
# CONFIG_PACKAGE_kmod-usb2=y
# CONFIG_PACKAGE_kmod-usb2-pci=y
# CONFIG_PACKAGE_kmod-usb3=y
# EOF

# 常用LuCI插件选择:
# cat >> .config <<EOF
# CONFIG_PACKAGE_luci-app-adbyby-plus=y
# CONFIG_PACKAGE_luci-app-aria2=y
# CONFIG_PACKAGE_luci-app-baidupcs-web=y
# CONFIG_PACKAGE_luci-app-docker=y
# CONFIG_PACKAGE_luci-app-frpc=y
# CONFIG_PACKAGE_luci-app-hd-idle=y
# CONFIG_PACKAGE_luci-app-kodexplorer=y
# CONFIG_PACKAGE_luci-app-minidlna=y
# CONFIG_PACKAGE_luci-app-openvpn=y
# CONFIG_PACKAGE_luci-app-openvpn-server=y
# CONFIG_PACKAGE_luci-app-qbittorrent=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Kcptun=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Server=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Socks=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray=y
# CONFIG_PACKAGE_luci-app-ttyd=y
# CONFIG_PACKAGE_luci-app-v2ray-server=y
# CONFIG_PACKAGE_luci-app-verysync=y
# CONFIG_PACKAGE_luci-app-webadmin=y
# CONFIG_PACKAGE_luci-app-wireguard=y
# CONFIG_PACKAGE_luci-app-wrtbwmon=y
# EOF

# LuCI主题:
# cat >> .config <<EOF
# CONFIG_PACKAGE_luci-theme-argon=y
# CONFIG_PACKAGE_luci-theme-netgear=y
# EOF

# 常用软件包:
# cat >> .config <<EOF
# CONFIG_PACKAGE_curl=y
# CONFIG_PACKAGE_htop=y
# CONFIG_PACKAGE_nano=y
# CONFIG_PACKAGE_screen=y
# CONFIG_PACKAGE_tree=y
# CONFIG_PACKAGE_vim-fuller=y
# CONFIG_PACKAGE_wget=y
# EOF

# 取消编译VMware镜像以及镜像填充 (不要删除被缩进的注释符号):
# cat >> .config <<EOF
# # CONFIG_TARGET_IMAGES_PAD is not set
# # CONFIG_VMDK_IMAGES is not set
# EOF

#
# ========================固件定制部分结束========================
#

sed -i ‘s/^[ t]*//g’ ./.config
make defconfig

– name: Make download
run: |
make download -j8
find dl -size -1024c -exec ls -l {} ;
find dl -size -1024c -exec rm -f {} ;

– name: Compile firmware
run: |
echo -e “$(nproc) thread build.”
make -j$(nproc) V=s

– name: Assemble artifact
run: |
rm -rf ./artifact/
mkdir -p ./artifact/
find ./bin/targets/ -name “*combined*img*” | xargs -i mv -f {} ./artifact/
find ./bin/targets/ -name “*sysupgrade*bin*” | xargs -i mv -f {} ./artifact/

– name: Upload artifact
uses: actions/upload-artifact@master
with:
name: OpenWrt firmware
path: ./artifact/

七、找到LEDE项目的ACTIONS,查看编译过程

图片[10]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活图片[11]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活
图片[12]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活图片[13]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活
图片[14]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

图片[11]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活图片[16]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

图片[12]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活
图片[14]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

八、编译完成后下载固件

图片[19]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活图片[5]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活图片[21]-利用GitHub ACTIONS 在线云编译大雕的OpenWRT固件-利剑分享-科技生活

九、自定义插件主题代码

十、LuCi Applications软件包说明

原文地址:https://www.vediotalk.com/archives/6561

本文摘自:https://wp.gxnas.com/5257.html,感谢原作者

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享