Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
294 changes: 176 additions & 118 deletions .github/workflows/build-padavan.yml
Original file line number Diff line number Diff line change
@@ -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