├── Global.png ├── Overview.png ├── configs ├── RAX3000M.config ├── x86-64.config ├── K2P.config ├── Arthur&Athena&Taiyi.config ├── IPQ60XX.config ├── IPQ807X.config └── General.config ├── .github └── workflows │ ├── Trigger-All-Workflows.yml │ ├── IPQ60XX-LibWrt.yml │ ├── IPQ807X-LibWrt.yml │ ├── K2P-ImmortalWrt.yml │ ├── x86-64-ImmortalWrt.yml │ ├── Arthur&Athena&Taiyi-ImmortalWrt.yml │ └── RAX3000M-ImmortalWrt.yml ├── LICENSE ├── README.md └── scripts └── Roc-script.sh /Global.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laipeng668/openwrt-ci-roc/HEAD/Global.png -------------------------------------------------------------------------------- /Overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laipeng668/openwrt-ci-roc/HEAD/Overview.png -------------------------------------------------------------------------------- /configs/RAX3000M.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_mediatek=y 2 | CONFIG_TARGET_mediatek_filogic=y 3 | CONFIG_TARGET_mediatek_filogic_DEVICE_cmcc_rax3000m-nand-ubootmod=y 4 | 5 | CONFIG_PACKAGE_luci-app-fileassistant=y 6 | -------------------------------------------------------------------------------- /configs/x86-64.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_x86=y 2 | CONFIG_TARGET_x86_64=y 3 | CONFIG_TARGET_x86_64_DEVICE_generic=y 4 | CONFIG_TARGET_KERNEL_PARTSIZE=64 5 | CONFIG_TARGET_ROOTFS_PARTSIZE=960 6 | 7 | CONFIG_ISO_IMAGES=y 8 | CONFIG_QCOW2_IMAGES=y 9 | CONFIG_VDI_IMAGES=y 10 | CONFIG_VMDK_IMAGES=y 11 | CONFIG_VHDX_IMAGES=y 12 | 13 | CONFIG_PACKAGE_luci-app-lucky=y 14 | CONFIG_PACKAGE_luci-app-gecoosac=y 15 | CONFIG_PACKAGE_luci-app-dockerman=y 16 | CONFIG_PACKAGE_luci-app-openlist2=y 17 | CONFIG_PACKAGE_luci-app-passwall=y 18 | CONFIG_PACKAGE_luci-app-passwall2=y 19 | CONFIG_PACKAGE_luci-app-openclash=y 20 | -------------------------------------------------------------------------------- /configs/K2P.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_ramips=y 2 | CONFIG_TARGET_ramips_mt7621=y 3 | CONFIG_TARGET_ramips_mt7621_DEVICE_phicomm_k2p=y 4 | 5 | CONFIG_CCACHE=y 6 | CONFIG_PACKAGE_default-settings=y 7 | CONFIG_PACKAGE_default-settings-chn=y 8 | CONFIG_TARGET_PER_DEVICE_ROOTFS=y 9 | CONFIG_LUCI_LANG_zh_Hant=y 10 | # CONFIG_TARGET_ROOTFS_INITRAMFS is not set 11 | 12 | CONFIG_PACKAGE_dmesg=y 13 | CONFIG_PACKAGE_coremark=y 14 | CONFIG_PACKAGE_zram-swap=y 15 | CONFIG_PACKAGE_kmod-lib-lz4=y 16 | CONFIG_KERNEL_ZRAM_BACKEND_LZ4=y 17 | CONFIG_KERNEL_ZRAM_BACKEND_LZO=y 18 | CONFIG_KERNEL_ZRAM_DEF_COMP_LZ4=y 19 | CONFIG_PACKAGE_luci-app-ttyd=y 20 | CONFIG_PACKAGE_luci-app-uhttpd=y 21 | CONFIG_PACKAGE_luci-app-autoreboot=y 22 | CONFIG_PACKAGE_luci-app-wifischedule=y 23 | -------------------------------------------------------------------------------- /.github/workflows/Trigger-All-Workflows.yml: -------------------------------------------------------------------------------- 1 | name: Trigger-All-Workflows # 主要工作流的名称 2 | 3 | on: 4 | workflow_dispatch: # 手动触发:通过 GitHub UI 来触发 5 | schedule: 6 | - cron: 0 20 * * 5 # 北京时间星期六凌晨4点,定时触发 7 | 8 | jobs: 9 | 10 | IPQ60XX-LibWrt: 11 | uses: ./.github/workflows/IPQ60XX-LibWrt.yml 12 | 13 | IPQ807X-LibWrt: 14 | uses: ./.github/workflows/IPQ807X-LibWrt.yml 15 | 16 | Arthur-Athena-Taiyi-ImmortalWrt: 17 | uses: ./.github/workflows/Arthur&Athena&Taiyi-ImmortalWrt.yml 18 | 19 | x86-64-ImmortalWrt: 20 | uses: ./.github/workflows/x86-64-ImmortalWrt.yml 21 | 22 | RAX3000M-ImmortalWrt: 23 | uses: ./.github/workflows/RAX3000M-ImmortalWrt.yml 24 | 25 | K2P-ImmortalWrt: 26 | uses: ./.github/workflows/K2P-ImmortalWrt.yml 27 | -------------------------------------------------------------------------------- /configs/Arthur&Athena&Taiyi.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_qualcommax=y 2 | CONFIG_TARGET_qualcommax_ipq60xx=y 3 | CONFIG_TARGET_MULTI_PROFILE=y 4 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-ss-01=y 5 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-02=y 6 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-02="luci-app-athena-led luci-i18n-athena-led-zh-cn" 7 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-07=y 8 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-07="luci-app-lucky luci-app-gecoosac luci-app-dockerman" 9 | 10 | CONFIG_ATH11K_MEM_PROFILE_512M=y 11 | CONFIG_NSS_FIRMWARE_VERSION_12_5=y 12 | CONFIG_PACKAGE_luci-app-openlist2=y 13 | CONFIG_PACKAGE_luci-app-athena-led=m 14 | CONFIG_PACKAGE_luci-i18n-athena-led-zh-cn=m 15 | CONFIG_PACKAGE_luci-app-lucky=m 16 | CONFIG_PACKAGE_luci-app-gecoosac=m 17 | CONFIG_PACKAGE_luci-app-dockerman=m 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019-2020 P3TERX 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |

OpenWrt — 云编译

3 | 4 | ## 特别提示 5 | 6 | - **本人不对任何人因使用本固件所遭受的任何理论或实际的损失承担责任!** 7 | 8 | - **本固件禁止用于任何商业用途,请务必严格遵守国家互联网使用相关法律规定!** 9 | 10 | ## 项目说明 11 | - 默认管理地址:**`192.168.2.1`** 默认用户:**`root`** 默认密码:**`none`** 12 | - 源码来源:[breeze303](https://github.com/LiBwrt-op/openwrt-6.x) [VIKINGYFY](https://github.com/VIKINGYFY/immortalwrt) 13 | - 云编译来源:[haiibo](https://github.com/haiibo/OpenWrt) [视频教程](https://www.youtube.com/watch?v=6j4ofS0GT38&t=507s) 14 | 15 | ## 仓库说明 16 | - 本人 Fork 的仓库:[ImmortalWrt](https://github.com/laipeng668/immortalwrt) [LibWrt](https://github.com/laipeng668/openwrt-6.x),内容大体一致。 17 | - `ImmortalWrt` 和 `LibWrt` 分别通过 rebase 和 merge 进行更新,相互印证。 18 | - `LibWrt` 因为 DTS 更为丰富,所以支持更多的机型。 19 | 20 | ## 定制固件 21 | - 首先要登录 Github 账号,然后 Fork 此项目到你自己的 Github 仓库。 22 | - 修改 `configs` 目录对应的文件添加或删除插件,或者上传自己的 `xx.config` 配置文件。 23 | - 不需要的软件包请把 `y` 改成 `n` ,仅在前面添加 `#` 是无效的。 24 | - 插件对应名称及功能请参考恩山网友帖子:[OpenWrt软件包全量解释](https://www.right.com.cn/FORUM/forum.php?mod=viewthread&tid=8384897)。 25 | - 如需修改默认 IP、添加或删除插件包以及一些其他设置请在 `Roc-script.sh` 文件内修改。 26 | - 添加或修改 `xx.yml` 文件,最后点击 `Actions` 运行要编译的 `workflow` 即可开始编译。 27 | - 编译大概需要 1-2 小时,编译完成后在仓库主页 [Releases](https://github.com/laipeng668/openwrt-ci-roc/releases) 对应 Tag 标签内下载固件。 28 | 29 | ![Overview](Overview.png) 30 | ![Global](Global.png) -------------------------------------------------------------------------------- /configs/IPQ60XX.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_qualcommax=y 2 | CONFIG_TARGET_qualcommax_ipq60xx=y 3 | CONFIG_TARGET_MULTI_PROFILE=y 4 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_alfa-network_ap120c-ax=y 5 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_anysafe_e1=y 6 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_cambiumnetworks_xe3-4=y 7 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_cmiot_ax18=y 8 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_glinet_gl-ax1800=y 9 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_glinet_gl-axt1800=y 10 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-02=y 11 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-02="luci-app-athena-led luci-i18n-athena-led-zh-cn" 12 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-07=y 13 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-ss-01=y 14 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_kt_ar06-012h=y 15 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_lg_gapd-7500=y 16 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_link_nn6000-v1=y 17 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_link_nn6000-v2=y 18 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_linksys_mr7350=y 19 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_linksys_mr7500=y 20 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_netgear_wax214=y 21 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_netgear_wax610=y 22 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_netgear_wax610y=y 23 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_qihoo_360v6=y 24 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5=y 25 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5-jdcloud=y 26 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_tplink_eap610od=y 27 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_tplink_eap623od-hd-v1=y 28 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_tplink_eap625od-hd-v1=y 29 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_xiaomi_ax1800=y 30 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_yuncore_fap650=y 31 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_zn_m2=y 32 | 33 | CONFIG_ATH11K_MEM_PROFILE_512M=y 34 | CONFIG_NSS_FIRMWARE_VERSION_11_4=y 35 | CONFIG_PACKAGE_luci-app-athena-led=m 36 | CONFIG_PACKAGE_luci-i18n-athena-led-zh-cn=m 37 | -------------------------------------------------------------------------------- /configs/IPQ807X.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_qualcommax=y 2 | CONFIG_TARGET_qualcommax_ipq807x=y 3 | CONFIG_TARGET_MULTI_PROFILE=y 4 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_aliyun_ap8220=y 5 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_arcadyan_aw1000=y 6 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_asus_rt-ax89x=y 7 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_buffalo_wxr-5950ax12=y 8 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_cmcc_rm2-6=y 9 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_compex_wpq873=y 10 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_dynalink_dl-wrx36=y 11 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_edgecore_eap102=y 12 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_edimax_cax1800=y 13 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_linksys_homewrk=y 14 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_linksys_mx4200v1=y 15 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_linksys_mx4200v2=y 16 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_linksys_mx4300=y 17 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_linksys_mx5300=y 18 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_linksys_mx8500=y 19 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_netgear_rax120v2=y 20 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_netgear_sxr80=y 21 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_netgear_sxs80=y 22 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_netgear_wax218=y 23 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_netgear_wax620=y 24 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_netgear_wax630=y 25 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_prpl_haze=y 26 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_qnap_301w=y 27 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_redmi_ax6-stock=y 28 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_redmi_ax6=y 29 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_spectrum_sax1v1k=y 30 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_tplink_deco-x80-5g=y 31 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_tplink_eap620hd-v1=y 32 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_tplink_eap660hd-v1=y 33 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_verizon_cr1000a=y 34 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_xiaomi_ax3600-stock=y 35 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_xiaomi_ax3600=y 36 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_xiaomi_ax9000-stock=y 37 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_xiaomi_ax9000=y 38 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_yuncore_ax880=y 39 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_zbtlink_zbt-z800ax=y 40 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_zte_mf269-stock=y 41 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_zte_mf269=y 42 | CONFIG_TARGET_DEVICE_qualcommax_ipq807x_DEVICE_zyxel_nbg7815=y 43 | 44 | CONFIG_ATH11K_MEM_PROFILE_512M=y 45 | CONFIG_NSS_FIRMWARE_VERSION_11_4=y 46 | -------------------------------------------------------------------------------- /configs/General.config: -------------------------------------------------------------------------------- 1 | ### 通用配置文件 ### 2 | 3 | CONFIG_DEVEL=y 4 | CONFIG_TARGET_OPTIONS=y 5 | CONFIG_TARGET_OPTIMIZATION="-O3 -pipe -march=armv8-a+crypto+crc -mcpu=cortex-a53+crypto+crc -mtune=cortex-a53" 6 | 7 | CONFIG_CCACHE=y 8 | CONFIG_PACKAGE_default-settings=y 9 | CONFIG_PACKAGE_default-settings-chn=y 10 | CONFIG_TARGET_PER_DEVICE_ROOTFS=y 11 | CONFIG_LUCI_LANG_zh_Hant=y 12 | 13 | # CONFIG_FEED_nss_packages is not set 14 | # CONFIG_FEED_sqm_scripts_nss is not set 15 | # CONFIG_TARGET_ROOTFS_INITRAMFS is not set 16 | 17 | CONFIG_PACKAGE_kmod-usb2=y 18 | CONFIG_PACKAGE_kmod-usb3=y 19 | CONFIG_PACKAGE_kmod-usb-ohci=y 20 | CONFIG_PACKAGE_kmod-usb-uhci=y 21 | CONFIG_PACKAGE_kmod-usb-ehci=y 22 | CONFIG_PACKAGE_kmod-usb-xhci=y 23 | 24 | CONFIG_PACKAGE_zram-swap=y 25 | CONFIG_PACKAGE_kmod-lib-lz4=y 26 | CONFIG_KERNEL_ZRAM_BACKEND_LZ4=y 27 | CONFIG_KERNEL_ZRAM_BACKEND_LZO=y 28 | CONFIG_KERNEL_ZRAM_DEF_COMP_LZ4=y 29 | 30 | CONFIG_PACKAGE_tmux=y 31 | CONFIG_PACKAGE_dmesg=y 32 | CONFIG_PACKAGE_htop=y 33 | CONFIG_PACKAGE_btop=y 34 | CONFIG_PACKAGE_fdisk=y 35 | CONFIG_PACKAGE_cfdisk=y 36 | CONFIG_PACKAGE_sgdisk=y 37 | CONFIG_PACKAGE_tune2fs=y 38 | CONFIG_PACKAGE_ariang=y 39 | CONFIG_PACKAGE_fstrim=y 40 | CONFIG_PACKAGE_nano-full=y 41 | CONFIG_PACKAGE_autocore=y 42 | CONFIG_PACKAGE_coremark=y 43 | CONFIG_PACKAGE_hdparm=y 44 | CONFIG_PACKAGE_smartmontools-drivedb=y 45 | CONFIG_PACKAGE_zoneinfo-asia=y 46 | CONFIG_PACKAGE_acme-acmesh-dnsapi=y 47 | CONFIG_PACKAGE_openssh-sftp-server=y 48 | CONFIG_PACKAGE_ddns-scripts-cloudflare=y 49 | CONFIG_PACKAGE_sqm-scripts-nss=y 50 | 51 | CONFIG_PACKAGE_luci-theme-aurora=y 52 | CONFIG_PACKAGE_luci-app-aurora-config=y 53 | CONFIG_PACKAGE_luci-theme-argon=y 54 | CONFIG_PACKAGE_luci-app-argon-config=y 55 | CONFIG_PACKAGE_luci-app-cpufreq=y 56 | CONFIG_PACKAGE_luci-app-ddns=y 57 | CONFIG_PACKAGE_luci-app-ttyd=y 58 | CONFIG_PACKAGE_luci-app-upnp=y 59 | CONFIG_PACKAGE_luci-app-wolplus=y 60 | CONFIG_PACKAGE_luci-app-samba4=y 61 | CONFIG_PACKAGE_luci-app-vlmcsd=y 62 | CONFIG_PACKAGE_luci-app-aria2=y 63 | CONFIG_PACKAGE_luci-app-autoreboot=y 64 | CONFIG_PACKAGE_luci-app-wifischedule=y 65 | CONFIG_PACKAGE_luci-app-uhttpd=y 66 | CONFIG_PACKAGE_luci-app-frps=y 67 | CONFIG_PACKAGE_luci-app-frpc=y 68 | CONFIG_PACKAGE_luci-app-diskman=y 69 | CONFIG_PACKAGE_luci-app-hd-idle=y 70 | CONFIG_PACKAGE_luci-app-banip=y 71 | CONFIG_PACKAGE_luci-app-acme=y 72 | CONFIG_PACKAGE_luci-app-arpbind=y 73 | CONFIG_PACKAGE_luci-app-usb-printer=y 74 | CONFIG_PACKAGE_luci-app-oaf=y 75 | CONFIG_PACKAGE_luci-app-sqm=y 76 | CONFIG_PACKAGE_luci-proto-wireguard=y 77 | CONFIG_PACKAGE_luci-app-wechatpush=y 78 | CONFIG_PACKAGE_luci-app-watchcat=y 79 | CONFIG_PACKAGE_luci-app-3cat=y 80 | CONFIG_PACKAGE_luci-app-smartdns=y 81 | 82 | ### PassWall配置项 ### 83 | 84 | CONFIG_PACKAGE_luci-app-passwall=y 85 | # CONFIG_PACKAGE_luci-app-passwall_Iptables_Transparent_Proxy is not set 86 | CONFIG_PACKAGE_luci-app-passwall_Nftables_Transparent_Proxy=y 87 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Geoview=y 88 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Haproxy=y 89 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Hysteria is not set 90 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_NaiveProxy is not set 91 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Client is not set 92 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Server is not set 93 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Rust_Client is not set 94 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Rust_Server is not set 95 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_Libev_Client is not set 96 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_Libev_Server is not set 97 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadow_TLS is not set 98 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Simple_Obfs is not set 99 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_SingBox is not set 100 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan_Plus is not set 101 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_tuic_client is not set 102 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray_Geodata is not set 103 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray_Plugin is not set 104 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Xray=y 105 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Xray_Plugin is not set 106 | -------------------------------------------------------------------------------- /scripts/Roc-script.sh: -------------------------------------------------------------------------------- 1 | # 修改默认IP & 固件名称 & 编译署名和时间 2 | sed -i 's/192.168.1.1/192.168.2.1/g' package/base-files/files/bin/config_generate 3 | sed -i "s/hostname='.*'/hostname='Roc'/g" package/base-files/files/bin/config_generate 4 | sed -i "s#_('Firmware Version'), (L\.isObject(boardinfo\.release) ? boardinfo\.release\.description + ' / ' : '') + (luciversion || ''),# \ 5 | _('Firmware Version'),\n \ 6 | E('span', {}, [\n \ 7 | (L.isObject(boardinfo.release)\n \ 8 | ? boardinfo.release.description + ' / '\n \ 9 | : '') + (luciversion || '') + ' / ',\n \ 10 | E('a', {\n \ 11 | href: 'https://github.com/laipeng668/openwrt-ci-roc/releases',\n \ 12 | target: '_blank',\n \ 13 | rel: 'noopener noreferrer'\n \ 14 | }, [ 'Built by Roc $(date "+%Y-%m-%d %H:%M:%S")' ])\n \ 15 | ]),#" feeds/luci/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js 16 | 17 | # 移除luci-app-attendedsysupgrade软件包 18 | sed -i "/attendedsysupgrade/d" $(find ./feeds/luci/collections/ -type f -name "Makefile") 19 | 20 | # 调整NSS驱动q6_region内存区域预留大小(ipq6018.dtsi默认预留85MB,ipq6018-512m.dtsi默认预留55MB,带WiFi必须至少预留54MB,以下分别是改成预留16MB、32MB、64MB和96MB) 21 | # sed -i 's/reg = <0x0 0x4ab00000 0x0 0x[0-9a-f]\+>/reg = <0x0 0x4ab00000 0x0 0x01000000>/' target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-512m.dtsi 22 | # sed -i 's/reg = <0x0 0x4ab00000 0x0 0x[0-9a-f]\+>/reg = <0x0 0x4ab00000 0x0 0x02000000>/' target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-512m.dtsi 23 | # sed -i 's/reg = <0x0 0x4ab00000 0x0 0x[0-9a-f]\+>/reg = <0x0 0x4ab00000 0x0 0x04000000>/' target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-512m.dtsi 24 | # sed -i 's/reg = <0x0 0x4ab00000 0x0 0x[0-9a-f]\+>/reg = <0x0 0x4ab00000 0x0 0x06000000>/' target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-512m.dtsi 25 | 26 | # 移除要替换的包 27 | rm -rf feeds/luci/applications/luci-app-argon-config 28 | rm -rf feeds/luci/applications/luci-app-wechatpush 29 | rm -rf feeds/luci/applications/luci-app-appfilter 30 | rm -rf feeds/luci/applications/luci-app-watchcat 31 | rm -rf feeds/luci/applications/luci-app-frpc 32 | rm -rf feeds/luci/applications/luci-app-frps 33 | rm -rf feeds/luci/themes/luci-theme-argon 34 | rm -rf feeds/packages/net/open-app-filter 35 | rm -rf feeds/packages/net/ariang 36 | rm -rf feeds/packages/net/frp 37 | rm -rf feeds/packages/lang/golang 38 | rm -rf feeds/packages/utils/watchcat 39 | 40 | # Git稀疏克隆,只克隆指定目录到本地 41 | function git_sparse_clone() { 42 | branch="$1" repourl="$2" && shift 2 43 | git clone --depth=1 -b $branch --single-branch --filter=blob:none --sparse $repourl 44 | repodir=$(echo $repourl | awk -F '/' '{print $(NF)}') 45 | cd $repodir && git sparse-checkout set $@ 46 | mv -f $@ ../package 47 | cd .. && rm -rf $repodir 48 | } 49 | 50 | # ariang & frp & Watchcat & WolPlus & Argon & Aurora & Go & OpenList & Lucky & wechatpush & OpenAppFilter & 集客无线AC控制器 & 雅典娜LED控制 51 | git_sparse_clone ariang https://github.com/laipeng668/packages net/ariang 52 | git_sparse_clone frp https://github.com/laipeng668/packages net/frp 53 | mv -f package/frp feeds/packages/net/frp 54 | git_sparse_clone frp https://github.com/laipeng668/luci applications/luci-app-frpc applications/luci-app-frps 55 | mv -f package/luci-app-frpc feeds/luci/applications/luci-app-frpc 56 | mv -f package/luci-app-frps feeds/luci/applications/luci-app-frps 57 | git_sparse_clone openwrt-23.05 https://github.com/immortalwrt/packages utils/watchcat 58 | mv -f package/watchcat feeds/packages/utils/watchcat 59 | git_sparse_clone openwrt-23.05 https://github.com/immortalwrt/luci applications/luci-app-watchcat 60 | mv -f package/luci-app-watchcat feeds/luci/applications/luci-app-watchcat 61 | git_sparse_clone main https://github.com/VIKINGYFY/packages luci-app-wolplus 62 | git clone --depth=1 https://github.com/jerrykuku/luci-theme-argon feeds/luci/themes/luci-theme-argon 63 | git clone --depth=1 https://github.com/jerrykuku/luci-app-argon-config feeds/luci/applications/luci-app-argon-config 64 | git clone --depth=1 https://github.com/eamonxg/luci-theme-aurora feeds/luci/themes/luci-theme-aurora 65 | git clone --depth=1 https://github.com/eamonxg/luci-app-aurora-config feeds/luci/applications/luci-app-aurora-config 66 | git clone --depth=1 https://github.com/sbwml/packages_lang_golang feeds/packages/lang/golang 67 | git clone --depth=1 https://github.com/sbwml/luci-app-openlist2 package/openlist2 68 | git clone --depth=1 https://github.com/gdy666/luci-app-lucky package/luci-app-lucky 69 | git clone --depth=1 https://github.com/tty228/luci-app-wechatpush package/luci-app-wechatpush 70 | git clone --depth=1 https://github.com/destan19/OpenAppFilter.git package/OpenAppFilter 71 | git clone --depth=1 https://github.com/lwb1978/openwrt-gecoosac package/openwrt-gecoosac 72 | git clone --depth=1 https://github.com/NONGFAH/luci-app-athena-led package/luci-app-athena-led 73 | chmod +x package/luci-app-athena-led/root/etc/init.d/athena_led package/luci-app-athena-led/root/usr/sbin/athena-led 74 | 75 | ### PassWall & OpenClash ### 76 | 77 | # 移除 OpenWrt Feeds 自带的核心库 78 | rm -rf feeds/packages/net/{xray-core,v2ray-geodata,sing-box,chinadns-ng,dns2socks,hysteria,ipt2socks,microsocks,naiveproxy,shadowsocks-libev,shadowsocks-rust,shadowsocksr-libev,simple-obfs,tcping,trojan-plus,tuic-client,v2ray-plugin,xray-plugin,geoview,shadow-tls} 79 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall-packages package/passwall-packages 80 | 81 | # 移除 OpenWrt Feeds 过时的LuCI版本 82 | rm -rf feeds/luci/applications/luci-app-passwall 83 | rm -rf feeds/luci/applications/luci-app-openclash 84 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall package/luci-app-passwall 85 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall2 package/luci-app-passwall2 86 | git clone --depth=1 https://github.com/vernesong/OpenClash package/luci-app-openclash 87 | 88 | # 清理 PassWall 的 chnlist 规则文件 89 | echo "baidu.com" > package/luci-app-passwall/luci-app-passwall/root/usr/share/passwall/rules/chnlist 90 | 91 | ./scripts/feeds update -a 92 | ./scripts/feeds install -a 93 | -------------------------------------------------------------------------------- /.github/workflows/IPQ60XX-LibWrt.yml: -------------------------------------------------------------------------------- 1 | name: IPQ60XX-LibWrt 2 | 3 | on: 4 | workflow_dispatch: 5 | workflow_call: 6 | # schedule: 7 | # - cron: 0 20 * * * 8 | 9 | env: 10 | REPO_URL: https://github.com/laipeng668/openwrt-6.x.git 11 | REPO_BRANCH: main-nss 12 | CONFIG_FILE: configs/IPQ60XX.config 13 | GENERAL_CONFIG_FILE: configs/General.config 14 | DIY_SCRIPT: scripts/Roc-script.sh 15 | CLASH_KERNEL: amd64 16 | UPLOAD_BIN_DIR: false 17 | FIRMWARE_RELEASE: true 18 | FIRMWARE_TAG: IPQ60XX 19 | TZ: Asia/Shanghai 20 | 21 | jobs: 22 | Build: 23 | runs-on: ubuntu-24.04 24 | 25 | steps: 26 | - name: Check Server Performance(检查服务器性能) 27 | run: | 28 | echo "警告⚠" 29 | echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" 30 | echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n" 31 | echo "--------------------------CPU信息--------------------------" 32 | echo "CPU物理数量:$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)" 33 | echo -e "CPU核心信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" 34 | echo "--------------------------内存信息--------------------------" 35 | echo "已安装内存详细信息:" 36 | echo -e "$(sudo lshw -short -C memory | grep GiB) \n" 37 | echo "--------------------------硬盘信息--------------------------" 38 | echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT 39 | 40 | - name: Initialization Environment(初始化环境) 41 | env: 42 | DEBIAN_FRONTEND: noninteractive 43 | run: | 44 | sudo -E apt-get -y update 45 | sudo -E apt-get -y install $(curl -fsSL ophub.org/ubuntu2404-make-openwrt-depends) 46 | sudo -E systemctl daemon-reload 47 | sudo timedatectl set-timezone "$TZ" 48 | 49 | - name: Checkout(检出代码) 50 | uses: actions/checkout@main 51 | 52 | - name: Clone Source Code(克隆源代码) 53 | run: | 54 | df -hT $GITHUB_WORKSPACE 55 | sudo mkdir -p /mnt/openwrt 56 | sudo chown -R $(id -u):$(id -g) /mnt/openwrt 57 | git clone --depth 1 -b $REPO_BRANCH --single-branch $REPO_URL /mnt/openwrt 58 | cd /mnt/openwrt 59 | echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV 60 | VERSION_INFO=$(git show -s --date=short --format="作者: %an
时间: %cd
内容: %s
hash: %H") 61 | echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV 62 | VERSION_KERNEL=$(grep -oP 'LINUX_KERNEL_HASH-\K[0-9]+\.[0-9]+\.[0-9]+' target/linux/generic/kernel-6.12) 63 | echo "VERSION_KERNEL=$VERSION_KERNEL" >> $GITHUB_ENV 64 | 65 | - name: Generate Variables(生成变量) 66 | run: | 67 | cp $CONFIG_FILE $OPENWRT_PATH/.config 68 | cd $OPENWRT_PATH 69 | make defconfig > /dev/null 2>&1 70 | SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')" 71 | echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV 72 | DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}') 73 | echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV 74 | DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}') 75 | echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV 76 | echo "HASH=$(git log -1 --pretty=format:'%h')" >> $GITHUB_ENV 77 | echo "CACHE_DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 78 | 79 | - name: Cache Toolchain(缓存工具链) 80 | uses: actions/cache@main 81 | with: 82 | key: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.HASH }} ${{ env.CACHE_DATE }} 83 | restore-keys: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- 84 | path: | 85 | ${{ env.OPENWRT_PATH }}/.ccache 86 | ${{ env.OPENWRT_PATH }}/staging_dir 87 | 88 | - name: Refresh The Cache(刷新缓存) 89 | run: | 90 | if [ -d "$OPENWRT_PATH/staging_dir" ]; then 91 | find "$OPENWRT_PATH/staging_dir" -type d -name "stamp" -not -path "*target*" | while read -r dir; do 92 | find "$dir" -type f -exec touch {} + 93 | done 94 | fi 95 | 96 | - name: Install Feeds(安装feeds) 97 | run: | 98 | cd $OPENWRT_PATH 99 | ./scripts/feeds update -a 100 | ./scripts/feeds install -a 101 | 102 | - name: Load Custom Configuration(加载自定义配置) 103 | run: | 104 | chmod +x $DIY_SCRIPT 105 | cd $OPENWRT_PATH 106 | $GITHUB_WORKSPACE/$DIY_SCRIPT 107 | 108 | - name: Download DL Package(下载DL软件包) 109 | run: | 110 | cat $CONFIG_FILE $GENERAL_CONFIG_FILE > $OPENWRT_PATH/.config 111 | cd $OPENWRT_PATH 112 | make defconfig 113 | make download -j$(nproc) 114 | 115 | - name: Compile Firmware(开始编译固件) 116 | id: compile 117 | run: | 118 | cd $OPENWRT_PATH 119 | echo -e "$(nproc) thread compile" 120 | make -j$(nproc) || make -j1 || make -j1 V=s 121 | echo "status=success" >> $GITHUB_OUTPUT 122 | echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 123 | echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV 124 | 125 | - name: Check Space Usage(检查空间使用情况) 126 | if: (!cancelled()) 127 | run: df -hT 128 | 129 | - name: Upload Bin Directory(上传固件) 130 | if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' 131 | uses: actions/upload-artifact@main 132 | with: 133 | name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 134 | path: ${{ env.OPENWRT_PATH }}/bin 135 | 136 | - name: Organize Files(整理文件) 137 | if: steps.compile.outputs.status == 'success' 138 | run: | 139 | cd $OPENWRT_PATH/bin/targets/*/* 140 | cp $OPENWRT_PATH/.config ipq60xx.config 141 | mv config.buildinfo ipq60xx.config.buildinfo 142 | mv -f $OPENWRT_PATH/bin/packages/*/*/*.apk packages 143 | tar -zcf ipq60xx.Packages.tar.gz packages 144 | rm -rf packages feeds.buildinfo version.buildinfo sha256sums profiles.json 145 | echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV 146 | 147 | - name: Upload Firmware To Artifact(将固件上传到Artifact) 148 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true' 149 | uses: actions/upload-artifact@main 150 | with: 151 | name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 152 | path: ${{ env.FIRMWARE_PATH }} 153 | 154 | - name: Upload Firmware To Release(发布固件) 155 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true' 156 | uses: ncipollo/release-action@main 157 | with: 158 | name: ${{ env.DATE }} for ${{ env.FIRMWARE_TAG }} 159 | allowUpdates: true 160 | tag: ${{ env.FIRMWARE_TAG }} 161 | token: ${{ secrets.GITHUB_TOKEN }} 162 | artifacts: ${{ env.FIRMWARE_PATH }}/* 163 | body: | 164 | **This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}** 165 | ### 📒 固件信息 166 | - 这是开启全功能NSS的6.12内核固件,默认主题为Aurora;该固件在ImmortalWrt的基础上,添加了额外的软件包cpufreq、ddns、ttyd、upnp、wolplus、samba4、vlmcsd、aria2、autoreboot、uhttpd、wifischedule、frps、frpc、diskman、hd-idle、banip、acme、arpbind、usb-printer、passwall、oaf、sqm、wireguard、watchcat、wechatpush、3cat、smartdns,并添加了若干工具,具体详见IPQ60XX.config和General.config。 167 | - 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件 168 | - ⚽ 固件源码: ${{ env.REPO_URL }} 169 | - 💝 源码分支: ${{ env.REPO_BRANCH }} 170 | - 🌐 默认地址: **192.168.2.1** 171 | - 🔑 默认密码: none 172 | ### 🧊 固件版本 173 | - 固件内核版本:**${{ env.VERSION_KERNEL }}** 174 | - 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录 175 | - ${{ env.VERSION_INFO }} 176 | 177 | - name: Delete Old Cache(删除旧缓存) 178 | run: | 179 | # 获取缓存列表并删除 180 | gh cache list --key ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- --json key --jq '.[] | .key' | while read -r key; do 181 | gh cache delete "$key" 182 | done 183 | # 输出缓存状态 184 | echo "========cache status========" 185 | echo "ccache: $(du -sh $OPENWRT_PATH/.ccache | cut -f 1)" 186 | echo "staging: $(du -sh $OPENWRT_PATH/staging_dir | cut -f 1)" 187 | env: 188 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/IPQ807X-LibWrt.yml: -------------------------------------------------------------------------------- 1 | name: IPQ807X-LibWrt 2 | 3 | on: 4 | workflow_dispatch: 5 | workflow_call: 6 | # schedule: 7 | # - cron: 0 20 * * * 8 | 9 | env: 10 | REPO_URL: https://github.com/laipeng668/openwrt-6.x.git 11 | REPO_BRANCH: main-nss 12 | CONFIG_FILE: configs/IPQ807X.config 13 | GENERAL_CONFIG_FILE: configs/General.config 14 | DIY_SCRIPT: scripts/Roc-script.sh 15 | CLASH_KERNEL: amd64 16 | UPLOAD_BIN_DIR: false 17 | FIRMWARE_RELEASE: true 18 | FIRMWARE_TAG: IPQ807X 19 | TZ: Asia/Shanghai 20 | 21 | jobs: 22 | Build: 23 | runs-on: ubuntu-24.04 24 | 25 | steps: 26 | - name: Check Server Performance(检查服务器性能) 27 | run: | 28 | echo "警告⚠" 29 | echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" 30 | echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n" 31 | echo "--------------------------CPU信息--------------------------" 32 | echo "CPU物理数量:$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)" 33 | echo -e "CPU核心信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" 34 | echo "--------------------------内存信息--------------------------" 35 | echo "已安装内存详细信息:" 36 | echo -e "$(sudo lshw -short -C memory | grep GiB) \n" 37 | echo "--------------------------硬盘信息--------------------------" 38 | echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT 39 | 40 | - name: Initialization Environment(初始化环境) 41 | env: 42 | DEBIAN_FRONTEND: noninteractive 43 | run: | 44 | sudo -E apt-get -y update 45 | sudo -E apt-get -y install $(curl -fsSL ophub.org/ubuntu2404-make-openwrt-depends) 46 | sudo -E systemctl daemon-reload 47 | sudo timedatectl set-timezone "$TZ" 48 | 49 | - name: Checkout(检出代码) 50 | uses: actions/checkout@main 51 | 52 | - name: Clone Source Code(克隆源代码) 53 | run: | 54 | df -hT $GITHUB_WORKSPACE 55 | sudo mkdir -p /mnt/openwrt 56 | sudo chown -R $(id -u):$(id -g) /mnt/openwrt 57 | git clone --depth 1 -b $REPO_BRANCH --single-branch $REPO_URL /mnt/openwrt 58 | cd /mnt/openwrt 59 | echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV 60 | VERSION_INFO=$(git show -s --date=short --format="作者: %an
时间: %cd
内容: %s
hash: %H") 61 | echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV 62 | VERSION_KERNEL=$(grep -oP 'LINUX_KERNEL_HASH-\K[0-9]+\.[0-9]+\.[0-9]+' target/linux/generic/kernel-6.12) 63 | echo "VERSION_KERNEL=$VERSION_KERNEL" >> $GITHUB_ENV 64 | 65 | - name: Generate Variables(生成变量) 66 | run: | 67 | cp $CONFIG_FILE $OPENWRT_PATH/.config 68 | cd $OPENWRT_PATH 69 | make defconfig > /dev/null 2>&1 70 | SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')" 71 | echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV 72 | DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}') 73 | echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV 74 | DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}') 75 | echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV 76 | echo "HASH=$(git log -1 --pretty=format:'%h')" >> $GITHUB_ENV 77 | echo "CACHE_DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 78 | 79 | - name: Cache Toolchain(缓存工具链) 80 | uses: actions/cache@main 81 | with: 82 | key: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.HASH }} ${{ env.CACHE_DATE }} 83 | restore-keys: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- 84 | path: | 85 | ${{ env.OPENWRT_PATH }}/.ccache 86 | ${{ env.OPENWRT_PATH }}/staging_dir 87 | 88 | - name: Refresh The Cache(刷新缓存) 89 | run: | 90 | if [ -d "$OPENWRT_PATH/staging_dir" ]; then 91 | find "$OPENWRT_PATH/staging_dir" -type d -name "stamp" -not -path "*target*" | while read -r dir; do 92 | find "$dir" -type f -exec touch {} + 93 | done 94 | fi 95 | 96 | - name: Install Feeds(安装feeds) 97 | run: | 98 | cd $OPENWRT_PATH 99 | ./scripts/feeds update -a 100 | ./scripts/feeds install -a 101 | 102 | - name: Load Custom Configuration(加载自定义配置) 103 | run: | 104 | chmod +x $DIY_SCRIPT 105 | cd $OPENWRT_PATH 106 | $GITHUB_WORKSPACE/$DIY_SCRIPT 107 | 108 | - name: Download DL Package(下载DL软件包) 109 | run: | 110 | cat $CONFIG_FILE $GENERAL_CONFIG_FILE > $OPENWRT_PATH/.config 111 | cd $OPENWRT_PATH 112 | make defconfig 113 | make download -j$(nproc) 114 | 115 | - name: Compile Firmware(开始编译固件) 116 | id: compile 117 | run: | 118 | cd $OPENWRT_PATH 119 | echo -e "$(nproc) thread compile" 120 | make -j$(nproc) || make -j1 || make -j1 V=s 121 | echo "status=success" >> $GITHUB_OUTPUT 122 | echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 123 | echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV 124 | 125 | - name: Check Space Usage(检查空间使用情况) 126 | if: (!cancelled()) 127 | run: df -hT 128 | 129 | - name: Upload Bin Directory(上传固件) 130 | if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' 131 | uses: actions/upload-artifact@main 132 | with: 133 | name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 134 | path: ${{ env.OPENWRT_PATH }}/bin 135 | 136 | - name: Organize Files(整理文件) 137 | if: steps.compile.outputs.status == 'success' 138 | run: | 139 | cd $OPENWRT_PATH/bin/targets/*/* 140 | cp $OPENWRT_PATH/.config ipq807x.config 141 | mv config.buildinfo ipq807x.config.buildinfo 142 | mv -f $OPENWRT_PATH/bin/packages/*/*/*.apk packages 143 | tar -zcf ipq807x.Packages.tar.gz packages 144 | rm -rf packages feeds.buildinfo version.buildinfo sha256sums profiles.json 145 | echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV 146 | 147 | - name: Upload Firmware To Artifact(将固件上传到Artifact) 148 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true' 149 | uses: actions/upload-artifact@main 150 | with: 151 | name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 152 | path: ${{ env.FIRMWARE_PATH }} 153 | 154 | - name: Upload Firmware To Release(发布固件) 155 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true' 156 | uses: ncipollo/release-action@main 157 | with: 158 | name: ${{ env.DATE }} for ${{ env.FIRMWARE_TAG }} 159 | allowUpdates: true 160 | tag: ${{ env.FIRMWARE_TAG }} 161 | token: ${{ secrets.GITHUB_TOKEN }} 162 | artifacts: ${{ env.FIRMWARE_PATH }}/* 163 | body: | 164 | **This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}** 165 | ### 📒 固件信息 166 | - 这是开启全功能NSS的6.12内核固件,默认主题为Aurora;该固件在ImmortalWrt的基础上,添加了额外的软件包cpufreq、ddns、ttyd、upnp、wolplus、samba4、vlmcsd、aria2、autoreboot、uhttpd、wifischedule、frps、frpc、diskman、hd-idle、banip、acme、arpbind、usb-printer、passwall、oaf、sqm、wireguard、watchcat、wechatpush、3cat、smartdns,并添加了若干工具,具体详见IPQ807X.config和General.config。 167 | - 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件 168 | - ⚽ 固件源码: ${{ env.REPO_URL }} 169 | - 💝 源码分支: ${{ env.REPO_BRANCH }} 170 | - 🌐 默认地址: **192.168.2.1** 171 | - 🔑 默认密码: none 172 | ### 🧊 固件版本 173 | - 固件内核版本:**${{ env.VERSION_KERNEL }}** 174 | - 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录 175 | - ${{ env.VERSION_INFO }} 176 | 177 | - name: Delete Old Cache(删除旧缓存) 178 | run: | 179 | # 获取缓存列表并删除 180 | gh cache list --key ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- --json key --jq '.[] | .key' | while read -r key; do 181 | gh cache delete "$key" 182 | done 183 | # 输出缓存状态 184 | echo "========cache status========" 185 | echo "ccache: $(du -sh $OPENWRT_PATH/.ccache | cut -f 1)" 186 | echo "staging: $(du -sh $OPENWRT_PATH/staging_dir | cut -f 1)" 187 | env: 188 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/K2P-ImmortalWrt.yml: -------------------------------------------------------------------------------- 1 | name: K2P-ImmortalWrt 2 | 3 | on: 4 | workflow_dispatch: 5 | workflow_call: 6 | # schedule: 7 | # - cron: 0 20 * * * 8 | 9 | env: 10 | REPO_URL: https://github.com/immortalwrt/immortalwrt.git 11 | REPO_BRANCH: openwrt-23.05 12 | CONFIG_FILE: configs/K2P.config 13 | DIY_SCRIPT: scripts/Roc-script.sh 14 | CLASH_KERNEL: amd64 15 | UPLOAD_BIN_DIR: false 16 | FIRMWARE_RELEASE: true 17 | FIRMWARE_TAG: RAX3000M&K2P 18 | TZ: Asia/Shanghai 19 | 20 | jobs: 21 | Build: 22 | runs-on: ubuntu-24.04 23 | 24 | steps: 25 | - name: Check Server Performance(检查服务器性能) 26 | run: | 27 | echo "警告⚠" 28 | echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" 29 | echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n" 30 | echo "--------------------------CPU信息--------------------------" 31 | echo "CPU物理数量:$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)" 32 | echo -e "CPU核心信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" 33 | echo "--------------------------内存信息--------------------------" 34 | echo "已安装内存详细信息:" 35 | echo -e "$(sudo lshw -short -C memory | grep GiB) \n" 36 | echo "--------------------------硬盘信息--------------------------" 37 | echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT 38 | 39 | - name: Initialization Environment(初始化环境) 40 | env: 41 | DEBIAN_FRONTEND: noninteractive 42 | run: | 43 | sudo -E apt-get -y update 44 | sudo -E apt-get -y install $(curl -fsSL ophub.org/ubuntu2404-make-openwrt-depends) 45 | sudo -E systemctl daemon-reload 46 | sudo timedatectl set-timezone "$TZ" 47 | 48 | - name: Checkout(检出代码) 49 | uses: actions/checkout@main 50 | 51 | - name: Clone Source Code(克隆源代码) 52 | run: | 53 | df -hT $GITHUB_WORKSPACE 54 | sudo mkdir -p /mnt/openwrt 55 | sudo chown -R $(id -u):$(id -g) /mnt/openwrt 56 | git clone --depth 1 -b $REPO_BRANCH --single-branch $REPO_URL /mnt/openwrt 57 | cd /mnt/openwrt 58 | echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV 59 | VERSION_INFO=$(git show -s --date=short --format="作者: %an
时间: %cd
内容: %s
hash: %H") 60 | echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV 61 | VERSION_KERNEL=$(grep -oP 'LINUX_KERNEL_HASH-\K[0-9]+\.[0-9]+\.[0-9]+' include/kernel-5.15) 62 | echo "VERSION_KERNEL=$VERSION_KERNEL" >> $GITHUB_ENV 63 | 64 | - name: Generate Variables(生成变量) 65 | run: | 66 | cp $CONFIG_FILE $OPENWRT_PATH/.config 67 | cd $OPENWRT_PATH 68 | make defconfig > /dev/null 2>&1 69 | SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')" 70 | echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV 71 | DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}') 72 | echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV 73 | DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}') 74 | echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV 75 | echo "HASH=$(git log -1 --pretty=format:'%h')" >> $GITHUB_ENV 76 | echo "CACHE_DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 77 | 78 | - name: Cache Toolchain(缓存工具链) 79 | uses: actions/cache@main 80 | with: 81 | key: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.HASH }} ${{ env.CACHE_DATE }} 82 | restore-keys: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- 83 | path: | 84 | ${{ env.OPENWRT_PATH }}/.ccache 85 | ${{ env.OPENWRT_PATH }}/staging_dir 86 | 87 | - name: Refresh The Cache(刷新缓存) 88 | run: | 89 | if [ -d "$OPENWRT_PATH/staging_dir" ]; then 90 | find "$OPENWRT_PATH/staging_dir" -type d -name "stamp" -not -path "*target*" | while read -r dir; do 91 | find "$dir" -type f -exec touch {} + 92 | done 93 | fi 94 | 95 | - name: Install Feeds(安装feeds) 96 | run: | 97 | cd $OPENWRT_PATH 98 | ./scripts/feeds update -a 99 | ./scripts/feeds install -a 100 | 101 | - name: Load Custom Configuration(加载自定义配置) 102 | run: | 103 | chmod +x $DIY_SCRIPT 104 | cd $OPENWRT_PATH 105 | $GITHUB_WORKSPACE/$DIY_SCRIPT 106 | 107 | - name: Download DL Package(下载DL软件包) 108 | run: | 109 | cp -f $CONFIG_FILE $OPENWRT_PATH/.config 110 | cd $OPENWRT_PATH 111 | # 修改配置文件 112 | sed -i "/uci.set('dhcp', section_id, 'leasetime', '12h');/a\ uci.set('dhcp', section_id, 'dhcpv4', 'server');" \ 113 | feeds/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js 114 | make defconfig 115 | make download -j$(nproc) 116 | 117 | - name: Compile Firmware(开始编译固件) 118 | id: compile 119 | run: | 120 | cd $OPENWRT_PATH 121 | echo -e "$(nproc) thread compile" 122 | make -j$(nproc) || make -j1 || make -j1 V=s 123 | echo "status=success" >> $GITHUB_OUTPUT 124 | echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 125 | echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV 126 | 127 | - name: Check Space Usage(检查空间使用情况) 128 | if: (!cancelled()) 129 | run: df -hT 130 | 131 | - name: Upload Bin Directory(上传固件) 132 | if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' 133 | uses: actions/upload-artifact@main 134 | with: 135 | name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 136 | path: ${{ env.OPENWRT_PATH }}/bin 137 | 138 | - name: Organize Files(整理文件) 139 | if: steps.compile.outputs.status == 'success' 140 | run: | 141 | cd $OPENWRT_PATH/bin/targets/*/* 142 | cp $OPENWRT_PATH/.config K2P.config 143 | mv config.buildinfo K2P.config.buildinfo 144 | mv -f $OPENWRT_PATH/bin/packages/*/*/*.ipk packages 145 | tar -zcf K2P.Packages.tar.gz packages 146 | rm -rf packages feeds.buildinfo version.buildinfo sha256sums profiles.json 147 | echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV 148 | 149 | - name: Upload Firmware To Artifact(将固件上传到Artifact) 150 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true' 151 | uses: actions/upload-artifact@main 152 | with: 153 | name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 154 | path: ${{ env.FIRMWARE_PATH }} 155 | 156 | - name: Upload Firmware To Release(发布固件) 157 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true' 158 | uses: ncipollo/release-action@main 159 | with: 160 | name: ${{ env.DATE }} for ${{ env.FIRMWARE_TAG }} 161 | allowUpdates: true 162 | tag: ${{ env.FIRMWARE_TAG }} 163 | token: ${{ secrets.GITHUB_TOKEN }} 164 | artifacts: ${{ env.FIRMWARE_PATH }}/* 165 | body: | 166 | **This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}** 167 | ### 📒 固件信息 168 | - 这是CMCC RAX3000M NAND version (custom U-Boot layout)&K2P的5.15内核固件,默认主题为Aurora;该固件在ImmortalWrt的基础上,添加了额外的软件包ddns、ttyd、upnp、wolplus、samba4、vlmcsd、aria2、autoreboot、uhttpd、wifischedule、frps、frpc、diskman、hd-idle、banip、acme、arpbind、usb-printer、passwall、fileassistant、oaf、sqm、wireguard、watchcat、wechatpush、3cat、smartdns(**K2P**仅包含ttyd、autoreboot、uhttpd、wifischedule),并添加了若干工具,具体详见对应机型的config(RAX3000M包含General.config)。 169 | - 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件 170 | - ⚽ 固件源码: ${{ env.REPO_URL }} 171 | - 💝 源码分支: ${{ env.REPO_BRANCH }} 172 | - 🌐 默认地址: **192.168.2.1** 173 | - 🔑 默认密码: none 174 | ### 🧊 固件版本 175 | - 固件内核版本:**${{ env.VERSION_KERNEL }}** 176 | - 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录 177 | - ${{ env.VERSION_INFO }} 178 | 179 | - name: Delete Old Cache(删除旧缓存) 180 | run: | 181 | # 获取缓存列表并删除 182 | gh cache list --key ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- --json key --jq '.[] | .key' | while read -r key; do 183 | gh cache delete "$key" 184 | done 185 | # 输出缓存状态 186 | echo "========cache status========" 187 | echo "ccache: $(du -sh $OPENWRT_PATH/.ccache | cut -f 1)" 188 | echo "staging: $(du -sh $OPENWRT_PATH/staging_dir | cut -f 1)" 189 | env: 190 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/x86-64-ImmortalWrt.yml: -------------------------------------------------------------------------------- 1 | name: x86-64-ImmortalWrt 2 | 3 | on: 4 | workflow_dispatch: 5 | workflow_call: 6 | # schedule: 7 | # - cron: 0 20 * * * 8 | 9 | env: 10 | REPO_URL: https://github.com/immortalwrt/immortalwrt.git 11 | REPO_BRANCH: master 12 | CONFIG_FILE: configs/x86-64.config 13 | GENERAL_CONFIG_FILE: configs/General.config 14 | DIY_SCRIPT: scripts/Roc-script.sh 15 | CLASH_KERNEL: amd64 16 | UPLOAD_BIN_DIR: false 17 | FIRMWARE_RELEASE: true 18 | FIRMWARE_TAG: x86-64 19 | TZ: Asia/Shanghai 20 | 21 | jobs: 22 | Build: 23 | runs-on: ubuntu-24.04 24 | 25 | steps: 26 | - name: Maximize Disk Space(最大化磁盘空间) 27 | uses: sbwml/actions@free-disk 28 | with: 29 | build-mount-path: /roc 30 | 31 | - name: Check Server Performance(检查服务器性能) 32 | run: | 33 | echo "警告⚠" 34 | echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" 35 | echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n" 36 | echo "--------------------------CPU信息--------------------------" 37 | echo "CPU物理数量:$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)" 38 | echo -e "CPU核心信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" 39 | echo "--------------------------内存信息--------------------------" 40 | echo "已安装内存详细信息:" 41 | echo -e "$(sudo lshw -short -C memory | grep GiB) \n" 42 | echo "--------------------------硬盘信息--------------------------" 43 | echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT 44 | 45 | - name: Initialization Environment(初始化环境) 46 | env: 47 | DEBIAN_FRONTEND: noninteractive 48 | run: | 49 | sudo -E apt-get -y update 50 | sudo -E apt-get -y install $(curl -fsSL ophub.org/ubuntu2404-make-openwrt-depends) 51 | sudo -E systemctl daemon-reload 52 | sudo timedatectl set-timezone "$TZ" 53 | 54 | - name: Checkout(检出代码) 55 | uses: actions/checkout@main 56 | 57 | - name: Clone Source Code(克隆源代码) 58 | run: | 59 | df -hT $GITHUB_WORKSPACE 60 | sudo chown -R $(id -u):$(id -g) /roc 61 | git clone --depth 1 -b $REPO_BRANCH --single-branch $REPO_URL /roc 62 | cd /roc 63 | echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV 64 | VERSION_INFO=$(git show -s --date=short --format="作者: %an
时间: %cd
内容: %s
hash: %H") 65 | echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV 66 | VERSION_KERNEL=$(grep -oP 'LINUX_KERNEL_HASH-\K[0-9]+\.[0-9]+\.[0-9]+' target/linux/generic/kernel-6.12) 67 | echo "VERSION_KERNEL=$VERSION_KERNEL" >> $GITHUB_ENV 68 | 69 | - name: Generate Variables(生成变量) 70 | run: | 71 | cp $CONFIG_FILE $OPENWRT_PATH/.config 72 | cd $OPENWRT_PATH 73 | make defconfig > /dev/null 2>&1 74 | SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')" 75 | echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV 76 | DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}') 77 | echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV 78 | DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}') 79 | echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV 80 | echo "HASH=$(git log -1 --pretty=format:'%h')" >> $GITHUB_ENV 81 | echo "CACHE_DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 82 | 83 | - name: Cache Toolchain(缓存工具链) 84 | uses: actions/cache@main 85 | with: 86 | key: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.HASH }} ${{ env.CACHE_DATE }} 87 | restore-keys: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- 88 | path: | 89 | ${{ env.OPENWRT_PATH }}/.ccache 90 | ${{ env.OPENWRT_PATH }}/staging_dir 91 | 92 | - name: Refresh The Cache(刷新缓存) 93 | run: | 94 | if [ -d "$OPENWRT_PATH/staging_dir" ]; then 95 | find "$OPENWRT_PATH/staging_dir" -type d -name "stamp" -not -path "*target*" | while read -r dir; do 96 | find "$dir" -type f -exec touch {} + 97 | done 98 | fi 99 | 100 | - name: Install Feeds(安装feeds) 101 | run: | 102 | cd $OPENWRT_PATH 103 | ./scripts/feeds update -a 104 | ./scripts/feeds install -a 105 | 106 | - name: Load Custom Configuration(加载自定义配置) 107 | run: | 108 | chmod +x $DIY_SCRIPT 109 | cd $OPENWRT_PATH 110 | $GITHUB_WORKSPACE/$DIY_SCRIPT 111 | 112 | - name: Download DL Package(下载DL软件包) 113 | run: | 114 | cat $CONFIG_FILE $GENERAL_CONFIG_FILE > $OPENWRT_PATH/.config 115 | cd $OPENWRT_PATH 116 | # 修改配置文件 117 | sed -i '/CONFIG_PACKAGE_sqm-scripts-nss=y/d' .config 118 | sed -i 's|^\(CONFIG_TARGET_OPTIMIZATION=\).*"|\1"-O3 -pipe -march=x86-64 -mtune=generic"|' .config 119 | make defconfig 120 | make download -j$(nproc) 121 | 122 | - name: Compile Firmware(开始编译固件) 123 | id: compile 124 | run: | 125 | cd $OPENWRT_PATH 126 | echo -e "$(nproc) thread compile" 127 | make -j$(nproc) || make -j1 || make -j1 V=s 128 | echo "status=success" >> $GITHUB_OUTPUT 129 | echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 130 | echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV 131 | 132 | - name: Check Space Usage(检查空间使用情况) 133 | if: (!cancelled()) 134 | run: df -hT 135 | 136 | - name: Upload Bin Directory(上传固件) 137 | if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' 138 | uses: actions/upload-artifact@main 139 | with: 140 | name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 141 | path: ${{ env.OPENWRT_PATH }}/bin 142 | 143 | - name: Organize Files(整理文件) 144 | if: steps.compile.outputs.status == 'success' 145 | run: | 146 | cd $OPENWRT_PATH/bin/targets/*/* 147 | cp $OPENWRT_PATH/.config x86.64.config 148 | mv config.buildinfo x86.64.config.buildinfo 149 | mv -f $OPENWRT_PATH/bin/packages/*/*/*.apk packages 150 | tar -zcf x86.64.Packages.tar.gz packages 151 | rm -rf packages feeds.buildinfo version.buildinfo sha256sums profiles.json 152 | echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV 153 | 154 | - name: Upload Firmware To Artifact(将固件上传到Artifact) 155 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true' 156 | uses: actions/upload-artifact@main 157 | with: 158 | name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 159 | path: ${{ env.FIRMWARE_PATH }} 160 | 161 | - name: Upload Firmware To Release(发布固件) 162 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true' 163 | uses: ncipollo/release-action@main 164 | with: 165 | name: ${{ env.DATE }} for ${{ env.FIRMWARE_TAG }} 166 | allowUpdates: true 167 | tag: ${{ env.FIRMWARE_TAG }} 168 | token: ${{ secrets.GITHUB_TOKEN }} 169 | artifacts: ${{ env.FIRMWARE_PATH }}/* 170 | body: | 171 | **This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}** 172 | ### 📒 固件信息 173 | - 这是基于ImmortalWrt主线制作的个人定制固件,默认主题为Aurora;该固件在ImmortalWrt的基础上,添加了额外的软件包cpufreq、ddns、ttyd、upnp、wolplus、samba4、vlmcsd、aria2、autoreboot、uhttpd、frps、frpc、diskman、hd-idle、banip、acme、arpbind、usb-printer、openlist、dockerman、gecoosac、lucky、oaf、sqm、wireguard、watchcat、wechatpush、3cat、passwall、passwall2、openclash、smartdns,并添加了若干工具,具体详见x86-64.config和General.config。 174 | - 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件 175 | - ⚽ 固件源码: ${{ env.REPO_URL }} 176 | - 💝 源码分支: ${{ env.REPO_BRANCH }} 177 | - 🌐 默认地址: **192.168.2.1** 178 | - 🔑 默认密码: none 179 | ### 🧊 固件版本 180 | - 固件内核版本:**${{ env.VERSION_KERNEL }}** 181 | - 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录 182 | - ${{ env.VERSION_INFO }} 183 | 184 | - name: Delete Old Cache(删除旧缓存) 185 | run: | 186 | # 获取缓存列表并删除 187 | gh cache list --key ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- --json key --jq '.[] | .key' | while read -r key; do 188 | gh cache delete "$key" 189 | done 190 | # 输出缓存状态 191 | echo "========cache status========" 192 | echo "ccache: $(du -sh $OPENWRT_PATH/.ccache | cut -f 1)" 193 | echo "staging: $(du -sh $OPENWRT_PATH/staging_dir | cut -f 1)" 194 | env: 195 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/Arthur&Athena&Taiyi-ImmortalWrt.yml: -------------------------------------------------------------------------------- 1 | name: Arthur&Athena&Taiyi-ImmortalWrt 2 | 3 | on: 4 | workflow_dispatch: 5 | workflow_call: 6 | # schedule: 7 | # - cron: 0 20 * * * 8 | 9 | env: 10 | REPO_URL: https://github.com/laipeng668/immortalwrt.git 11 | REPO_BRANCH: openwrt-25.12 12 | CONFIG_FILE: configs/Arthur&Athena&Taiyi.config 13 | GENERAL_CONFIG_FILE: configs/General.config 14 | DIY_SCRIPT: scripts/Roc-script.sh 15 | CLASH_KERNEL: amd64 16 | UPLOAD_BIN_DIR: false 17 | FIRMWARE_RELEASE: true 18 | FIRMWARE_TAG: Arthur&Athena&Taiyi 19 | TZ: Asia/Shanghai 20 | 21 | jobs: 22 | Build: 23 | runs-on: ubuntu-24.04 24 | 25 | steps: 26 | - name: Check Server Performance(检查服务器性能) 27 | run: | 28 | echo "警告⚠" 29 | echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" 30 | echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n" 31 | echo "--------------------------CPU信息--------------------------" 32 | echo "CPU物理数量:$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)" 33 | echo -e "CPU核心信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" 34 | echo "--------------------------内存信息--------------------------" 35 | echo "已安装内存详细信息:" 36 | echo -e "$(sudo lshw -short -C memory | grep GiB) \n" 37 | echo "--------------------------硬盘信息--------------------------" 38 | echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT 39 | 40 | - name: Initialization Environment(初始化环境) 41 | env: 42 | DEBIAN_FRONTEND: noninteractive 43 | run: | 44 | sudo -E apt-get -y update 45 | sudo -E apt-get -y install $(curl -fsSL ophub.org/ubuntu2404-make-openwrt-depends) 46 | sudo -E systemctl daemon-reload 47 | sudo timedatectl set-timezone "$TZ" 48 | 49 | - name: Checkout(检出代码) 50 | uses: actions/checkout@main 51 | 52 | - name: Clone Source Code(克隆源代码) 53 | run: | 54 | df -hT $GITHUB_WORKSPACE 55 | sudo mkdir -p /mnt/openwrt 56 | sudo chown -R $(id -u):$(id -g) /mnt/openwrt 57 | git clone --depth 1 -b $REPO_BRANCH --single-branch $REPO_URL /mnt/openwrt 58 | cd /mnt/openwrt 59 | echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV 60 | VERSION_INFO=$(git show -s --date=short --format="作者: %an
时间: %cd
内容: %s
hash: %H") 61 | echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV 62 | VERSION_KERNEL=$(grep -oP 'LINUX_KERNEL_HASH-\K[0-9]+\.[0-9]+\.[0-9]+' target/linux/generic/kernel-6.12) 63 | echo "VERSION_KERNEL=$VERSION_KERNEL" >> $GITHUB_ENV 64 | 65 | - name: Generate Variables(生成变量) 66 | run: | 67 | cp $CONFIG_FILE $OPENWRT_PATH/.config 68 | cd $OPENWRT_PATH 69 | make defconfig > /dev/null 2>&1 70 | SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')" 71 | echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV 72 | DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}') 73 | echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV 74 | DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}') 75 | echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV 76 | echo "HASH=$(git log -1 --pretty=format:'%h')" >> $GITHUB_ENV 77 | echo "CACHE_DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 78 | 79 | - name: Cache Toolchain(缓存工具链) 80 | uses: actions/cache@main 81 | with: 82 | key: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.HASH }} ${{ env.CACHE_DATE }} 83 | restore-keys: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- 84 | path: | 85 | ${{ env.OPENWRT_PATH }}/.ccache 86 | ${{ env.OPENWRT_PATH }}/staging_dir 87 | 88 | - name: Refresh The Cache(刷新缓存) 89 | run: | 90 | if [ -d "$OPENWRT_PATH/staging_dir" ]; then 91 | find "$OPENWRT_PATH/staging_dir" -type d -name "stamp" -not -path "*target*" | while read -r dir; do 92 | find "$dir" -type f -exec touch {} + 93 | done 94 | fi 95 | 96 | - name: Install Feeds(安装feeds) 97 | run: | 98 | cd $OPENWRT_PATH 99 | ./scripts/feeds update -a 100 | ./scripts/feeds install -a 101 | 102 | - name: Load Custom Configuration(加载自定义配置) 103 | run: | 104 | chmod +x $DIY_SCRIPT 105 | cd $OPENWRT_PATH 106 | $GITHUB_WORKSPACE/$DIY_SCRIPT 107 | 108 | - name: Download DL Package(下载DL软件包) 109 | run: | 110 | cat $CONFIG_FILE $GENERAL_CONFIG_FILE > $OPENWRT_PATH/.config 111 | cd $OPENWRT_PATH 112 | make defconfig 113 | make download -j$(nproc) 114 | 115 | - name: Compile Firmware(开始编译固件) 116 | id: compile 117 | run: | 118 | cd $OPENWRT_PATH 119 | echo -e "$(nproc) thread compile" 120 | make -j$(nproc) || make -j1 || make -j1 V=s 121 | echo "status=success" >> $GITHUB_OUTPUT 122 | echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 123 | echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV 124 | 125 | - name: Check Space Usage(检查空间使用情况) 126 | if: (!cancelled()) 127 | run: df -hT 128 | 129 | - name: Upload Bin Directory(上传固件) 130 | if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' 131 | uses: actions/upload-artifact@main 132 | with: 133 | name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 134 | path: ${{ env.OPENWRT_PATH }}/bin 135 | 136 | - name: Organize Files(整理文件) 137 | if: steps.compile.outputs.status == 'success' 138 | run: | 139 | cd $OPENWRT_PATH/bin/targets/*/* 140 | cp $OPENWRT_PATH/.config Arthur.Athena.Taiyi.config 141 | mv config.buildinfo Arthur.Athena.Taiyi.config.buildinfo 142 | mv immortalwrt-qualcommax-ipq60xx.manifest immortalwrt-qualcommax-ipq60xx-Arthur.Athena.Taiyi.manifest 143 | mv -f $OPENWRT_PATH/bin/packages/*/*/*.apk packages 144 | tar -zcf Arthur.Athena.Taiyi.Packages.tar.gz packages 145 | mkdir -p dl 146 | mv -f $OPENWRT_PATH/dl/{ath11k*,nss*,qca*} dl 147 | tar -zcf Arthur.Athena.Taiyi.DL.tar.gz dl 148 | rm -rf packages dl feeds.buildinfo version.buildinfo sha256sums profiles.json 149 | echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV 150 | 151 | - name: Upload Firmware To Artifact(将固件上传到Artifact) 152 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true' 153 | uses: actions/upload-artifact@main 154 | with: 155 | name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 156 | path: ${{ env.FIRMWARE_PATH }} 157 | 158 | - name: Upload Firmware To Release(发布固件) 159 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true' 160 | uses: ncipollo/release-action@main 161 | with: 162 | name: ${{ env.DATE }} for ${{ env.FIRMWARE_TAG }} 163 | allowUpdates: true 164 | tag: ${{ env.FIRMWARE_TAG }} 165 | token: ${{ secrets.GITHUB_TOKEN }} 166 | artifacts: ${{ env.FIRMWARE_PATH }}/* 167 | body: | 168 | **This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}** 169 | ### 📒 固件信息 170 | - 这是开启全功能NSS的6.12内核固件,默认主题为Aurora;该固件在ImmortalWrt的基础上,添加了额外的软件包cpufreq、ddns、ttyd、upnp、wolplus、samba4、vlmcsd、aria2、autoreboot、uhttpd、wifischedule、frps、frpc、diskman、hd-idle、banip、acme、arpbind、usb-printer、passwall、openlist、oaf、sqm、wireguard、watchcat、wechatpush、3cat、smartdns(**Taiyi**额外增加了dockerman、gecoosac、lucky),并添加了若干工具,具体详见Arthur&Athena&Taiyi.config和General.config。 171 | - 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件 172 | - ⚽ 固件源码: ${{ env.REPO_URL }} 173 | - 💝 源码分支: ${{ env.REPO_BRANCH }} 174 | - 🌐 默认地址: **192.168.2.1** 175 | - 🔑 默认密码: none 176 | ### 🧊 固件版本 177 | - 固件内核版本:**${{ env.VERSION_KERNEL }}** 178 | - 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录 179 | - ${{ env.VERSION_INFO }} 180 | 181 | - name: Delete Old Cache(删除旧缓存) 182 | run: | 183 | # 获取缓存列表并删除 184 | gh cache list --key ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- --json key --jq '.[] | .key' | while read -r key; do 185 | gh cache delete "$key" 186 | done 187 | # 输出缓存状态 188 | echo "========cache status========" 189 | echo "ccache: $(du -sh $OPENWRT_PATH/.ccache | cut -f 1)" 190 | echo "staging: $(du -sh $OPENWRT_PATH/staging_dir | cut -f 1)" 191 | env: 192 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 193 | 194 | - name: Delete Old Workflows(删除旧工作流) 195 | uses: Mattraks/delete-workflow-runs@main 196 | with: 197 | token: ${{ secrets.GITHUB_TOKEN }} 198 | retain_days: 2 199 | keep_minimum_runs: 0 -------------------------------------------------------------------------------- /.github/workflows/RAX3000M-ImmortalWrt.yml: -------------------------------------------------------------------------------- 1 | name: RAX3000M-ImmortalWrt 2 | 3 | on: 4 | workflow_dispatch: 5 | workflow_call: 6 | # schedule: 7 | # - cron: 0 20 * * * 8 | 9 | env: 10 | REPO_URL: https://github.com/immortalwrt/immortalwrt.git 11 | REPO_BRANCH: openwrt-23.05 12 | CONFIG_FILE: configs/RAX3000M.config 13 | GENERAL_CONFIG_FILE: configs/General.config 14 | DIY_SCRIPT: scripts/Roc-script.sh 15 | CLASH_KERNEL: amd64 16 | UPLOAD_BIN_DIR: false 17 | FIRMWARE_RELEASE: true 18 | FIRMWARE_TAG: RAX3000M&K2P 19 | TZ: Asia/Shanghai 20 | 21 | jobs: 22 | Build: 23 | runs-on: ubuntu-24.04 24 | 25 | steps: 26 | - name: Check Server Performance(检查服务器性能) 27 | run: | 28 | echo "警告⚠" 29 | echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" 30 | echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n" 31 | echo "--------------------------CPU信息--------------------------" 32 | echo "CPU物理数量:$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)" 33 | echo -e "CPU核心信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" 34 | echo "--------------------------内存信息--------------------------" 35 | echo "已安装内存详细信息:" 36 | echo -e "$(sudo lshw -short -C memory | grep GiB) \n" 37 | echo "--------------------------硬盘信息--------------------------" 38 | echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT 39 | 40 | - name: Initialization Environment(初始化环境) 41 | env: 42 | DEBIAN_FRONTEND: noninteractive 43 | run: | 44 | sudo -E apt-get -y update 45 | sudo -E apt-get -y install $(curl -fsSL ophub.org/ubuntu2404-make-openwrt-depends) 46 | sudo -E systemctl daemon-reload 47 | sudo timedatectl set-timezone "$TZ" 48 | 49 | - name: Checkout(检出代码) 50 | uses: actions/checkout@main 51 | 52 | - name: Clone Source Code(克隆源代码) 53 | run: | 54 | df -hT $GITHUB_WORKSPACE 55 | sudo mkdir -p /mnt/openwrt 56 | sudo chown -R $(id -u):$(id -g) /mnt/openwrt 57 | git clone --depth 1 -b $REPO_BRANCH --single-branch $REPO_URL /mnt/openwrt 58 | cd /mnt/openwrt 59 | echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV 60 | VERSION_INFO=$(git show -s --date=short --format="作者: %an
时间: %cd
内容: %s
hash: %H") 61 | echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV 62 | VERSION_KERNEL=$(grep -oP 'LINUX_KERNEL_HASH-\K[0-9]+\.[0-9]+\.[0-9]+' include/kernel-5.15) 63 | echo "VERSION_KERNEL=$VERSION_KERNEL" >> $GITHUB_ENV 64 | 65 | - name: Generate Variables(生成变量) 66 | run: | 67 | cp $CONFIG_FILE $OPENWRT_PATH/.config 68 | cd $OPENWRT_PATH 69 | make defconfig > /dev/null 2>&1 70 | SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')" 71 | echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV 72 | DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}') 73 | echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV 74 | DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}') 75 | echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV 76 | echo "HASH=$(git log -1 --pretty=format:'%h')" >> $GITHUB_ENV 77 | echo "CACHE_DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 78 | 79 | - name: Cache Toolchain(缓存工具链) 80 | uses: actions/cache@main 81 | with: 82 | key: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.HASH }} ${{ env.CACHE_DATE }} 83 | restore-keys: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- 84 | path: | 85 | ${{ env.OPENWRT_PATH }}/.ccache 86 | ${{ env.OPENWRT_PATH }}/staging_dir 87 | 88 | - name: Refresh The Cache(刷新缓存) 89 | run: | 90 | if [ -d "$OPENWRT_PATH/staging_dir" ]; then 91 | find "$OPENWRT_PATH/staging_dir" -type d -name "stamp" -not -path "*target*" | while read -r dir; do 92 | find "$dir" -type f -exec touch {} + 93 | done 94 | fi 95 | 96 | - name: Install Feeds(安装feeds) 97 | run: | 98 | cd $OPENWRT_PATH 99 | ./scripts/feeds update -a 100 | ./scripts/feeds install -a 101 | 102 | - name: Load Custom Configuration(加载自定义配置) 103 | run: | 104 | chmod +x $DIY_SCRIPT 105 | cd $OPENWRT_PATH 106 | wget -O feeds/packages/net/smartdns/Makefile https://raw.githubusercontent.com/immortalwrt/packages/master/net/smartdns/Makefile 107 | $GITHUB_WORKSPACE/$DIY_SCRIPT 108 | 109 | - name: Download DL Package(下载DL软件包) 110 | run: | 111 | cat $CONFIG_FILE $GENERAL_CONFIG_FILE > $OPENWRT_PATH/.config 112 | cd $OPENWRT_PATH 113 | # 修改配置文件 114 | sed -i '/CONFIG_PACKAGE_sqm-scripts-nss=y/d' .config 115 | sed -i '/CONFIG_PACKAGE_luci-app-cpufreq=y/d' .config 116 | sed -i "/uci.set('dhcp', section_id, 'leasetime', '12h');/a\ uci.set('dhcp', section_id, 'dhcpv4', 'server');" \ 117 | feeds/luci/modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js 118 | make defconfig 119 | make download -j$(nproc) 120 | 121 | - name: Compile Firmware(开始编译固件) 122 | id: compile 123 | run: | 124 | cd $OPENWRT_PATH 125 | echo -e "$(nproc) thread compile" 126 | make -j$(nproc) || make -j1 || make -j1 V=s 127 | echo "status=success" >> $GITHUB_OUTPUT 128 | echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 129 | echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV 130 | 131 | - name: Check Space Usage(检查空间使用情况) 132 | if: (!cancelled()) 133 | run: df -hT 134 | 135 | - name: Upload Bin Directory(上传固件) 136 | if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' 137 | uses: actions/upload-artifact@main 138 | with: 139 | name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 140 | path: ${{ env.OPENWRT_PATH }}/bin 141 | 142 | - name: Organize Files(整理文件) 143 | if: steps.compile.outputs.status == 'success' 144 | run: | 145 | cd $OPENWRT_PATH/bin/targets/*/* 146 | cp $OPENWRT_PATH/.config RAX3000M.config 147 | mv config.buildinfo RAX3000M.config.buildinfo 148 | mv -f $OPENWRT_PATH/bin/packages/*/*/*.ipk packages 149 | tar -zcf RAX3000M.Packages.tar.gz packages 150 | rm -rf packages feeds.buildinfo version.buildinfo sha256sums profiles.json 151 | echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV 152 | 153 | - name: Upload Firmware To Artifact(将固件上传到Artifact) 154 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true' 155 | uses: actions/upload-artifact@main 156 | with: 157 | name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 158 | path: ${{ env.FIRMWARE_PATH }} 159 | 160 | - name: Upload Firmware To Release(发布固件) 161 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true' 162 | uses: ncipollo/release-action@main 163 | with: 164 | name: ${{ env.DATE }} for ${{ env.FIRMWARE_TAG }} 165 | allowUpdates: true 166 | tag: ${{ env.FIRMWARE_TAG }} 167 | token: ${{ secrets.GITHUB_TOKEN }} 168 | artifacts: ${{ env.FIRMWARE_PATH }}/* 169 | body: | 170 | **This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}** 171 | ### 📒 固件信息 172 | - 这是CMCC RAX3000M NAND version (custom U-Boot layout)&K2P的5.15内核固件,默认主题为Aurora;该固件在ImmortalWrt的基础上,添加了额外的软件包ddns、ttyd、upnp、wolplus、samba4、vlmcsd、aria2、autoreboot、uhttpd、wifischedule、frps、frpc、diskman、hd-idle、banip、acme、arpbind、usb-printer、passwall、fileassistant、oaf、sqm、wireguard、watchcat、wechatpush、3cat、smartdns(**K2P**仅包含ttyd、autoreboot、uhttpd、wifischedule),并添加了若干工具,具体详见对应机型的config(RAX3000M包含General.config)。 173 | - 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件 174 | - ⚽ 固件源码: ${{ env.REPO_URL }} 175 | - 💝 源码分支: ${{ env.REPO_BRANCH }} 176 | - 🌐 默认地址: **192.168.2.1** 177 | - 🔑 默认密码: none 178 | ### 🧊 固件版本 179 | - 固件内核版本:**${{ env.VERSION_KERNEL }}** 180 | - 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录 181 | - ${{ env.VERSION_INFO }} 182 | 183 | - name: Delete Old Cache(删除旧缓存) 184 | run: | 185 | # 获取缓存列表并删除 186 | gh cache list --key ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}- --json key --jq '.[] | .key' | while read -r key; do 187 | gh cache delete "$key" 188 | done 189 | # 输出缓存状态 190 | echo "========cache status========" 191 | echo "ccache: $(du -sh $OPENWRT_PATH/.ccache | cut -f 1)" 192 | echo "staging: $(du -sh $OPENWRT_PATH/staging_dir | cut -f 1)" 193 | env: 194 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} --------------------------------------------------------------------------------