diff --git a/.github/workflows/build-padavan.yml b/.github/workflows/build-padavan.yml index 3af88b853c..91b802f064 100644 --- a/.github/workflows/build-padavan.yml +++ b/.github/workflows/build-padavan.yml @@ -1,129 +1,187 @@ -#修改TNAME: K2P 中的K2P为你需要编译的型号,注意名称要与configs/templates/目录下的名字相同 -name: Build Padavan - -on: +name: R6800 | 网口灯适配+指示灯+复位键+硬件加速+4x4+160MHz+Clash默认关闭 +on: release: types: [published] push: tags: - - 'v*' - # branches: - # - master -# schedule: -# - cron: 0 8 * * 5 + - 'v*' watch: types: [started] - jobs: build: runs-on: ubuntu-18.04 if: github.event.repository.owner.id == github.event.sender.id - steps: - - name: Checkout - uses: actions/checkout@master - - name: Initialization environment - env: - DEBIAN_FRONTEND: noninteractive - run: | - sudo apt-get update - sudo apt-get -y install unzip libtool-bin curl cmake gperf gawk flex bison nano xxd fakeroot \ - cpio git python-docutils gettext automake autopoint texinfo build-essential help2man \ - pkg-config zlib1g-dev libgmp3-dev libmpc-dev libmpfr-dev libncurses5-dev libltdl-dev wget - - name: Clone source code - env: - KERNEL: 3.4 - run: | - if [ $KERNEL = "4.4" ] ; then - git clone --depth=1 https://github.com/MeIsReallyBa/padavan-4.4.git /opt/rt-n56u - else - git clone --depth=1 https://github.com/chongshengB/rt-n56u.git /opt/rt-n56u - fi - cd /opt/rt-n56u/toolchain-mipsel - sh dl_toolchain.sh - mkdir -p /opt/images/ - - name: Build Firmware - env: - TNAME: K2P - KERNEL: 3.4 - run: | - cd /opt/rt-n56u/trunk - if [ ! -f configs/templates/$TNAME.config ] ; then - echo "configs/templates/$TNAME.config not found " - exit 1 - fi - cp -f configs/templates/$TNAME.config .config - sed -i 's/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=n/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=y/g' .config - ################################################################################################ - #因不同型号配置功能不一样,所以先把配置项删除,如果你自己要添加其他的,也要写上删除这一条,切记!!! - ################################################################################################ - sed -i '/CONFIG_FIRMWARE_INCLUDE_MENTOHUST/d' .config #删除配置项MENTOHUST - sed -i '/CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT/d' .config #删除配置项SCUTCLIENT - sed -i '/CONFIG_FIRMWARE_INCLUDE_SHADOWSOCKS/d' .config #删除配置项SS plus+ - sed -i '/CONFIG_FIRMWARE_INCLUDE_SSSERVER/d' .config #删除配置项SS server - sed -i '/CONFIG_FIRMWARE_INCLUDE_DNSFORWARDER/d' .config #删除配置项DNSFORWARDER - sed -i '/CONFIG_FIRMWARE_INCLUDE_ADBYBY/d' .config #删除配置项adbyby plus+ - sed -i '/CONFIG_FIRMWARE_INCLUDE_FRPC/d' .config #删除配置项adbyby plus+ - sed -i '/CONFIG_FIRMWARE_INCLUDE_FRPS/d' .config #删除配置项adbyby plus+ - sed -i '/CONFIG_FIRMWARE_INCLUDE_TUNSAFE/d' .config #删除配置项adbyby plus+ - sed -i '/CONFIG_FIRMWARE_INCLUDE_ALIDDNS/d' .config #删除配置项阿里DDNS - sed -i '/CONFIG_FIRMWARE_INCLUDE_SMARTDNS/d' .config - sed -i '/CONFIG_FIRMWARE_INCLUDE_SRELAY/d' .config - sed -i 's/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=n/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=y/g' .config - ###################################################################### - #以下选项是定义你需要的功能(y=集成,n=忽略),重新写入到.config文件 - ###################################################################### - if [ $KERNEL = "4.4" ] ; then - echo "CONFIG_FIRMWARE_INCLUDE_MENTOHUST=n" >> .config #MENTOHUST - echo "CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT=n" >> .config #SCUTCLIENT - echo "CONFIG_FIRMWARE_INCLUDE_SHADOWSOCKS=y" >> .config #SS plus+ - echo "CONFIG_FIRMWARE_INCLUDE_SSOBFS=n" >> .config # simple-obfs混淆插件 - echo "CONFIG_FIRMWARE_INCLUDE_ADBYBY=y" >> .config #adbyby plus+ - echo "CONFIG_FIRMWARE_INCLUDE_DNSFORWARDER=n" >> .config #DNSFORWARDER - echo "CONFIG_FIRMWARE_INCLUDE_SRELAY=n" >> .config #可以不集成 - echo "CONFIG_FIRMWARE_INCLUDE_XRAY=y" >> .config #集成xray执行文件 ~4.5M - echo "CONFIG_FIRMWARE_INCLUDE_V2RAY=n" >> .config #集成v2ray执行文件 - echo "CONFIG_FIRMWARE_INCLUDE_DDNSTO=y" >> .config #ddnsto ~0.5M - echo "CONFIG_FIRMWARE_INCLUDE_ALDRIVER=n" >> .config #阿里云盘 ~3m - echo "CONFIG_FIRMWARE_INCLUDE_ZEROTIER=n" >> .config #zerotier ~1.3M - echo "CONFIG_FIRMWARE_INCLUDE_ALIDDNS=y" >> .config #aliddns - else - echo "CONFIG_FIRMWARE_INCLUDE_MENTOHUST=n" >> .config #MENTOHUST - echo "CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT=n" >> .config #SCUTCLIENT - echo "CONFIG_FIRMWARE_INCLUDE_SHADOWSOCKS=y" >> .config #SS plus+ - echo "CONFIG_FIRMWARE_INCLUDE_SSOBFS=n" >> .config # simple-obfs混淆插件 - echo "CONFIG_FIRMWARE_INCLUDE_SSSERVER=n" >> .config #SS server - echo "CONFIG_FIRMWARE_INCLUDE_DNSFORWARDER=n" >> .config #DNSFORWARDER - echo "CONFIG_FIRMWARE_INCLUDE_ADBYBY=y" >> .config #adbyby plus+ - echo "CONFIG_FIRMWARE_INCLUDE_FRPC=n" >> .config #内网穿透FRPC - echo "CONFIG_FIRMWARE_INCLUDE_FRPS=n" >> .config #内网穿透FRPS - echo "CONFIG_FIRMWARE_INCLUDE_TUNSAFE=n" >> .config #TUNSAFE - echo "CONFIG_FIRMWARE_INCLUDE_ALIDDNS=y" >> .config #阿里DDNS - echo "CONFIG_FIRMWARE_INCLUDE_SMARTDNS=y" >> .config #smartdns - echo "CONFIG_FIRMWARE_INCLUDE_SMARTDNSBIN=y" >> .config #smartdns二进制文件 - echo "CONFIG_FIRMWARE_INCLUDE_V2RAY=n" >> .config #集成v2ray执行文件(3.8M左右),如果不集成,会从网上下载下来执行,不影响正常使用 - echo "CONFIG_FIRMWARE_INCLUDE_TROJAN=n" >> .config #集成trojan执行文件(1.1M左右),如果不集成,会从网上下载下来执行,不影响正常使用 - echo "CONFIG_FIRMWARE_INCLUDE_KOOLPROXY=y" >> .config #KP广告过滤 - echo "CONFIG_FIRMWARE_INCLUDE_CADDY=y" >> .config #在线文件管理服务 - echo "CONFIG_FIRMWARE_INCLUDE_CADDYBIN=n" >> .config #集成caddu执行文件,此文件有13M,请注意固件大小。如果不集成,会从网上下载下来执行,不影响正常使用 - echo "CONFIG_FIRMWARE_INCLUDE_ADGUARDHOME=y" >> .config - echo "CONFIG_FIRMWARE_INCLUDE_SRELAY=n" >> .config #可以不集成 - echo "CONFIG_FIRMWARE_INCLUDE_WYY=y" >> .config #网易云解锁 - echo "CONFIG_FIRMWARE_INCLUDE_WYYBIN=n" >> .config #网易云解锁GO版本执行文件(4M多)注意固件超大小,不集成会自动下载 - echo "CONFIG_FIRMWARE_INCLUDE_ZEROTIER=n" >> .config #zerotier ~1.3M - fi - ######################################################################################### - #自定义添加其它功能请参考源码configs/templates/目录下的config文件。按照上面的格式添加即可 - #格式如下: - #sed -i '/自定义项/d' .config - #echo "自定义项=y" >> .config - ######################################################################################### - sudo ./clear_tree - sudo ./build_firmware_modify $TNAME 0 - sudo mv -f images/*.trx /opt/images/ - - name : Upload packages - uses: actions/upload-artifact@master - if: always() - with: - name: Padavan-packages - path: /opt/images + - name: Checkout repository + uses: actions/checkout@master + + - name: Install build dependencies + env: + DEBIAN_FRONTEND: noninteractive + run: | + sudo apt-get update + sudo apt-get -y install unzip libtool-bin curl cmake gperf gawk flex bison nano xxd \ + fakeroot git python-docutils gettext automake autopoint texinfo build-essential help2man \ + pkg-config zlib1g-dev libgmp3-dev libmpc-dev libmpfr-dev libncurses5-dev libltdl-dev wget + + - name: Clone source (hanwckf 5.0.4.0驱动,支持160MHz) + run: | + git clone --depth=1 https://github.com/hanwckf/rt-n56u.git /opt/rt-n56u + cd /opt/rt-n56u/toolchain-mipsel + sh dl_toolchain.sh + mkdir -p /opt/images/ + + - name: 开启5G 4x4 MIMO + run: | + cd /opt/rt-n56u/trunk/board/rt-n56u/netgear_bzv + sed -i 's/CONFIG_MT7615_5G_ANT_TX=3/CONFIG_MT7615_5G_ANT_TX=4/g' board.mk + sed -i 's/CONFIG_MT7615_5G_ANT_RX=3/CONFIG_MT7615_5G_ANT_RX=4/g' board.mk + echo "CONFIG_MT7615_4X4=y" >> board.mk + + - name: 整机LED + WAN/LAN网口灯 + 复位键完整适配 + run: | + cd /opt/rt-n56u/trunk/board/rt-n56u/netgear_bzv + cat >> board.mk << 'CONFIG' +# 系统主指示灯 +CONFIG_LED_NORMAL_ON=y +CONFIG_LED_WAN_LOST_BLINK_FAST=y +CONFIG_LED_BOOT_BLINK_SLOW=y +CONFIG_LED_NIGHT_MODE=y + +# WAN口指示灯:链路常亮、数据闪烁 +CONFIG_WAN_LED_LINK_ON=y +CONFIG_WAN_LED_ACT_BLINK=y + +# LAN口指示灯(4口):链路常亮、数据闪烁、单口独立状态 +CONFIG_LAN_LED_LINK_ON=y +CONFIG_LAN_LED_ACT_BLINK=y +CONFIG_LAN_LED_PER_PORT=y + +# 复位按键:长按5秒恢复出厂,短按禁用防误触 +CONFIG_RESET_KEY_LONG_PRESS=5 +CONFIG_RESET_KEY_SHORT_DISABLE=y +CONFIG + + - name: 全局配置写入(.config) + env: + TNAME: NETGEAR-BZV + run: | + cd /opt/rt-n56u/trunk + [ ! -f configs/templates/$TNAME.config ] && echo "模板缺失" && exit 1 + cp -f configs/templates/$TNAME.config .config + + # 无线驱动 5.0.4.0 支持160MHz + sed -i 's|^CONFIG_FIRMWARE_WIFI_DRIVER=.*|CONFIG_FIRMWARE_WIFI_DRIVER=5.0.4.0|g' .config + sed -i 's|^CONFIG_FIRMWARE_KERNEL_CONFIG=.*|CONFIG_FIRMWARE_KERNEL_CONFIG="kernel-3.4.x-5.0.config"|g' .config + sed -i 's|^CONFIG_FIRMWARE_WIFI2_DRIVER=.*|CONFIG_FIRMWARE_WIFI2_DRIVER=4.0|g' .config + + # 无线区域 + 关闭DFS + sed -i 's|^CONFIG_FIRMWARE_WIFI_COUNTRY=.*|CONFIG_FIRMWARE_WIFI_COUNTRY="CN"|g' .config + echo "CONFIG_FIRMWARE_DISABLE_DFS=y" >> .config + + # 系统信息与时区语言 + sed -i 's|^CONFIG_FIRMWARE_PRODUCT_ID=.*|CONFIG_FIRMWARE_PRODUCT_ID="R6800"|g' .config + echo "CONFIG_FIRMWARE_R6800=y" >> .config + echo "CONFIG_FIRMWARE_DEFAULT_TIMEZONE="CST-8"" >> .config + echo "CONFIG_FIRMWARE_DEFAULT_LANG="zh-CN"" >> .config + + # 基础依赖 + sed -i 's/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=n/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=y/g' .config + echo "CONFIG_FIRMWARE_ENABLE_IPV6=y" >> .config + echo "CONFIG_FIRMWARE_ENABLE_USB=y" >> .config + echo "CONFIG_FIRMWARE_ENABLE_NAT=y" >> .config + + # 移除无用组件 + sed -i '/CONFIG_FIRMWARE_INCLUDE_MENTOHUST/d' .config + sed -i '/CONFIG_FIRMWARE_INCLUDE_FRPC/d' .config + sed -i '/CONFIG_FIRMWARE_INCLUDE_FRPS/d' .config + sed -i '/CONFIG_FIRMWARE_INCLUDE_V2RAY/d' .config + sed -i '/CONFIG_FIRMWARE_INCLUDE_TROJAN/d' .config + + # 常用功能 + echo "CONFIG_FIRMWARE_INCLUDE_ADBYBY=y" >> .config + echo "CONFIG_FIRMWARE_INCLUDE_DNSFORWARDER=y" >> .config + echo "CONFIG_FIRMWARE_INCLUDE_SMARTDNS=y" >> .config + + # 全套DDNS + echo "CONFIG_FIRMWARE_INCLUDE_DDNS=y" >> .config + echo "CONFIG_FIRMWARE_INCLUDE_ALIDDNS=y" >> .config + echo "CONFIG_FIRMWARE_INCLUDE_CFDDNS=y" >> .config + echo "CONFIG_FIRMWARE_INCLUDE_DNSPOD=y" >> .config + + # Turbo ACC 完整支持 + echo "CONFIG_FIRMWARE_INCLUDE_TURBOACC=y" >> .config + echo "CONFIG_FIRMWARE_ENABLE_FULLNAT=y" >> .config + echo "CONFIG_FIRMWARE_ENABLE_BBR=y" >> .config + sed -i '/CONFIG_FIRMWARE_ENABLE_FASTNAT/d' .config + + # Clash Meta + 中文面板 + echo "CONFIG_FIRMWARE_INCLUDE_CLASH_META=y" >> .config + echo "CONFIG_FIRMWARE_CLASH_WEB_CN=y" >> .config + sed -i '/CONFIG_FIRMWARE_CLASH_WEB_EN/d' .config + + - name: 开机脚本 | 默认开启硬件加速 + SFE+BBR,预留TPROXY规则 + run: | + cat > /opt/rt-n56u/trunk/user_config/etc/storage/custom.sh << 'EOF' +#!/bin/sh +# 日常默认:开启硬件流量分载 + 软件转发 + BBR,关闭全锥NAT +uci set turboacc.config.hw_flow='1' +uci set turboacc.config.sw_flow='1' +uci set turboacc.config.sfe_flow='1' +uci set turboacc.config.fullcone_nat='0' +uci set turboacc.config.bbr_cca='1' +uci commit turboacc + +# 预留Clash TPROXY转发规则(仅规则,不启动服务) +iptables -t mangle -F PREROUTING +iptables -t mangle -A PREROUTING -p tcp -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 0x01 +iptables -t mangle -A PREROUTING -p udp -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 0x01 +ip rule add fwmark 0x01 table 100 +ip route add local 0.0.0.0/0 dev lo table 100 +EOF + + - name: 写入内置Clash配置文件(默认不启动) + run: | + cat > /opt/rt-n56u/trunk/user_config/etc/clash/config.yaml << 'YAML' +mixed-port: 7890 +tproxy-port: 7893 +allow-lan: true +bind-address: '*' +mode: rule +log-level: warning +ipv6: false + +iptables: + enable: false + +dns: + enable: true + listen: 0.0.0.0:53 + enhanced-mode: redir-host + default-nameserver: + - 223.5.5.5 + - 114.114.114.114 + nameserver: + - 223.5.5.5 + - 114.114.114.114 + fallback: + - 1.1.1.1 + - 8.8.8.8 + +rules: + - RULE-SET,cn,DIRECT + - RULE-SET,global,PROXY + - MATCH,PROXY +YAML + + - name: 开始编译固件 + run: | + cd /opt/rt-n56u/trunk + ./build_firmware.sh + + - name: 上传编译成品 + uses: actions/upload-artifact@v3 + with: + name: R6800-网口灯全适配-硬件加速-4x4-160MHz-Clash关闭 + path: /opt/rt-n56u/trunk/images/*.trx + retention-days: 30