├── .github
└── workflows
│ ├── friendlywrt.yml
│ ├── friendlywrt_with_features.yml
│ ├── friendlywrt_with_flowoffload.yml
│ ├── lean.yml_
│ └── lienol_on_lean.yml_
├── FriendlyWRT
├── CHANGELOG.md
├── README.md
├── repo_used_path.env
└── status.env
├── FriendlyWRTwPatches
├── CHANGELOG.md
└── status.env
├── FriendlyWRTwithFlowOffload
├── CHANGELOG.md
├── minimal_offload.seed
├── repo_used_path.env
└── status.env
├── FwF
├── CHANGELOG.md
├── README.md
├── repo_used_path.env
└── status.env
├── LOL
├── CHANGELOG.md
├── README.md
├── rebase_on_lienol.sh
├── repo_used_path.env
└── status.env
├── Lean
├── .config.override
├── CHANGELOG.md
├── README.md
├── enable_autocore.diff
├── lean_patches.sh
├── patch_kernel_5.4.sh
├── rebase_on_lean.sh
├── repo_used_path.env
└── status.env
├── README.md
├── add_fullconenat.diff
├── add_packages_to_lean.sh
├── changelog.sh
├── features.seed
├── friendlywrt_source.sh
├── images
├── r2s_dhcp_nat.png
├── r2s_fastcom.png
├── r2s_fastcom_nat.png
└── r2s_pppoe_nat.png
├── init_env.sh
├── luci-app-r2sflasher
├── Makefile
├── README.md
├── images
│ └── luci-app-r2sflasher.png
├── luasrc
│ ├── controller
│ │ └── r2sflasher.lua
│ ├── model
│ │ └── cbi
│ │ │ └── r2sflasher
│ │ │ ├── flash.lua
│ │ │ └── log.lua
│ └── view
│ │ └── r2sflasher
│ │ ├── log.htm
│ │ └── rom.htm
├── po
│ └── zh-cn
│ │ └── r2sflasher.po
└── root
│ └── usr
│ └── bin
│ └── rom_flash
├── minimal_config.seed
├── name_and_urls.env
├── scripts
├── check_net.sh
├── check_wan4.sh
├── fw_update.sh
├── rom_prepare.sh
└── temp.chart.sh
└── set_repo_hash.sh
/.github/workflows/friendlywrt.yml:
--------------------------------------------------------------------------------
1 | name: friendlywrt
2 |
3 |
4 | on:
5 | repository_dispatch:
6 | push:
7 | branches:
8 | - master
9 | paths:
10 | - '.github/workflows/friendlywrt.yml'
11 | - 'minimal_config.seed'
12 | - '*.sh'
13 | - 'luci-app-r2sflasher'
14 |
15 | jobs:
16 | build:
17 | runs-on: ubuntu-latest
18 | env:
19 | GITHUB_TOKEN: ${{ secrets.sec_token }}
20 | sec_token: ${{ secrets.sec_token }}
21 |
22 | steps:
23 | - name: Setup timezone
24 | uses: zcong1993/setup-timezone@master
25 | with:
26 | timezone: Asia/Shanghai
27 |
28 | - name: Checkout
29 | uses: actions/checkout@master
30 | with:
31 | ref: master
32 | fetch-depth: 0
33 | token: ${{ env.sec_token }}
34 |
35 | - name: Init Env
36 | env:
37 | DEBIAN_FRONTEND: noninteractive
38 | run: |
39 | . init_env.sh
40 |
41 | - name: Repo Hash
42 | run: |
43 | ./set_repo_hash.sh Builder
44 |
45 | - name: Friendlywrt Source
46 | run: |
47 | . friendlywrt_source.sh
48 |
49 | - name: Change Feeds to Lean
50 | run: |
51 | cd friendlywrt-rk3328
52 | git clone https://github.com/coolsnowwolf/lede
53 | cd lede
54 | ../../set_repo_hash.sh Lean
55 | cd ../friendlywrt
56 | cp -r ../lede/package/lean package/
57 | rm -rf package/network/config/firewall
58 | cp -r ../lede/package/network/config/firewall package/network/config/
59 | sed -i 's/^src-git luci.*/src-git luci https:\/\/github.com\/coolsnowwolf\/luci/' feeds.conf.default
60 | sed -i 's/^src-git packages.*/src-git packages https:\/\/github.com\/coolsnowwolf\/packages/' feeds.conf.default
61 | ../../set_repo_hash.sh LeanLuci https://github.com/coolsnowwolf/luci.git
62 | ../../set_repo_hash.sh LeanPackage https://github.com/coolsnowwolf/packages.git
63 |
64 | - name: Add Packages to Lean
65 | run: |
66 | . add_packages_to_lean.sh
67 |
68 | - name: Install Openwrt Libs
69 | run: |
70 | git config --global user.email "action@github.com" && git config --global user.name "GitHub Action"
71 | cd friendlywrt-rk3328
72 | git clone https://github.com/openwrt/openwrt
73 | rm -rf friendlywrt/package/libs
74 | cp -r openwrt/package/libs friendlywrt/package/
75 |
76 | - name: Use Chuck's Kernel
77 | run: |
78 | cd friendlywrt-rk3328
79 | rm -rf kernel
80 | git clone --depth=1 https://github.com/fanck0605/friendlywrt-kernel.git kernel
81 | cd kernel
82 | ../../set_repo_hash.sh Kernel
83 | cd ../openwrt
84 | ../../set_repo_hash.sh OpenWrt
85 | rm -f target/linux/generic/pending-5.4/834-ledtrig-libata.patch
86 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/backport-5.4
87 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/pending-5.4
88 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/hack-5.4
89 | ./scripts/patch-kernel.sh ../kernel target/linux/octeontx/patches-5.4
90 | cp -a ./target/linux/generic/files/* ../kernel/
91 | cd ../kernel
92 | wget -O net/netfilter/xt_FULLCONENAT.c https://raw.githubusercontent.com/Chion82/netfilter-full-cone-nat/master/xt_FULLCONENAT.c
93 | wget -O ../fullcone_nat.patch https://github.com/fanck0605/nanopi-r2s/raw/openwrt-lienol/patches/001-kernel-add-full_cone_nat.patch
94 | git apply ../fullcone_nat.patch
95 | # cd ..
96 | # curl -s https://api.github.com/repos/fanck0605/nanopi-r2s/releases/latest | jq ".zipball_url" | cut -d '"' -f 2 | wget -O fanck.zip -qi -
97 | # kernelconfig=$(unzip -Z -1 fanck.zip | grep "nanopi-r2_linux_defconfig")
98 | # if [ "$kernelconfig" == "" ]; then
99 | # echo "kernelconfig not fount"
100 | # exit 1
101 | # fi
102 | # unzip fanck.zip $kernelconfig
103 | # mv $kernelconfig kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
104 | # rm fanck.zip
105 |
106 | - name: Change Log
107 | id: changelog
108 | run: |
109 | git config --global user.email "action@github.com" && git config --global user.name "GitHub Action"
110 | ./changelog.sh FriendlyWRT
111 |
112 | - name: Update Feeds
113 | if: steps.changelog.outputs.changelog != ''
114 | run: |
115 | cd friendlywrt-rk3328/friendlywrt
116 | ./scripts/feeds update -a
117 | ./scripts/feeds install -a
118 |
119 | - name: Install Mods
120 | if: steps.changelog.outputs.changelog != ''
121 | run: |
122 | cd friendlywrt-rk3328
123 | sed -i '/Load Average/i\\t\t
<%:CPU Temperature%> | <%=luci.sys.exec("cut -c1-2 /sys/class/thermal/thermal_zone0/temp")%> ℃ |
' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
124 | sed -i 's/pcdata(boardinfo.system or "?")/"ARMv8"/' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
125 | sed -i 's/<%=luci.sys.exec("cat \/etc\/bench.log") or " "%>//' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
126 | sed -i "/redirect_https/d" friendlywrt/package/network/services/uhttpd/files/uhttpd.config
127 | sed -i '/luciversion/a \/ ${{ steps.changelog.outputs.buildtag }} by scw' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
128 | sed -i '/firewall\.user/d' friendlywrt/package/lean/default-settings/files/zzz-default-settings
129 | cp ../scripts/fw_update.sh friendlywrt/package/base-files/files/usr/bin/fw_update
130 | cp ../scripts/rom_prepare.sh friendlywrt/package/base-files/files/usr/bin/rom_prepare
131 | cp ../scripts/check_net.sh friendlywrt/package/base-files/files/usr/bin/check_net
132 | echo "/usr/bin/check_net" >> friendlywrt/package/base-files/files/root/setup.sh
133 |
134 | - name: Add Temperature to Netdata
135 | if: steps.changelog.outputs.changelog != ''
136 | run: |
137 | cd friendlywrt-rk3328
138 | mkdir -p friendlywrt/package/base-files/files/usr/lib/netdata/charts.d
139 | cp ../scripts/temp.chart.sh friendlywrt/package/base-files/files/usr/lib/netdata/charts.d/
140 | echo "sed -i 's/charts.d = no/charts.d = yes/' /etc/netdata/netdata.conf" >> friendlywrt/package/base-files/files/root/setup.sh
141 | echo "cp /usr/lib/netdata/conf.d/charts.d.conf /etc/netdata/" >> friendlywrt/package/base-files/files/root/setup.sh
142 | echo "echo 'temp=yes' >> /etc/netdata/charts.d.conf" >> friendlywrt/package/base-files/files/root/setup.sh
143 | echo "/etc/init.d/netdata restart" >> friendlywrt/package/base-files/files/root/setup.sh
144 |
145 | - name: Add OPKG Feeds
146 | if: steps.changelog.outputs.changelog != ''
147 | run: |
148 | cd friendlywrt-rk3328
149 | git clone -b src --depth 1 https://github.com/songchenwen/nanopi-r2s-opkg-feeds.git
150 | mkdir -p friendlywrt/package/base-files/files/etc/opkg/keys/
151 | cp nanopi-r2s-opkg-feeds/keys/* friendlywrt/package/base-files/files/etc/opkg/keys/
152 | rm -rf nanopi-r2s-opkg-feeds
153 | echo "grep -qF 'songchenwen.com' /etc/opkg/customfeeds.conf || echo 'src/gz songchenwen https://nanopi-r2s-opkg-feeds.songchenwen.com/packages' >> /etc/opkg/customfeeds.conf" >> friendlywrt/package/base-files/files/root/setup.sh
154 |
155 | - name: Download Clash Binary
156 | if: steps.changelog.outputs.changelog != ''
157 | run: |
158 | CLASH_VERSION=v1.0.0
159 | mkdir -p friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
160 | cd friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
161 | wget -O clash.gz https://github.com/Dreamacro/clash/releases/download/$CLASH_VERSION/clash-linux-armv8-$CLASH_VERSION.gz
162 | gunzip clash.gz
163 | chmod +x clash
164 | cd ../..
165 | mkdir -p etc/clash
166 | cd etc/clash
167 | wget -O Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb
168 |
169 | - name: Install UPX
170 | if: steps.changelog.outputs.changelog != ''
171 | run: |
172 | mkdir -p friendlywrt-rk3328/friendlywrt/staging_dir/host/bin/
173 | ln -s /usr/bin/upx-ucl friendlywrt-rk3328/friendlywrt/staging_dir/host/bin/upx
174 |
175 | - name: Update Target.mk
176 | if: steps.changelog.outputs.changelog != ''
177 | run: |
178 | cd friendlywrt-rk3328/friendlywrt/include
179 | sed -i 's/dnsmasq /dnsmasq-full default-settings luci /' target.mk
180 |
181 | - name: Build Config
182 | if: steps.changelog.outputs.changelog != ''
183 | run: |
184 | cd friendlywrt-rk3328
185 | cat configs/config_rk3328 | grep "TARGET" > ../rk3328.config
186 | cat ../minimal_config.seed >> ../rk3328.config
187 | cat ../rk3328.config > configs/config_rk3328
188 | cat configs/config_rk3328
189 |
190 | - name: Clean src
191 | if: steps.changelog.outputs.changelog != ''
192 | run: |
193 | cd friendlywrt-rk3328
194 | rm -rf lede
195 | rm -rf openwrt
196 |
197 | - name: Build Friendlywrt
198 | if: steps.changelog.outputs.changelog != ''
199 | run: |
200 | cd friendlywrt-rk3328
201 | ./build.sh nanopi_r2s.mk
202 |
203 | # from https://github.com/fanck0605/nanopi_r2s/blob/lean/.github/workflows/main.yml#L87
204 | - name: Fix FriendlyWrt rootfs owner and group
205 | if: steps.changelog.outputs.changelog != ''
206 | run: |
207 | sudo df -lh
208 | lodev=$(sudo losetup -f)
209 | echo "found unused loop dev $lodev"
210 | sudo losetup -P $lodev friendlywrt-rk3328/out/*.img
211 | sudo rm -rf /mnt/friendlywrt-tmp
212 | sudo mkdir -p /mnt/friendlywrt-tmp
213 | sudo mount ${lodev}p1 /mnt/friendlywrt-tmp
214 | sudo chown -R root:root /mnt/friendlywrt-tmp
215 | sudo umount /mnt/friendlywrt-tmp
216 | sudo losetup -d $lodev
217 |
218 | - name: Zip Files
219 | if: steps.changelog.outputs.changelog != ''
220 | run: |
221 | gzip friendlywrt-rk3328/out/*.img
222 |
223 | - name: Assemble Artifact
224 | if: steps.changelog.outputs.changelog != ''
225 | id: assemble_artifact
226 | run: |
227 | rm -rf ./artifact/
228 | mkdir -p ./artifact/
229 | cd friendlywrt-rk3328/friendlywrt;./scripts/diffconfig.sh > ../../artifact/config.seed;cd ../../
230 | mv friendlywrt-rk3328/out/*img* ./artifact/
231 | cp friendlywrt-rk3328/friendlywrt/.config ./artifact/full.config
232 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/scw/luci-app-passwall*.ipk ./artifact/
233 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-r2sflasher*.ipk ./artifact/
234 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-filetransfer*.ipk ./artifact/
235 | zip -r artifact.zip -j artifact artifact/*
236 | release_tag=${{ steps.changelog.outputs.buildtag }}
237 | echo "##[set-output name=release_tag;]$release_tag"
238 |
239 | - name: Create Release
240 | if: steps.changelog.outputs.changelog != ''
241 | id: create_release
242 | uses: actions/create-release@v1
243 | with:
244 | tag_name: ${{ steps.assemble_artifact.outputs.release_tag }}
245 | release_name: ${{ steps.assemble_artifact.outputs.release_tag }}
246 | body: ${{ steps.changelog.outputs.changelog }}
247 | draft: false
248 | prerelease: false
249 |
250 | - name: Upload Release Asset
251 | if: steps.changelog.outputs.changelog != ''
252 | id: upload-release-asset
253 | uses: actions/upload-release-asset@v1
254 | with:
255 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
256 | asset_path: ./artifact.zip
257 | asset_name: ${{ steps.assemble_artifact.outputs.release_tag }}-ROM.zip
258 | asset_content_type: application/zip
259 |
260 | - name: Push Change Log
261 | if: steps.changelog.outputs.changelog != ''
262 | run: |
263 | git pull --rebase --autostash
264 | git push
265 |
--------------------------------------------------------------------------------
/.github/workflows/friendlywrt_with_features.yml:
--------------------------------------------------------------------------------
1 | name: FwF
2 |
3 |
4 | on:
5 | repository_dispatch:
6 | push:
7 | branches:
8 | - master
9 | paths:
10 | - '.github/workflows/friendlywrt_with_features.yml'
11 | - 'features.seed'
12 | - '*.sh'
13 | - 'luci-app-r2sflasher'
14 |
15 | jobs:
16 | build:
17 | runs-on: ubuntu-latest
18 | env:
19 | GITHUB_TOKEN: ${{ secrets.sec_token }}
20 | sec_token: ${{ secrets.sec_token }}
21 |
22 | steps:
23 | - name: Setup timezone
24 | uses: zcong1993/setup-timezone@master
25 | with:
26 | timezone: Asia/Shanghai
27 |
28 | - name: Checkout
29 | uses: actions/checkout@master
30 | with:
31 | ref: master
32 | fetch-depth: 0
33 | token: ${{ env.sec_token }}
34 |
35 | - name: Init Env
36 | env:
37 | DEBIAN_FRONTEND: noninteractive
38 | run: |
39 | . init_env.sh
40 |
41 | - name: Repo Hash
42 | run: |
43 | ./set_repo_hash.sh Builder
44 |
45 | - name: Friendlywrt Source
46 | run: |
47 | . friendlywrt_source.sh
48 |
49 | - name: Change Feeds to Lean
50 | run: |
51 | cd friendlywrt-rk3328
52 | git clone https://github.com/coolsnowwolf/lede
53 | cd lede
54 | ../../set_repo_hash.sh Lean
55 | cd ../friendlywrt
56 | cp -r ../lede/package/lean package/
57 | rm -rf package/network/config/firewall
58 | cp -r ../lede/package/network/config/firewall package/network/config/
59 | sed -i 's/^src-git luci.*/src-git luci https:\/\/github.com\/coolsnowwolf\/luci/' feeds.conf.default
60 | sed -i 's/^src-git packages.*/src-git packages https:\/\/github.com\/coolsnowwolf\/packages/' feeds.conf.default
61 | ../../set_repo_hash.sh LeanLuci https://github.com/coolsnowwolf/luci.git
62 | ../../set_repo_hash.sh LeanPackage https://github.com/coolsnowwolf/packages.git
63 |
64 | - name: Add Packages to Lean
65 | run: |
66 | . add_packages_to_lean.sh
67 |
68 | - name: Add SSRP
69 | run: |
70 | cd friendlywrt-rk3328/friendlywrt/package
71 | git clone https://github.com/fw876/helloworld.git
72 | cd helloworld
73 | ../../../../set_repo_hash.sh SSRP
74 |
75 | - name: Install Openwrt Libs
76 | run: |
77 | git config --global user.email "action@github.com" && git config --global user.name "GitHub Action"
78 | cd friendlywrt-rk3328
79 | git clone https://github.com/openwrt/openwrt
80 | rm -rf friendlywrt/package/libs
81 | cp -r openwrt/package/libs friendlywrt/package/
82 |
83 | - name: Use Chuck's Kernel
84 | run: |
85 | cd friendlywrt-rk3328
86 | rm -rf kernel
87 | git clone --depth=1 https://github.com/fanck0605/friendlywrt-kernel.git kernel
88 | cd kernel
89 | ../../set_repo_hash.sh Kernel
90 | cd ../openwrt
91 | ../../set_repo_hash.sh OpenWrt
92 | rm -f target/linux/generic/pending-5.4/834-ledtrig-libata.patch
93 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/backport-5.4
94 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/pending-5.4
95 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/hack-5.4
96 | ./scripts/patch-kernel.sh ../kernel target/linux/octeontx/patches-5.4
97 | cp -a ./target/linux/generic/files/* ../kernel/
98 | cd ../kernel
99 | wget -O net/netfilter/xt_FULLCONENAT.c https://raw.githubusercontent.com/Chion82/netfilter-full-cone-nat/master/xt_FULLCONENAT.c
100 | wget -O ../fullcone_nat.patch https://github.com/fanck0605/nanopi-r2s/raw/openwrt-lienol/patches/001-kernel-add-full_cone_nat.patch
101 | git apply ../fullcone_nat.patch
102 | # cd ..
103 | # curl -s https://api.github.com/repos/fanck0605/nanopi-r2s/releases/latest | jq ".zipball_url" | cut -d '"' -f 2 | wget -O fanck.zip -qi -
104 | # kernelconfig=$(unzip -Z -1 fanck.zip | grep "nanopi-r2_linux_defconfig")
105 | # if [ "$kernelconfig" == "" ]; then
106 | # echo "kernelconfig not fount"
107 | # exit 1
108 | # fi
109 | # unzip fanck.zip $kernelconfig
110 | # mv $kernelconfig kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
111 | # rm fanck.zip
112 |
113 | - name: Change Log
114 | id: changelog
115 | run: |
116 | git config --global user.email "action@github.com" && git config --global user.name "GitHub Action"
117 | ./changelog.sh FwF
118 |
119 | - name: Update Feeds
120 | if: steps.changelog.outputs.changelog != ''
121 | run: |
122 | cd friendlywrt-rk3328/friendlywrt
123 | ./scripts/feeds update -a
124 | ./scripts/feeds install -a
125 |
126 | - name: Install Mods
127 | if: steps.changelog.outputs.changelog != ''
128 | run: |
129 | cd friendlywrt-rk3328
130 | sed -i '/Load Average/i\\t\t<%:CPU Temperature%> | <%=luci.sys.exec("cut -c1-2 /sys/class/thermal/thermal_zone0/temp")%> ℃ |
' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
131 | sed -i 's/pcdata(boardinfo.system or "?")/"ARMv8"/' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
132 | sed -i 's/<%=luci.sys.exec("cat \/etc\/bench.log") or " "%>//' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
133 | sed -i "/redirect_https/d" friendlywrt/package/network/services/uhttpd/files/uhttpd.config
134 | sed -i '/luciversion/a \/ ${{ steps.changelog.outputs.buildtag }} by scw' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
135 | sed -i '/firewall\.user/d' friendlywrt/package/lean/default-settings/files/zzz-default-settings
136 | cp ../scripts/fw_update.sh friendlywrt/package/base-files/files/usr/bin/fw_update
137 | cp ../scripts/rom_prepare.sh friendlywrt/package/base-files/files/usr/bin/rom_prepare
138 | cp ../scripts/check_net.sh friendlywrt/package/base-files/files/usr/bin/check_net
139 | echo "/usr/bin/check_net" >> friendlywrt/package/base-files/files/root/setup.sh
140 |
141 | - name: Add Temperature to Netdata
142 | if: steps.changelog.outputs.changelog != ''
143 | run: |
144 | cd friendlywrt-rk3328
145 | mkdir -p friendlywrt/package/base-files/files/usr/lib/netdata/charts.d
146 | cp ../scripts/temp.chart.sh friendlywrt/package/base-files/files/usr/lib/netdata/charts.d/
147 | echo "sed -i 's/charts.d = no/charts.d = yes/' /etc/netdata/netdata.conf" >> friendlywrt/package/base-files/files/root/setup.sh
148 | echo "cp /usr/lib/netdata/conf.d/charts.d.conf /etc/netdata/" >> friendlywrt/package/base-files/files/root/setup.sh
149 | echo "echo 'temp=yes' >> /etc/netdata/charts.d.conf" >> friendlywrt/package/base-files/files/root/setup.sh
150 | echo "/etc/init.d/netdata restart" >> friendlywrt/package/base-files/files/root/setup.sh
151 |
152 | - name: Add OPKG Feeds
153 | if: steps.changelog.outputs.changelog != ''
154 | run: |
155 | cd friendlywrt-rk3328
156 | git clone -b src --depth 1 https://github.com/songchenwen/nanopi-r2s-opkg-feeds.git
157 | mkdir -p friendlywrt/package/base-files/files/etc/opkg/keys/
158 | cp nanopi-r2s-opkg-feeds/keys/* friendlywrt/package/base-files/files/etc/opkg/keys/
159 | rm -rf nanopi-r2s-opkg-feeds
160 | echo "grep -qF 'songchenwen.com' /etc/opkg/customfeeds.conf || echo 'src/gz songchenwen https://nanopi-r2s-opkg-feeds.songchenwen.com/packages' >> /etc/opkg/customfeeds.conf" >> friendlywrt/package/base-files/files/root/setup.sh
161 |
162 | # - name: Unlock CPU 1.5Ghz
163 | # run: |
164 | # cd friendlywrt-rk3328/kernel
165 | # wget https://github.com/armbian/build/raw/master/patch/kernel/rockchip64-dev/RK3328-enable-1512mhz-opp.patch
166 | # git apply RK3328-enable-1512mhz-opp.patch
167 |
168 | - name: Download Clash Binary
169 | if: steps.changelog.outputs.changelog != ''
170 | run: |
171 | CLASH_VERSION=v1.0.0
172 | mkdir -p friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
173 | cd friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
174 | wget -O clash.gz https://github.com/Dreamacro/clash/releases/download/$CLASH_VERSION/clash-linux-armv8-$CLASH_VERSION.gz
175 | gunzip clash.gz
176 | chmod +x clash
177 | cd ../..
178 | mkdir -p etc/clash
179 | cd etc/clash
180 | wget -O Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb
181 |
182 | - name: Install UPX
183 | if: steps.changelog.outputs.changelog != ''
184 | run: |
185 | mkdir -p friendlywrt-rk3328/friendlywrt/staging_dir/host/bin/
186 | ln -s /usr/bin/upx-ucl friendlywrt-rk3328/friendlywrt/staging_dir/host/bin/upx
187 |
188 | - name: Update Target.mk
189 | if: steps.changelog.outputs.changelog != ''
190 | run: |
191 | cd friendlywrt-rk3328/friendlywrt/include
192 | sed -i 's/dnsmasq /dnsmasq-full default-settings luci /' target.mk
193 |
194 | - name: Build Config
195 | if: steps.changelog.outputs.changelog != ''
196 | run: |
197 | cd friendlywrt-rk3328
198 | cat configs/config_rk3328 | grep "TARGET" > ../rk3328.config
199 | cat ../features.seed >> ../rk3328.config
200 | cat ../rk3328.config > configs/config_rk3328
201 | cat configs/config_rk3328
202 |
203 | - name: Clean src
204 | if: steps.changelog.outputs.changelog != ''
205 | run: |
206 | cd friendlywrt-rk3328
207 | rm -rf lede
208 | rm -rf openwrt
209 |
210 | - name: Build Friendlywrt
211 | if: steps.changelog.outputs.changelog != ''
212 | run: |
213 | cd friendlywrt-rk3328
214 | ./build.sh nanopi_r2s.mk
215 |
216 | # from https://github.com/fanck0605/nanopi_r2s/blob/lean/.github/workflows/main.yml#L87
217 | - name: Fix FriendlyWrt rootfs owner and group
218 | if: steps.changelog.outputs.changelog != ''
219 | run: |
220 | sudo df -lh
221 | lodev=$(sudo losetup -f)
222 | echo "found unused loop dev $lodev"
223 | sudo losetup -P $lodev friendlywrt-rk3328/out/*.img
224 | sudo rm -rf /mnt/friendlywrt-tmp
225 | sudo mkdir -p /mnt/friendlywrt-tmp
226 | sudo mount ${lodev}p1 /mnt/friendlywrt-tmp
227 | sudo chown -R root:root /mnt/friendlywrt-tmp
228 | sudo umount /mnt/friendlywrt-tmp
229 | sudo losetup -d $lodev
230 |
231 | - name: Zip Files
232 | if: steps.changelog.outputs.changelog != ''
233 | run: |
234 | gzip friendlywrt-rk3328/out/*.img
235 |
236 | - name: Assemble Artifact
237 | if: steps.changelog.outputs.changelog != ''
238 | id: assemble_artifact
239 | run: |
240 | rm -rf ./artifact/
241 | mkdir -p ./artifact/
242 | cd friendlywrt-rk3328/friendlywrt;./scripts/diffconfig.sh > ../../artifact/config.seed;cd ../../
243 | mv friendlywrt-rk3328/out/*img* ./artifact/
244 | cp friendlywrt-rk3328/friendlywrt/.config ./artifact/full.config
245 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/scw/luci-app-passwall*.ipk ./artifact/
246 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-r2sflasher*.ipk ./artifact/
247 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-filetransfer*.ipk ./artifact/
248 | zip -r artifact.zip -j artifact artifact/*
249 | release_tag=${{ steps.changelog.outputs.buildtag }}
250 | echo "##[set-output name=release_tag;]$release_tag"
251 |
252 | - name: Create Release
253 | if: steps.changelog.outputs.changelog != ''
254 | id: create_release
255 | uses: actions/create-release@v1
256 | with:
257 | tag_name: ${{ steps.assemble_artifact.outputs.release_tag }}
258 | release_name: ${{ steps.assemble_artifact.outputs.release_tag }}
259 | body: ${{ steps.changelog.outputs.changelog }}
260 | draft: false
261 | prerelease: false
262 |
263 | - name: Upload Release Asset
264 | if: steps.changelog.outputs.changelog != ''
265 | id: upload-release-asset
266 | uses: actions/upload-release-asset@v1
267 | with:
268 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
269 | asset_path: ./artifact.zip
270 | asset_name: ${{ steps.assemble_artifact.outputs.release_tag }}-ROM.zip
271 | asset_content_type: application/zip
272 |
273 | - name: Push Change Log
274 | if: steps.changelog.outputs.changelog != ''
275 | run: |
276 | git pull --rebase --autostash
277 | git push
278 |
--------------------------------------------------------------------------------
/.github/workflows/friendlywrt_with_flowoffload.yml:
--------------------------------------------------------------------------------
1 | name: friendlywrt_with_flowoffload
2 |
3 |
4 | on:
5 | repository_dispatch:
6 | push:
7 | branches:
8 | - master
9 | paths:
10 | - '.github/workflows/friendlywrt_with_flowoffload.yml'
11 | - 'FriendlyWRTwithFlowOffload/minimal_offload.seed'
12 |
13 |
14 | jobs:
15 | build:
16 | runs-on: ubuntu-latest
17 | env:
18 | GITHUB_TOKEN: ${{ secrets.sec_token }}
19 | sec_token: ${{ secrets.sec_token }}
20 |
21 | steps:
22 | - name: Setup timezone
23 | uses: zcong1993/setup-timezone@master
24 | with:
25 | timezone: Asia/Shanghai
26 |
27 | - name: Checkout
28 | uses: actions/checkout@master
29 | with:
30 | ref: master
31 | fetch-depth: 0
32 | token: ${{ env.sec_token }}
33 |
34 | - name: Init Env
35 | env:
36 | DEBIAN_FRONTEND: noninteractive
37 | run: |
38 | . init_env.sh
39 |
40 | - name: Repo Hash
41 | run: |
42 | ./set_repo_hash.sh Builder
43 |
44 | - name: Friendlywrt Source
45 | run: |
46 | . friendlywrt_source.sh
47 |
48 | - name: Change Feeds to Lean
49 | run: |
50 | cd friendlywrt-rk3328
51 | git clone https://github.com/coolsnowwolf/lede
52 | cd lede
53 | ../../set_repo_hash.sh Lean
54 | cd ../friendlywrt
55 | cp -r ../lede/package/lean package/
56 | sed -i 's/^src-git luci.*/src-git luci https:\/\/github.com\/coolsnowwolf\/luci/' feeds.conf.default
57 | sed -i 's/^src-git packages.*/src-git packages https:\/\/github.com\/coolsnowwolf\/packages/' feeds.conf.default
58 | ../../set_repo_hash.sh LeanLuci https://github.com/coolsnowwolf/luci.git
59 | ../../set_repo_hash.sh LeanPackage https://github.com/coolsnowwolf/packages.git
60 |
61 | - name: Add Packages to Lean
62 | run: |
63 | . add_packages_to_lean.sh
64 |
65 | - name: Install Openwrt Libs
66 | run: |
67 | git config --global user.email "action@github.com" && git config --global user.name "GitHub Action"
68 | cd friendlywrt-rk3328
69 | git clone https://github.com/openwrt/openwrt
70 | cd openwrt
71 | git revert --no-edit d27623b542548b765ddd46b046169006a3b5f66f
72 | cd ..
73 | rm -rf friendlywrt/package/libs
74 | cp -r openwrt/package/libs friendlywrt/package/
75 |
76 | - name: Patch for FlowOffload
77 | run: |
78 | cd friendlywrt-rk3328
79 | mkdir kernelpatches
80 | cp openwrt/target/linux/generic/*-5.4/*offload* kernelpatches/
81 | cp openwrt/target/linux/generic/*-5.4/*OFFLOAD* kernelpatches/
82 | cp openwrt/target/linux/generic/*-5.4/*flow* kernelpatches/
83 | rm kernelpatches/*ppp*
84 | ./openwrt/scripts/patch-kernel.sh kernel kernelpatches
85 | echo "CONFIG_NETFILTER_ADVANCED=y" >> kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
86 | echo "CONFIG_NETFILTER_XTABLES=m" >> kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
87 | echo "CONFIG_NETFILTER_XT_TARGET_FLOWOFFLOAD=m" >> kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
88 | cat kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
89 |
90 | - name: Install Openwrt octeontx patches
91 | run: |
92 | cd friendlywrt-rk3328
93 | cp -r openwrt/target/linux/octeontx/patches-5.4 friendlywrt/target/linux/rockchip-rk3328/
94 | ls friendlywrt/target/linux/rockchip-rk3328/patches-5.4
95 |
96 | - name: Change Log
97 | id: changelog
98 | run: |
99 | git config --global user.email "action@github.com" && git config --global user.name "GitHub Action"
100 | ./changelog.sh FriendlyWRTwithFlowOffload
101 |
102 | - name: Update Feeds
103 | if: steps.changelog.outputs.changelog != ''
104 | run: |
105 | cd friendlywrt-rk3328/friendlywrt
106 | ./scripts/feeds update -a
107 | ./scripts/feeds install -a
108 |
109 | - name: Install Mods
110 | if: steps.changelog.outputs.changelog != ''
111 | run: |
112 | cd friendlywrt-rk3328
113 | sed -i '/Load Average/i\\t\t<%:CPU Temperature%> | <%=luci.sys.exec("cut -c1-2 /sys/class/thermal/thermal_zone0/temp")%> ℃ |
' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
114 | sed -i 's/pcdata(boardinfo.system or "?")/"ARMv8"/' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
115 | sed -i 's/<%=luci.sys.exec("cat \/etc\/bench.log") or " "%>//' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
116 | sed -i "/redirect_https/d" friendlywrt/package/network/services/uhttpd/files/uhttpd.config
117 | sed -i '/luciversion/a \/ ${{ steps.changelog.outputs.buildtag }} by scw' friendlywrt/feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
118 | cp ../scripts/fw_update.sh friendlywrt/package/base-files/files/usr/bin/fw_update
119 |
120 | - name: Add Temperature to Netdata
121 | if: steps.changelog.outputs.changelog != ''
122 | run: |
123 | cd friendlywrt-rk3328
124 | mkdir -p friendlywrt/package/base-files/files/usr/lib/netdata/charts.d
125 | cp ../scripts/temp.chart.sh friendlywrt/package/base-files/files/usr/lib/netdata/charts.d/
126 | echo "sed -i 's/charts.d = no/charts.d = yes/' /etc/netdata/netdata.conf" >> friendlywrt/package/base-files/files/root/setup.sh
127 | echo "cp /usr/lib/netdata/conf.d/charts.d.conf /etc/netdata/" >> friendlywrt/package/base-files/files/root/setup.sh
128 | echo "echo 'temp=yes' >> /etc/netdata/charts.d.conf" >> friendlywrt/package/base-files/files/root/setup.sh
129 | echo "/etc/init.d/netdata restart" >> friendlywrt/package/base-files/files/root/setup.sh
130 |
131 | - name: Download Clash Binary
132 | if: steps.changelog.outputs.changelog != ''
133 | run: |
134 | CLASH_VERSION=v0.19.0
135 | mkdir -p friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
136 | cd friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
137 | wget -O clash.gz https://github.com/Dreamacro/clash/releases/download/$CLASH_VERSION/clash-linux-armv8-$CLASH_VERSION.gz
138 | gunzip clash.gz
139 | chmod +x clash
140 | cd ../..
141 | mkdir -p etc/clash
142 | cd etc/clash
143 | wget -O Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb
144 |
145 | - name: Install UPX
146 | if: steps.changelog.outputs.changelog != ''
147 | run: |
148 | mkdir -p friendlywrt-rk3328/friendlywrt/staging_dir/host/bin/
149 | ln -s /usr/bin/upx-ucl friendlywrt-rk3328/friendlywrt/staging_dir/host/bin/upx
150 |
151 | - name: Update Target.mk
152 | if: steps.changelog.outputs.changelog != ''
153 | run: |
154 | cd friendlywrt-rk3328/friendlywrt/include
155 | sed -i 's/dnsmasq /dnsmasq-full default-settings luci /' target.mk
156 |
157 | - name: Build Config
158 | if: steps.changelog.outputs.changelog != ''
159 | run: |
160 | cd friendlywrt-rk3328
161 | cat configs/config_rk3328 | grep "TARGET" > ../rk3328.config
162 | cat ../FriendlyWRTwithFlowOffload/minimal_offload.seed >> ../rk3328.config
163 | cat ../rk3328.config > configs/config_rk3328
164 | cat configs/config_rk3328
165 |
166 | - name: Clean src
167 | if: steps.changelog.outputs.changelog != ''
168 | run: |
169 | cd friendlywrt-rk3328
170 | rm -rf lede
171 | rm -rf openwrt
172 |
173 | - name: Build Friendlywrt
174 | if: steps.changelog.outputs.changelog != ''
175 | run: |
176 | cd friendlywrt-rk3328
177 | sed -i 's/set -eu/set -u/' scripts/mk-friendlywrt.sh
178 | ./build.sh nanopi_r2s.mk
179 |
180 | # from https://github.com/fanck0605/nanopi_r2s/blob/lean/.github/workflows/main.yml#L87
181 | - name: Fix FriendlyWrt rootfs owner and group
182 | if: steps.changelog.outputs.changelog != ''
183 | run: |
184 | sudo df -lh
185 | lodev=$(sudo losetup -f)
186 | echo "found unused loop dev $lodev"
187 | sudo losetup -o 100663296 $lodev friendlywrt-rk3328/out/*.img
188 | sudo rm -rf /mnt/friendlywrt-tmp
189 | sudo mkdir -p /mnt/friendlywrt-tmp
190 | sudo mount $lodev /mnt/friendlywrt-tmp
191 | sudo chown -R root:root /mnt/friendlywrt-tmp
192 | sudo umount /mnt/friendlywrt-tmp
193 | sudo losetup -d $lodev
194 |
195 | - name: Zip Files
196 | if: steps.changelog.outputs.changelog != ''
197 | run: |
198 | gzip friendlywrt-rk3328/out/*.img
199 |
200 | - name: Assemble Artifact
201 | if: steps.changelog.outputs.changelog != ''
202 | id: assemble_artifact
203 | run: |
204 | rm -rf ./artifact/
205 | mkdir -p ./artifact/
206 | cd friendlywrt-rk3328/friendlywrt;./scripts/diffconfig.sh > ../../artifact/config.seed;cd ../../
207 | mv friendlywrt-rk3328/out/*img* ./artifact/
208 | cp friendlywrt-rk3328/friendlywrt/.config ./artifact/full.config
209 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/scw/luci-app-passwall*.ipk ./artifact/
210 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-r2sflasher*.ipk ./artifact/
211 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-filetransfer*.ipk ./artifact/
212 | zip -r artifact.zip -j artifact artifact/*
213 | release_tag=${{ steps.changelog.outputs.buildtag }}
214 | echo "##[set-output name=release_tag;]$release_tag"
215 |
216 | - name: Create Release
217 | if: steps.changelog.outputs.changelog != ''
218 | id: create_release
219 | uses: actions/create-release@v1
220 | with:
221 | tag_name: ${{ steps.assemble_artifact.outputs.release_tag }}
222 | release_name: ${{ steps.assemble_artifact.outputs.release_tag }}
223 | body: ${{ steps.changelog.outputs.changelog }}
224 | draft: false
225 | prerelease: false
226 |
227 | - name: Upload Release Asset
228 | if: steps.changelog.outputs.changelog != ''
229 | id: upload-release-asset
230 | uses: actions/upload-release-asset@v1
231 | with:
232 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
233 | asset_path: ./artifact.zip
234 | asset_name: ${{ steps.assemble_artifact.outputs.release_tag }}-ROM.zip
235 | asset_content_type: application/zip
236 |
237 | - name: Push Change Log
238 | if: steps.changelog.outputs.changelog != ''
239 | run: |
240 | git pull --rebase --autostash
241 | git push
242 |
--------------------------------------------------------------------------------
/.github/workflows/lean.yml_:
--------------------------------------------------------------------------------
1 | name: lean
2 |
3 | on:
4 | repository_dispatch:
5 | push:
6 | branches:
7 | - master
8 | paths:
9 | - '.github/workflows/lean.yml'
10 | - '*.sh'
11 | schedule:
12 | - cron: '0 6 * * 1'
13 |
14 | jobs:
15 | build:
16 | runs-on: ubuntu-latest
17 | env:
18 | GITHUB_TOKEN: ${{ secrets.sec_token }}
19 | sec_token: ${{ secrets.sec_token }}
20 |
21 | steps:
22 | - name: Setup timezone
23 | uses: zcong1993/setup-timezone@master
24 | with:
25 | timezone: Asia/Shanghai
26 |
27 | - name: Checkout
28 | uses: actions/checkout@master
29 | with:
30 | ref: master
31 | fetch-depth: 0
32 | token: ${{ env.sec_token }}
33 |
34 | - name: Init Env
35 | env:
36 | DEBIAN_FRONTEND: noninteractive
37 | run: |
38 | . init_env.sh
39 |
40 | - name: Repo Hash
41 | run: |
42 | ./set_repo_hash.sh Builder
43 |
44 | - name: Friendlywrt Source
45 | run: |
46 | . friendlywrt_source.sh
47 |
48 | - name: Patch Kernel
49 | run: |
50 | . Lean/patch_kernel_5.4.sh
51 |
52 | - name: Rebase on Lean
53 | run: |
54 | . Lean/rebase_on_lean.sh
55 |
56 | - name: Add Packages to Lean
57 | run: |
58 | . add_packages_to_lean.sh
59 |
60 | - name: Patches for Lean
61 | run: |
62 | . Lean/lean_patches.sh
63 |
64 | - name: Install Openwrt octeontx patches
65 | run: |
66 | cd friendlywrt-rk3328
67 | cp -r openwrt/target/linux/octeontx/patches-5.4 friendlywrt/target/linux/rockchip-rk3328/
68 | ls friendlywrt/target/linux/rockchip-rk3328/patches-5.4
69 |
70 | - name: Install Mods
71 | run: |
72 | cd friendlywrt-rk3328
73 | cp ../scripts/fw_update.sh friendlywrt/package/base-files/files/usr/bin/fw_update
74 |
75 | - name: Change Log
76 | id: changelog
77 | run: |
78 | ./changelog.sh Lean
79 |
80 | - name: Download Clash Binary
81 | if: steps.changelog.outputs.changelog != ''
82 | run: |
83 | CLASH_VERSION=v0.19.0
84 | mkdir -p friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
85 | cd friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
86 | wget -O clash.gz https://github.com/Dreamacro/clash/releases/download/$CLASH_VERSION/clash-linux-armv8-$CLASH_VERSION.gz
87 | gunzip clash.gz
88 | chmod +x clash
89 | cd ../..
90 | mkdir -p etc/clash
91 | cd etc/clash
92 | wget -O Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb
93 |
94 | - name: Build Config
95 | if: steps.changelog.outputs.changelog != ''
96 | run: |
97 | cd friendlywrt-rk3328
98 | cat configs/config_rk3328 | grep "TARGET" > ../rk3328.config
99 | cat ../minimal_config.seed >> ../rk3328.config
100 | cat ../rk3328.config > configs/config_rk3328
101 | cat configs/config_rk3328
102 |
103 | - name: Build Friendlywrt
104 | if: steps.changelog.outputs.changelog != ''
105 | run: |
106 | cd friendlywrt-rk3328
107 | sed -i 's/set -eu/set -u/' scripts/mk-friendlywrt.sh
108 | ./build.sh nanopi_r2s.mk
109 |
110 | # from https://github.com/fanck0605/nanopi_r2s/blob/lean/.github/workflows/main.yml#L87
111 | - name: Fix FriendlyWrt rootfs owner and group
112 | if: steps.changelog.outputs.changelog != ''
113 | run: |
114 | sudo df -lh
115 | lodev=$(sudo losetup -f)
116 | echo "found unused loop dev $lodev"
117 | sudo losetup -o 100663296 $lodev friendlywrt-rk3328/out/*.img
118 | sudo rm -rf /mnt/friendlywrt-tmp
119 | sudo mkdir -p /mnt/friendlywrt-tmp
120 | sudo mount $lodev /mnt/friendlywrt-tmp
121 | sudo chown -R root:root /mnt/friendlywrt-tmp
122 | sudo umount /mnt/friendlywrt-tmp
123 | sudo losetup -d $lodev
124 |
125 | - name: Zip Files
126 | if: steps.changelog.outputs.changelog != ''
127 | run: |
128 | gzip friendlywrt-rk3328/out/*.img
129 |
130 | - name: Assemble Artifact
131 | if: steps.changelog.outputs.changelog != ''
132 | id: assemble_artifact
133 | run: |
134 | rm -rf ./artifact/
135 | mkdir -p ./artifact/
136 | cd friendlywrt-rk3328/friendlywrt;./scripts/diffconfig.sh > ../../artifact/config.seed;cd ../../
137 | mv friendlywrt-rk3328/out/*img* ./artifact/
138 | cp friendlywrt-rk3328/friendlywrt/.config ./artifact/full.config
139 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/scw/luci-app-passwall*.ipk ./artifact/
140 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-r2sflasher*.ipk ./artifact/
141 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-filetransfer*.ipk ./artifact/
142 | zip -r artifact.zip -j artifact artifact/*
143 | release_tag=${{ steps.changelog.outputs.buildtag }}
144 | echo "##[set-output name=release_tag;]$release_tag"
145 |
146 | - name: Create Release
147 | if: steps.changelog.outputs.changelog != ''
148 | id: create_release
149 | uses: actions/create-release@v1
150 | with:
151 | tag_name: ${{ steps.assemble_artifact.outputs.release_tag }}
152 | release_name: ${{ steps.assemble_artifact.outputs.release_tag }}
153 | body: ${{ steps.changelog.outputs.changelog }}
154 | draft: false
155 | prerelease: false
156 |
157 | - name: Upload Release Asset
158 | if: steps.changelog.outputs.changelog != ''
159 | id: upload-release-asset
160 | uses: actions/upload-release-asset@v1
161 | with:
162 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
163 | asset_path: ./artifact.zip
164 | asset_name: ${{ steps.assemble_artifact.outputs.release_tag }}-ROM.zip
165 | asset_content_type: application/zip
166 |
167 | - name: Push Change Log
168 | if: steps.changelog.outputs.changelog != ''
169 | run: |
170 | git pull --rebase --autostash
171 | git push
172 |
--------------------------------------------------------------------------------
/.github/workflows/lienol_on_lean.yml_:
--------------------------------------------------------------------------------
1 | name: LOL
2 |
3 | on:
4 | repository_dispatch:
5 | push:
6 | branches:
7 | - master
8 | paths:
9 | - '.github/workflows/lienol_on_lean.yml'
10 | - '*.sh'
11 | schedule:
12 | - cron: '0 4 * * 1'
13 |
14 | jobs:
15 | build:
16 | runs-on: ubuntu-latest
17 | env:
18 | GITHUB_TOKEN: ${{ secrets.sec_token }}
19 | sec_token: ${{ secrets.sec_token }}
20 |
21 | steps:
22 | - name: Setup timezone
23 | uses: zcong1993/setup-timezone@master
24 | with:
25 | timezone: Asia/Shanghai
26 |
27 | - name: Checkout
28 | uses: actions/checkout@master
29 | with:
30 | ref: master
31 | fetch-depth: 0
32 | token: ${{ env.sec_token }}
33 |
34 | - name: Init Env
35 | env:
36 | DEBIAN_FRONTEND: noninteractive
37 | run: |
38 | . init_env.sh
39 |
40 | - name: Repo Hash
41 | run: |
42 | ./set_repo_hash.sh Builder
43 |
44 | - name: Friendlywrt Source
45 | run: |
46 | . friendlywrt_source.sh
47 |
48 | - name: Patch Kernel
49 | run: |
50 | . Lean/patch_kernel_5.4.sh
51 | sed -i -r 's/# (CONFIG_.*_ERRATUM_.*?) is.*/\1=y/g' kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
52 |
53 | - name: Rebase on Lean
54 | run: |
55 | . LOL/rebase_on_lienol.sh
56 |
57 | - name: Add Packages to Lean
58 | run: |
59 | sed -i 's/^src-git lienol.*//' friendlywrt-rk3328/friendlywrt/feeds.conf.default
60 | . add_packages_to_lean.sh
61 |
62 | - name: Patches for Lean
63 | run: |
64 | . Lean/lean_patches.sh
65 |
66 | - name: Install Openwrt octeontx patches
67 | run: |
68 | cd friendlywrt-rk3328
69 | cp -r openwrt/target/linux/octeontx/patches-5.4 friendlywrt/target/linux/rockchip-rk3328/
70 | ls friendlywrt/target/linux/rockchip-rk3328/patches-5.4
71 |
72 | - name: Install Mods
73 | run: |
74 | cd friendlywrt-rk3328
75 | cp ../scripts/fw_update.sh friendlywrt/package/base-files/files/usr/bin/fw_update
76 |
77 | - name: Change Log
78 | id: changelog
79 | run: |
80 | ./changelog.sh LOL
81 |
82 | - name: Download Clash Binary
83 | if: steps.changelog.outputs.changelog != ''
84 | run: |
85 | CLASH_VERSION=v0.19.0
86 | mkdir -p friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
87 | cd friendlywrt-rk3328/friendlywrt/package/base-files/files/usr/bin
88 | wget -O clash.gz https://github.com/Dreamacro/clash/releases/download/$CLASH_VERSION/clash-linux-armv8-$CLASH_VERSION.gz
89 | gunzip clash.gz
90 | chmod +x clash
91 | cd ../..
92 | mkdir -p etc/clash
93 | cd etc/clash
94 | wget -O Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb
95 |
96 | - name: Build Config
97 | if: steps.changelog.outputs.changelog != ''
98 | run: |
99 | cd friendlywrt-rk3328
100 | cat configs/config_rk3328 | grep "TARGET" > ../rk3328.config
101 | cat ../minimal_config.seed >> ../rk3328.config
102 | cat ../rk3328.config > configs/config_rk3328
103 | cat configs/config_rk3328
104 |
105 | - name: Build Friendlywrt
106 | if: steps.changelog.outputs.changelog != ''
107 | run: |
108 | cd friendlywrt-rk3328
109 | sed -i 's/set -eu/set -u/' scripts/mk-friendlywrt.sh
110 | ./build.sh nanopi_r2s.mk
111 |
112 | # from https://github.com/fanck0605/nanopi_r2s/blob/lean/.github/workflows/main.yml#L87
113 | - name: Fix FriendlyWrt rootfs owner and group
114 | if: steps.changelog.outputs.changelog != ''
115 | run: |
116 | sudo df -lh
117 | lodev=$(sudo losetup -f)
118 | echo "found unused loop dev $lodev"
119 | sudo losetup -o 100663296 $lodev friendlywrt-rk3328/out/*.img
120 | sudo rm -rf /mnt/friendlywrt-tmp
121 | sudo mkdir -p /mnt/friendlywrt-tmp
122 | sudo mount $lodev /mnt/friendlywrt-tmp
123 | sudo chown -R root:root /mnt/friendlywrt-tmp
124 | sudo umount /mnt/friendlywrt-tmp
125 | sudo losetup -d $lodev
126 |
127 | - name: Zip Files
128 | if: steps.changelog.outputs.changelog != ''
129 | run: |
130 | gzip friendlywrt-rk3328/out/*.img
131 |
132 | - name: Assemble Artifact
133 | if: steps.changelog.outputs.changelog != ''
134 | id: assemble_artifact
135 | run: |
136 | rm -rf ./artifact/
137 | mkdir -p ./artifact/
138 | cd friendlywrt-rk3328/friendlywrt;./scripts/diffconfig.sh > ../../artifact/config.seed;cd ../../
139 | mv friendlywrt-rk3328/out/*img* ./artifact/
140 | cp friendlywrt-rk3328/friendlywrt/.config ./artifact/full.config
141 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/scw/luci-app-passwall*.ipk ./artifact/
142 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-r2sflasher*.ipk ./artifact/
143 | cp friendlywrt-rk3328/friendlywrt/bin/packages/*/*/luci-app-filetransfer*.ipk ./artifact/
144 | zip -r artifact.zip -j artifact artifact/*
145 | release_tag=${{ steps.changelog.outputs.buildtag }}
146 | echo "##[set-output name=release_tag;]$release_tag"
147 |
148 | - name: Create Release
149 | if: steps.changelog.outputs.changelog != ''
150 | id: create_release
151 | uses: actions/create-release@v1
152 | with:
153 | tag_name: ${{ steps.assemble_artifact.outputs.release_tag }}
154 | release_name: ${{ steps.assemble_artifact.outputs.release_tag }}
155 | body: ${{ steps.changelog.outputs.changelog }}
156 | draft: false
157 | prerelease: false
158 |
159 | - name: Upload Release Asset
160 | if: steps.changelog.outputs.changelog != ''
161 | id: upload-release-asset
162 | uses: actions/upload-release-asset@v1
163 | with:
164 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
165 | asset_path: ./artifact.zip
166 | asset_name: ${{ steps.assemble_artifact.outputs.release_tag }}-ROM.zip
167 | asset_content_type: application/zip
168 |
169 | - name: Push Change Log
170 | if: steps.changelog.outputs.changelog != ''
171 | run: |
172 | git pull --rebase --autostash
173 | git push
174 |
--------------------------------------------------------------------------------
/FriendlyWRT/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## FriendlyWRT-2020-07-04-935c67b
2 |
3 | #### Argon [6bab4a8..d4b2541](https://github.com/jerrykuku/luci-theme-argon/compare/6bab4a8..d4b2541)
4 |
5 |
6 | | Commit | Author | Desc |
7 | | :----- | :------| :--- |
8 | | [d4b2541](https://github.com/jerrykuku/luci-theme-argon/commit/d4b2541) | jerrykuku | Update style.css |
9 | | [b9a2dde](https://github.com/jerrykuku/luci-theme-argon/commit/b9a2dde) | jerrykuku | update readme |
10 | | [86f9b0a](https://github.com/jerrykuku/luci-theme-argon/commit/86f9b0a) | jerrykuku | fix display bugs |
11 |
12 |
13 |
14 |
15 | --------------
16 |
17 | ## FriendlyWRT-2020-07-01-935c67b
18 |
19 | #### Builder [8affca1..935c67b](https://github.com/songchenwen/nanopi-r2s/compare/8affca1..935c67b)
20 |
21 |
22 | | Commit | Author | Desc |
23 | | :----- | :------| :--- |
24 | | [935c67b](https://github.com/songchenwen/nanopi-r2s/commit/935c67b) | songchenwen | Enable Check Net Script |
25 |
26 |
27 |
28 |
29 | --------------
30 |
31 | ## FriendlyWRT-2020-06-10-8affca1
32 |
33 | #### Builder [7707052..8affca1](https://github.com/songchenwen/nanopi-r2s/compare/7707052..8affca1)
34 |
35 |
36 | | Commit | Author | Desc |
37 | | :----- | :------| :--- |
38 | | [8affca1](https://github.com/songchenwen/nanopi-r2s/commit/8affca1) | songchenwen | Check Net Script in Hotplug.d |
39 |
40 |
41 |
42 |
43 | --------------
44 |
45 | ## FriendlyWRT-2020-06-01-7707052
46 |
47 | #### Builder [b0a8b83..7707052](https://github.com/songchenwen/nanopi-r2s/compare/b0a8b83..7707052)
48 |
49 |
50 | | Commit | Author | Desc |
51 | | :----- | :------| :--- |
52 | | [7707052](https://github.com/songchenwen/nanopi-r2s/commit/7707052) | songchenwen | Fix FullCone Nat Patch |
53 |
54 |
55 |
56 |
57 | --------------
58 |
59 | ## FriendlyWRT-2020-05-28-b0a8b83
60 |
61 | #### FriendlyWRT [4132f4f..b2b9dc9](https://github.com/friendlyarm/friendlywrt/compare/4132f4f..b2b9dc9)
62 |
63 |
64 | | Commit | Author | Desc |
65 | | :----- | :------| :--- |
66 | | [b2b9dc9763](https://github.com/friendlyarm/friendlywrt/commit/b2b9dc9763) | Lawrence-Tang | lcd2usb_echo: display cpu temperature and ip on lcd1602 |
67 |
68 |
69 |
70 |
71 | --------------
72 |
73 | ## FriendlyWRT-2020-05-24-b0a8b83
74 |
75 | #### ServerChan [cd9cf97..db547c1](https://github.com/tty228/luci-app-serverchan/compare/cd9cf97..db547c1)
76 |
77 |
78 | | Commit | Author | Desc |
79 | | :----- | :------| :--- |
80 | | [db547c1](https://github.com/tty228/luci-app-serverchan/commit/db547c1) | tty228 | update |
81 |
82 |
83 |
84 |
85 | --------------
86 |
87 | ## FriendlyWRT-2020-05-20-b0a8b83
88 |
89 | #### Builder [ae0868c..b0a8b83](https://github.com/songchenwen/nanopi-r2s/compare/ae0868c..b0a8b83)
90 |
91 |
92 | | Commit | Author | Desc |
93 | | :----- | :------| :--- |
94 | | [b0a8b83](https://github.com/songchenwen/nanopi-r2s/commit/b0a8b83) | songchenwen | Add Check Net Script |
95 |
96 |
97 |
98 |
99 | --------------
100 |
101 | ## FriendlyWRT-2020-05-19-ae0868c
102 |
103 | #### Builder [772dcd8..ae0868c](https://github.com/songchenwen/nanopi-r2s/compare/772dcd8..ae0868c)
104 |
105 |
106 | | Commit | Author | Desc |
107 | | :----- | :------| :--- |
108 | | [ae0868c](https://github.com/songchenwen/nanopi-r2s/commit/ae0868c) | songchenwen | Update Clash Binary |
109 |
110 |
111 |
112 |
113 | --------------
114 |
115 | ## FriendlyWRT-2020-05-19-772dcd8
116 |
117 | #### Builder [7ff9cfd..772dcd8](https://github.com/songchenwen/nanopi-r2s/compare/7ff9cfd..772dcd8)
118 |
119 |
120 | | Commit | Author | Desc |
121 | | :----- | :------| :--- |
122 | | [0e22b19](https://github.com/songchenwen/nanopi-r2s/commit/0e22b19) | Chuck | r2sflash: fix read only filesystem test |
123 |
124 |
125 |
126 |
127 | --------------
128 |
129 | ## FriendlyWRT-2020-05-16-7ff9cfd
130 |
131 | #### Builder [a8d344a..7ff9cfd](https://github.com/songchenwen/nanopi-r2s/compare/a8d344a..7ff9cfd)
132 |
133 |
134 | | Commit | Author | Desc |
135 | | :----- | :------| :--- |
136 | | [7ff9cfd](https://github.com/songchenwen/nanopi-r2s/commit/7ff9cfd) | songchenwen | R2S Flasher: Fix Loop Mount Test |
137 |
138 |
139 |
140 |
141 | --------------
142 |
143 | ## FriendlyWRT-2020-05-15-a8d344a
144 |
145 | #### FriendlyWRT [f6e2de1..4132f4f](https://github.com/friendlyarm/friendlywrt/compare/f6e2de1..4132f4f)
146 |
147 |
148 | | Commit | Author | Desc |
149 | | :----- | :------| :--- |
150 | | [4132f4fe51](https://github.com/friendlyarm/friendlywrt/commit/4132f4fe51) | Lawrence-Tang | rk3328: add support for rtl8812au |
151 | | [4cf743eb54](https://github.com/friendlyarm/friendlywrt/commit/4cf743eb54) | Chuck | rk3328: adapt to rockchip-kernel's HZ settings |
152 | | [e7952a97a2](https://github.com/friendlyarm/friendlywrt/commit/e7952a97a2) | Chuck | rk3328: remove CONFIG_COMPACTION config |
153 |
154 |
155 |
156 |
157 | --------------
158 |
159 | ## FriendlyWRT-2020-05-11-a8d344a
160 |
161 | #### Builder [91af96c..a8d344a](https://github.com/songchenwen/nanopi-r2s/compare/91af96c..a8d344a)
162 |
163 |
164 | | Commit | Author | Desc |
165 | | :----- | :------| :--- |
166 | | [a8d344a](https://github.com/songchenwen/nanopi-r2s/commit/a8d344a) | songchenwen | User New OPKG Feeds Domain Name |
167 |
168 |
169 |
170 |
171 | --------------
172 |
173 | ## FriendlyWRT-2020-05-05-91af96c
174 |
175 | #### Builder [394c9a4..91af96c](https://github.com/songchenwen/nanopi-r2s/compare/394c9a4..91af96c)
176 |
177 |
178 | | Commit | Author | Desc |
179 | | :----- | :------| :--- |
180 | | [91af96c](https://github.com/songchenwen/nanopi-r2s/commit/91af96c) | songchenwen | Try Deleting NFT Offload |
181 |
182 |
183 |
184 |
185 | --------------
186 |
187 | ## FriendlyWRT-2020-05-04-394c9a4
188 |
189 | #### Builder [3ceb089..394c9a4](https://github.com/songchenwen/nanopi-r2s/compare/3ceb089..394c9a4)
190 |
191 |
192 | | Commit | Author | Desc |
193 | | :----- | :------| :--- |
194 | | [394c9a4](https://github.com/songchenwen/nanopi-r2s/commit/394c9a4) | songchenwen | Fix FullCone NAT in Firewall |
195 |
196 |
197 | #### Argon [358e293..6bab4a8](https://github.com/jerrykuku/luci-theme-argon/compare/358e293..6bab4a8)
198 |
199 |
200 | | Commit | Author | Desc |
201 | | :----- | :------| :--- |
202 | | [6bab4a8](https://github.com/jerrykuku/luci-theme-argon/commit/6bab4a8) | jerrykuku | fix some display error |
203 |
204 |
205 |
206 |
207 | --------------
208 |
209 | ## FriendlyWRT-2020-05-04-3ceb089
210 |
211 | #### Builder [23a4f41..3ceb089](https://github.com/songchenwen/nanopi-r2s/compare/23a4f41..3ceb089)
212 |
213 |
214 | | Commit | Author | Desc |
215 | | :----- | :------| :--- |
216 | | [05dfa4e](https://github.com/songchenwen/nanopi-r2s/commit/05dfa4e) | songchenwen | Merge Chuck's Changes |
217 | | [6f7092e](https://github.com/songchenwen/nanopi-r2s/commit/6f7092e) | Chuck | r2sflasher: optimize loop device mount |
218 |
219 |
220 |
221 |
222 | --------------
223 |
224 | ## FriendlyWRT-2020-05-04-23a4f41
225 |
226 | #### Builder [55f162a..23a4f41](https://github.com/songchenwen/nanopi-r2s/compare/55f162a..23a4f41)
227 |
228 |
229 | | Commit | Author | Desc |
230 | | :----- | :------| :--- |
231 | | [23a4f41](https://github.com/songchenwen/nanopi-r2s/commit/23a4f41) | songchenwen | Add FullCone NAT Dependencies. |
232 |
233 |
234 | #### Argon [3e41f5b..358e293](https://github.com/jerrykuku/luci-theme-argon/compare/3e41f5b..358e293)
235 |
236 |
237 | | Commit | Author | Desc |
238 | | :----- | :------| :--- |
239 | | [621d5cf](https://github.com/jerrykuku/luci-theme-argon/commit/621d5cf) | R3pl4c3r | favicon: replaced by icon.png |
240 |
241 |
242 |
243 |
244 | --------------
245 |
246 | ## FriendlyWRT-2020-05-01-55f162a
247 |
248 | #### Builder [10a45b1..55f162a](https://github.com/songchenwen/nanopi-r2s/compare/10a45b1..55f162a)
249 |
250 |
251 | | Commit | Author | Desc |
252 | | :----- | :------| :--- |
253 | | [55f162a](https://github.com/songchenwen/nanopi-r2s/commit/55f162a) | songchenwen | Update Kernel URL |
254 | | [c129fd9](https://github.com/songchenwen/nanopi-r2s/commit/c129fd9) | songchenwen | Update README |
255 |
256 |
257 |
258 |
259 | --------------
260 |
261 | ## FriendlyWRT-2020-04-30-10a45b1
262 |
263 | #### OpenWrt [f57230c](/commit/f57230c)
264 |
265 |
266 |
267 |
268 | #### Builder [29cf7e9..10a45b1](https://github.com/songchenwen/nanopi-r2s/compare/29cf7e9..10a45b1)
269 |
270 |
271 | | Commit | Author | Desc |
272 | | :----- | :------| :--- |
273 | | [10a45b1](https://github.com/songchenwen/nanopi-r2s/commit/10a45b1) | songchenwen | Use Chuck's Kernel |
274 |
275 |
276 | #### Kernel [240bef4](/commit/240bef4)
277 |
278 |
279 |
280 |
281 |
282 |
283 | --------------
284 |
285 | ## FriendlyWRT-2020-04-29-29cf7e9
286 |
287 | #### FriendlyWRT [6025df0..f6e2de1](https://github.com/friendlyarm/friendlywrt/compare/6025df0..f6e2de1)
288 |
289 |
290 | | Commit | Author | Desc |
291 | | :----- | :------| :--- |
292 | | [48b8c9921b](https://github.com/friendlyarm/friendlywrt/commit/48b8c9921b) | Chuck | setup.sh: make sure it's not commented |
293 |
294 |
295 |
296 |
297 | --------------
298 |
299 | ## FriendlyWRT-2020-04-23-29cf7e9
300 |
301 | #### Builder [099d874..29cf7e9](https://github.com/songchenwen/nanopi-r2s/compare/099d874..29cf7e9)
302 |
303 |
304 | | Commit | Author | Desc |
305 | | :----- | :------| :--- |
306 | | [29cf7e9](https://github.com/songchenwen/nanopi-r2s/commit/29cf7e9) | songchenwen | Add NanoPi R2S OPKG Feeds |
307 |
308 |
309 |
310 |
311 | --------------
312 |
313 | ## FriendlyWRT-2020-04-23-099d874
314 |
315 | #### ServerChan [c15251d..cd9cf97](https://github.com/tty228/luci-app-serverchan/compare/c15251d..cd9cf97)
316 |
317 |
318 | | Commit | Author | Desc |
319 | | :----- | :------| :--- |
320 | | [cd9cf97](https://github.com/tty228/luci-app-serverchan/commit/cd9cf97) | tty228 | v1.78 |
321 |
322 |
323 |
324 |
325 | --------------
326 |
327 | ## FriendlyWRT-2020-04-22-099d874
328 |
329 | #### Builder [a5f91ca..099d874](https://github.com/songchenwen/nanopi-r2s/compare/a5f91ca..099d874)
330 |
331 |
332 | | Commit | Author | Desc |
333 | | :----- | :------| :--- |
334 | | [099d874](https://github.com/songchenwen/nanopi-r2s/commit/099d874) | songchenwen | R2S Flasher Change Backup Dir |
335 |
336 |
337 |
338 |
339 | --------------
340 |
341 | ## FriendlyWRT-2020-04-21-a5f91ca
342 |
343 | #### Builder [9a6851a..a5f91ca](https://github.com/songchenwen/nanopi-r2s/compare/9a6851a..a5f91ca)
344 |
345 |
346 | | Commit | Author | Desc |
347 | | :----- | :------| :--- |
348 | | [a5f91ca](https://github.com/songchenwen/nanopi-r2s/commit/a5f91ca) | songchenwen | luci-app-flasher auto redirect when reversed proxied |
349 | | [9b56dcc](https://github.com/songchenwen/nanopi-r2s/commit/9b56dcc) | songchenwen | Add Test Build with FlowOffload |
350 |
351 |
352 |
353 |
354 | --------------
355 |
356 | ## FriendlyWRT-2020-04-20-9a6851a
357 |
358 | #### ServerChan [7d39adb..c15251d](https://github.com/tty228/luci-app-serverchan/compare/7d39adb..c15251d)
359 |
360 |
361 | | Commit | Author | Desc |
362 | | :----- | :------| :--- |
363 | | [c15251d](https://github.com/tty228/luci-app-serverchan/commit/c15251d) | tty228 | v1.77 |
364 | | [07d69bd](https://github.com/tty228/luci-app-serverchan/commit/07d69bd) | tty228 | Update serverchan |
365 | | [49863f2](https://github.com/tty228/luci-app-serverchan/commit/49863f2) | tty228 | 设备下线时不需要重置流量数据 |
366 |
367 |
368 |
369 |
370 | --------------
371 |
372 | ## FriendlyWRT-2020-04-19-9a6851a
373 |
374 | #### ServerChan [20d4f2e..7d39adb](https://github.com/tty228/luci-app-serverchan/compare/20d4f2e..7d39adb)
375 |
376 |
377 | | Commit | Author | Desc |
378 | | :----- | :------| :--- |
379 | | [7d39adb](https://github.com/tty228/luci-app-serverchan/commit/7d39adb) | tty228 | Update serverchan.lua |
380 | | [25c589e](https://github.com/tty228/luci-app-serverchan/commit/25c589e) | tty228 | v1.76 |
381 | | [c59007e](https://github.com/tty228/luci-app-serverchan/commit/c59007e) | tty228 | Update Makefile |
382 | | [59782cd](https://github.com/tty228/luci-app-serverchan/commit/59782cd) | tty228 | update |
383 | | [babaedf](https://github.com/tty228/luci-app-serverchan/commit/babaedf) | tty228 | update |
384 | | [a028deb](https://github.com/tty228/luci-app-serverchan/commit/a028deb) | tty228 | Update Makefile |
385 | | [d3d3b24](https://github.com/tty228/luci-app-serverchan/commit/d3d3b24) | tty228 | 换行有问题 |
386 | | [19e21e5](https://github.com/tty228/luci-app-serverchan/commit/19e21e5) | tty228 | update |
387 | | [833b3c7](https://github.com/tty228/luci-app-serverchan/commit/833b3c7) | tty228 | update |
388 |
389 |
390 | #### Builder [ec8a958..9a6851a](https://github.com/songchenwen/nanopi-r2s/compare/ec8a958..9a6851a)
391 |
392 |
393 | | Commit | Author | Desc |
394 | | :----- | :------| :--- |
395 | | [9a6851a](https://github.com/songchenwen/nanopi-r2s/commit/9a6851a) | songchenwen | Delete Lean and LOL Version |
396 |
397 |
398 |
399 |
400 | --------------
401 |
402 | ## FriendlyWRT-2020-04-18-ec8a958
403 |
404 | #### ServerChan [d14067f..20d4f2e](https://github.com/tty228/luci-app-serverchan/compare/d14067f..20d4f2e)
405 |
406 |
407 | | Commit | Author | Desc |
408 | | :----- | :------| :--- |
409 | | [20d4f2e](https://github.com/tty228/luci-app-serverchan/commit/20d4f2e) | tty228 | Update README.md |
410 | | [79d20c9](https://github.com/tty228/luci-app-serverchan/commit/79d20c9) | tty228 | update |
411 | | [7c0b338](https://github.com/tty228/luci-app-serverchan/commit/7c0b338) | tty228 | 修复 lan 接口无线设备离线时接口识别错误的bug |
412 | | [715d7fb](https://github.com/tty228/luci-app-serverchan/commit/715d7fb) | tty228 | 更改几个可能引起问题的语法 |
413 | | [025d0f8](https://github.com/tty228/luci-app-serverchan/commit/025d0f8) | tty228 | v1.74 |
414 | | [915fa16](https://github.com/tty228/luci-app-serverchan/commit/915fa16) | tty228 | 修复 tg 定时推送乱码问题 |
415 | | [ce6c990](https://github.com/tty228/luci-app-serverchan/commit/ce6c990) | tty228 | v1.73 |
416 |
417 |
418 | #### Builder [0e7ccd9..ec8a958](https://github.com/songchenwen/nanopi-r2s/compare/0e7ccd9..ec8a958)
419 |
420 |
421 | | Commit | Author | Desc |
422 | | :----- | :------| :--- |
423 | | [ec8a958](https://github.com/songchenwen/nanopi-r2s/commit/ec8a958) | songchenwen | Fix Timezone |
424 |
425 |
426 |
427 |
428 | --------------
429 |
430 | ## FriendlyWRT-2020-04-17-0e7ccd9
431 |
432 | #### ServerChan [99c9023..d14067f](https://github.com/tty228/luci-app-serverchan/compare/99c9023..d14067f)
433 |
434 |
435 | | Commit | Author | Desc |
436 | | :----- | :------| :--- |
437 | | [d14067f](https://github.com/tty228/luci-app-serverchan/commit/d14067f) | tty228 | 修复上线检测未正确使用变量 |
438 | | [5ae8cd2](https://github.com/tty228/luci-app-serverchan/commit/5ae8cd2) | tty228 | update |
439 | | [80e5936](https://github.com/tty228/luci-app-serverchan/commit/80e5936) | tty228 | Update README.md |
440 | | [908bbc7](https://github.com/tty228/luci-app-serverchan/commit/908bbc7) | tty228 | v1.72 |
441 |
442 |
443 | #### Builder [9f73416..0e7ccd9](https://github.com/songchenwen/nanopi-r2s/compare/9f73416..0e7ccd9)
444 |
445 |
446 | | Commit | Author | Desc |
447 | | :----- | :------| :--- |
448 | | [0e7ccd9](https://github.com/songchenwen/nanopi-r2s/commit/0e7ccd9) | songchenwen | + FileAssistant -Watchcat |
449 |
450 |
451 |
452 |
453 | --------------
454 |
455 | ## FriendlyWRT-2020-04-16-9f73416
456 |
457 | #### Builder [94a2747..9f73416](https://github.com/songchenwen/nanopi-r2s/compare/94a2747..9f73416)
458 |
459 |
460 | | Commit | Author | Desc |
461 | | :----- | :------| :--- |
462 | | [9f73416](https://github.com/songchenwen/nanopi-r2s/commit/9f73416) | songchenwen | Update R2S Flasher |
463 | | [2ff8b7e](https://github.com/songchenwen/nanopi-r2s/commit/2ff8b7e) | songchenwen | Add Download URL to luci-app-r2sflasher |
464 | | [d7e657a](https://github.com/songchenwen/nanopi-r2s/commit/d7e657a) | songchenwen | Fix SSRP |
465 |
466 |
467 |
468 |
469 | --------------
470 |
471 | ## FriendlyWRT-2020-04-16-94a2747
472 |
473 | #### Builder [2e348ea..94a2747](https://github.com/songchenwen/nanopi-r2s/compare/2e348ea..94a2747)
474 |
475 |
476 | | Commit | Author | Desc |
477 | | :----- | :------| :--- |
478 | | [94a2747](https://github.com/songchenwen/nanopi-r2s/commit/94a2747) | songchenwen | Update r2sflasher Dependency |
479 |
480 |
481 |
482 |
483 | --------------
484 |
485 | ## FriendlyWRT-2020-04-15-2e348ea
486 |
487 | #### Builder [06ca030..2e348ea](https://github.com/songchenwen/nanopi-r2s/compare/06ca030..2e348ea)
488 |
489 |
490 | | Commit | Author | Desc |
491 | | :----- | :------| :--- |
492 | | [2e348ea](https://github.com/songchenwen/nanopi-r2s/commit/2e348ea) | songchenwen | Add Separated Read Me File to Avoid Merge Conflict |
493 |
494 |
495 |
496 |
497 | --------------
498 |
499 | ## FriendlyWRT-2020-04-15-06ca030
500 |
501 | #### Builder [6921e05..06ca030](https://github.com/songchenwen/nanopi-r2s/compare/6921e05..06ca030)
502 |
503 |
504 | | Commit | Author | Desc |
505 | | :----- | :------| :--- |
506 | | [06ca030](https://github.com/songchenwen/nanopi-r2s/commit/06ca030) | songchenwen | Update README |
507 | | [73d70f6](https://github.com/songchenwen/nanopi-r2s/commit/73d70f6) | songchenwen | README about friendlywrt |
508 | | [f666d0b](https://github.com/songchenwen/nanopi-r2s/commit/f666d0b) | songchenwen | Add ETH Tool and Cloudflare DDNS |
509 |
510 |
511 |
512 |
513 | --------------
514 |
515 | ## FriendlyWRT-2020-04-15-6921e05
516 |
517 | #### Builder [929220a..6921e05](https://github.com/songchenwen/nanopi-r2s/compare/929220a..6921e05)
518 |
519 |
520 | | Commit | Author | Desc |
521 | | :----- | :------| :--- |
522 | | [6921e05](https://github.com/songchenwen/nanopi-r2s/commit/6921e05) | songchenwen | Edit R2S Flasher ROM Page |
523 | | [c4df26f](https://github.com/songchenwen/nanopi-r2s/commit/c4df26f) | songchenwen | luci-app-r2sflasher support img.zip file |
524 |
525 |
526 |
527 |
528 | --------------
529 |
530 | ## FriendlyWRT-2020-04-14-929220a
531 |
532 | #### Builder [f8b0fae..929220a](https://github.com/songchenwen/nanopi-r2s/compare/f8b0fae..929220a)
533 |
534 |
535 | | Commit | Author | Desc |
536 | | :----- | :------| :--- |
537 | | [929220a](https://github.com/songchenwen/nanopi-r2s/commit/929220a) | songchenwen | fix elfutils |
538 | | [c5c7214](https://github.com/songchenwen/nanopi-r2s/commit/c5c7214) | songchenwen | Try another way to fix elfutils |
539 | | [3a014f1](https://github.com/songchenwen/nanopi-r2s/commit/3a014f1) | songchenwen | Try to fix elfutils |
540 | | [b7c1390](https://github.com/songchenwen/nanopi-r2s/commit/b7c1390) | songchenwen | Remove Gzip Dependency of r2s flasher |
541 | | [7ab12ae](https://github.com/songchenwen/nanopi-r2s/commit/7ab12ae) | songchenwen | add luci-app-r2sflasher |
542 | | [9b5cf06](https://github.com/songchenwen/nanopi-r2s/commit/9b5cf06) | songchenwen | No Bench Mark for FriendlyWRT |
543 |
544 |
545 | #### FriendlyWRT [c2699cd..6025df0](https://github.com/friendlyarm/friendlywrt/compare/c2699cd..6025df0)
546 |
547 |
548 | | Commit | Author | Desc |
549 | | :----- | :------| :--- |
550 | | [6025df0352](https://github.com/friendlyarm/friendlywrt/commit/6025df0352) | Lawrence-Tang | initial settings for ttyd, samba, watchcat |
551 | | [6ba702543b](https://github.com/friendlyarm/friendlywrt/commit/6ba702543b) | Lawrence-Tang | rk3328: add support for rtl8822bu |
552 | | [5ebce5620b](https://github.com/friendlyarm/friendlywrt/commit/5ebce5620b) | Lawrence-Tang | add p7zip |
553 |
554 |
555 |
556 |
557 | --------------
558 |
559 | ## FriendlyWRT-2020-04-12-f8b0fae
560 |
561 | #### Builder [d04ccd6..f8b0fae](https://github.com/songchenwen/nanopi-r2s/compare/d04ccd6..f8b0fae)
562 |
563 |
564 | | Commit | Author | Desc |
565 | | :----- | :------| :--- |
566 | | [f8b0fae](https://github.com/songchenwen/nanopi-r2s/commit/f8b0fae) | songchenwen | add luci-app-filebrowser |
567 |
568 |
569 |
570 |
571 | --------------
572 |
573 | ## FriendlyWRT-2020-04-12-d04ccd6
574 |
575 | #### Builder [cf7d037..d04ccd6](https://github.com/songchenwen/nanopi-r2s/compare/cf7d037..d04ccd6)
576 |
577 |
578 | | Commit | Author | Desc |
579 | | :----- | :------| :--- |
580 | | [d04ccd6](https://github.com/songchenwen/nanopi-r2s/commit/d04ccd6) | songchenwen | Remove nfs add v2ray and wget |
581 |
582 |
583 |
584 |
585 | --------------
586 |
587 | ## FriendlyWRT-2020-04-11-cf7d037
588 |
589 | #### Builder [bf4fc77..cf7d037](https://github.com/songchenwen/nanopi-r2s/compare/bf4fc77..cf7d037)
590 |
591 |
592 | | Commit | Author | Desc |
593 | | :----- | :------| :--- |
594 | | [cf7d037](https://github.com/songchenwen/nanopi-r2s/commit/cf7d037) | songchenwen | Add fw_update Script |
595 |
596 |
597 |
598 |
599 | --------------
600 |
601 | ## FriendlyWRT-2020-04-11-bf4fc77
602 |
603 | #### Builder [986d717..bf4fc77](https://github.com/songchenwen/nanopi-r2s/compare/986d717..bf4fc77)
604 |
605 |
606 | | Commit | Author | Desc |
607 | | :----- | :------| :--- |
608 | | [bf4fc77](https://github.com/songchenwen/nanopi-r2s/commit/bf4fc77) | songchenwen | Fix distfeeds |
609 | | [8dbef0a](https://github.com/songchenwen/nanopi-r2s/commit/8dbef0a) | songchenwen | Delete Some VPN apps from FwF |
610 | | [e8fef50](https://github.com/songchenwen/nanopi-r2s/commit/e8fef50) | songchenwen | Not Recommend FwF |
611 |
612 |
613 | #### FriendlyWRT [337ed97..c2699cd](https://github.com/friendlyarm/friendlywrt/compare/337ed97..c2699cd)
614 |
615 |
616 | | Commit | Author | Desc |
617 | | :----- | :------| :--- |
618 | | [c2699cd44b](https://github.com/friendlyarm/friendlywrt/commit/c2699cd44b) | Lawrence-Tang | Re-enable ipv6 |
619 | | [f2c4d64a95](https://github.com/friendlyarm/friendlywrt/commit/f2c4d64a95) | Lawrence-Tang | Revert "set default theme to argon" |
620 |
621 |
622 |
623 |
624 | --------------
625 |
626 | ## FriendlyWRT-2020-04-11-986d717
627 |
628 | #### Builder [709f14c..986d717](https://github.com/songchenwen/nanopi-r2s/compare/709f14c..986d717)
629 |
630 |
631 | | Commit | Author | Desc |
632 | | :----- | :------| :--- |
633 | | [986d717](https://github.com/songchenwen/nanopi-r2s/commit/986d717) | songchenwen | Add luci-app-serverchan |
634 | | [db6fb00](https://github.com/songchenwen/nanopi-r2s/commit/db6fb00) | songchenwen | Default Configs in Read Me |
635 | | [7a72ee2](https://github.com/songchenwen/nanopi-r2s/commit/7a72ee2) | songchenwen | Remove Docker from FwF |
636 |
637 |
638 |
639 |
640 | --------------
641 |
642 | ## FriendlyWRT-2020-04-10-709f14c
643 |
644 | #### Builder [676db71..709f14c](https://github.com/songchenwen/nanopi-r2s/compare/676db71..709f14c)
645 |
646 |
647 | | Commit | Author | Desc |
648 | | :----- | :------| :--- |
649 | | [709f14c](https://github.com/songchenwen/nanopi-r2s/commit/709f14c) | songchenwen | Revert "FriendlyWrt Unlock CPU 1.5Ghz" |
650 | | [6765452](https://github.com/songchenwen/nanopi-r2s/commit/6765452) | songchenwen | Add FriendlyWRT with Features |
651 |
652 |
653 | #### FriendlyWRT [1bedd70..337ed97](https://github.com/friendlyarm/friendlywrt/compare/1bedd70..337ed97)
654 |
655 |
656 | | Commit | Author | Desc |
657 | | :----- | :------| :--- |
658 | | [337ed979d3](https://github.com/friendlyarm/friendlywrt/commit/337ed979d3) | Lawrence-Tang | set default theme to argon |
659 | | [a51380eaea](https://github.com/friendlyarm/friendlywrt/commit/a51380eaea) | Lawrence-Tang | update luci |
660 |
661 |
662 |
663 |
664 | --------------
665 |
666 | ## FriendlyWRT-2020-04-10-676db71
667 |
668 | #### Builder [f176cc1..676db71](https://github.com/songchenwen/nanopi-r2s/compare/f176cc1..676db71)
669 |
670 |
671 | | Commit | Author | Desc |
672 | | :----- | :------| :--- |
673 | | [676db71](https://github.com/songchenwen/nanopi-r2s/commit/676db71) | songchenwen | FriendlyWrt Unlock CPU 1.5Ghz |
674 | | [932d62a](https://github.com/songchenwen/nanopi-r2s/commit/932d62a) | songchenwen | Update README |
675 | | [78a07e4](https://github.com/songchenwen/nanopi-r2s/commit/78a07e4) | songchenwen | Add Some Performance Test |
676 |
677 |
678 |
679 |
680 | --------------
681 |
682 | ## FriendlyWRT-2020-04-09-f176cc1
683 |
684 | #### Builder [ef49a2a..f176cc1](https://github.com/songchenwen/nanopi-r2s/compare/ef49a2a..f176cc1)
685 |
686 |
687 | | Commit | Author | Desc |
688 | | :----- | :------| :--- |
689 | | [f176cc1](https://github.com/songchenwen/nanopi-r2s/commit/f176cc1) | songchenwen | Add CPU Temperature to NetData |
690 |
691 |
692 |
693 |
694 | --------------
695 |
696 | ## FriendlyWRT-2020-04-09-ef49a2a
697 |
698 | #### Builder [f2366d2..ef49a2a](https://github.com/songchenwen/nanopi-r2s/compare/f2366d2..ef49a2a)
699 |
700 |
701 | | Commit | Author | Desc |
702 | | :----- | :------| :--- |
703 | | [ef49a2a](https://github.com/songchenwen/nanopi-r2s/commit/ef49a2a) | songchenwen | Add luci-app-wrtbwmon |
704 | | [3aea628](https://github.com/songchenwen/nanopi-r2s/commit/3aea628) | songchenwen | Fix Kernel Patch |
705 |
706 |
707 |
708 |
709 | --------------
710 |
711 | ## FriendlyWRT-2020-04-09-f2366d2
712 |
713 | #### Builder [433ce5a..f2366d2](https://github.com/songchenwen/nanopi-r2s/compare/433ce5a..f2366d2)
714 |
715 |
716 | | Commit | Author | Desc |
717 | | :----- | :------| :--- |
718 | | [f2366d2](https://github.com/songchenwen/nanopi-r2s/commit/f2366d2) | songchenwen | Reduce Update Frequency |
719 | | [7a54708](https://github.com/songchenwen/nanopi-r2s/commit/7a54708) | songchenwen | Add Version Indicator to FriendlyWRT |
720 | | [8e6d371](https://github.com/songchenwen/nanopi-r2s/commit/8e6d371) | songchenwen | Update FriendlyWRT |
721 |
722 |
723 |
724 |
725 | --------------
726 |
727 | ## FriendlyWRT-2020-04-08-433ce5a
728 |
729 | #### Builder [d5cb2cd..433ce5a](https://github.com/songchenwen/nanopi-r2s/compare/d5cb2cd..433ce5a)
730 |
731 |
732 | | Commit | Author | Desc |
733 | | :----- | :------| :--- |
734 | | [433ce5a](https://github.com/songchenwen/nanopi-r2s/commit/433ce5a) | songchenwen | Add Clash Country.mmdb to Image |
735 | | [f770492](https://github.com/songchenwen/nanopi-r2s/commit/f770492) | songchenwen | Add LOL |
736 |
737 |
738 | #### Lean [cef6bff..dc875de](https://github.com/coolsnowwolf/lede/compare/cef6bff..dc875de)
739 |
740 |
741 | | Commit | Author | Desc |
742 | | :----- | :------| :--- |
743 | | [dc875de0](https://github.com/coolsnowwolf/lede/commit/dc875de0) | AmadeusGhost | kernel: netdev: add missing config for mlx5 driver (#4228) |
744 | | [b6b408c8](https://github.com/coolsnowwolf/lede/commit/b6b408c8) | lean | Version bump to R20.4.8 |
745 | | [6d92b607](https://github.com/coolsnowwolf/lede/commit/6d92b607) | lean | luci-app-music-remote-center: add place holder |
746 | | [25b01424](https://github.com/coolsnowwolf/lede/commit/25b01424) | lean | workflows: add dependenc host build |
747 |
748 |
749 | #### ScwPackage [35cc95f..49d75c3](https://github.com/songchenwen/openwrt-package/compare/35cc95f..49d75c3)
750 |
751 |
752 | | Commit | Author | Desc |
753 | | :----- | :------| :--- |
754 | | [964834569](https://github.com/songchenwen/openwrt-package/commit/964834569) | ShanStone | Fix chinadns-ng when using default dns (#408) |
755 |
756 |
757 |
758 |
759 | --------------
760 |
761 | ## FriendlyWRT-2020-04-08-d5cb2cd
762 |
763 | #### Builder [f2031dc..d5cb2cd](https://github.com/songchenwen/nanopi-r2s/compare/f2031dc..d5cb2cd)
764 |
765 |
766 | | Commit | Author | Desc |
767 | | :----- | :------| :--- |
768 | | [d5cb2cd](https://github.com/songchenwen/nanopi-r2s/commit/d5cb2cd) | songchenwen | Add Some Openwrt 5.4 Kernel Patches to Lean |
769 |
770 |
771 | #### Lean [2a1f9e6..cef6bff](https://github.com/coolsnowwolf/lede/compare/2a1f9e6..cef6bff)
772 |
773 |
774 | | Commit | Author | Desc |
775 | | :----- | :------| :--- |
776 | | [cef6bffa](https://github.com/coolsnowwolf/lede/commit/cef6bffa) | ricksuzade-maker | Bump wireguard to 1.0.20200401 (#4217) |
777 | | [a1b538a9](https://github.com/coolsnowwolf/lede/commit/a1b538a9) | lean | ipq40xx: switch to ath10k-ct |
778 | | [f095b225](https://github.com/coolsnowwolf/lede/commit/f095b225) | AmadeusGhost | bcm27xx: rpi4: enable wifi in first boot (#4220) |
779 | | [c3c418cd](https://github.com/coolsnowwolf/lede/commit/c3c418cd) | lean | luci-app-cifs-mount: add SMB/CIFS mount luci |
780 |
781 |
782 | #### LeanPackage [a6f3a70..f35494f](https://github.com/coolsnowwolf/packages/compare/a6f3a70..f35494f)
783 |
784 |
785 | | Commit | Author | Desc |
786 | | :----- | :------| :--- |
787 | | [f35494fd7](https://github.com/coolsnowwolf/packages/commit/f35494fd7) | lean | minidlna: delay boot |
788 |
789 |
790 |
791 |
792 | --------------
793 |
794 | ## FriendlyWRT-2020-04-07-f2031dc
795 |
796 | #### Builder [67e97af..f2031dc](https://github.com/songchenwen/nanopi-r2s/compare/67e97af..f2031dc)
797 |
798 |
799 | | Commit | Author | Desc |
800 | | :----- | :------| :--- |
801 | | [f2031dc](https://github.com/songchenwen/nanopi-r2s/commit/f2031dc) | songchenwen | Pack Passwall |
802 | | [a3d3f53](https://github.com/songchenwen/nanopi-r2s/commit/a3d3f53) | songchenwen | Upstream Full Cone Nat Change |
803 |
804 |
805 | #### Lean [b622523..2a1f9e6](https://github.com/coolsnowwolf/lede/compare/b622523..2a1f9e6)
806 |
807 |
808 | | Commit | Author | Desc |
809 | | :----- | :------| :--- |
810 | | [2a1f9e6f](https://github.com/coolsnowwolf/lede/commit/2a1f9e6f) | lean | target: add luci-app-music-remote-center |
811 |
812 |
813 | #### LeanPackage [22d1163..a6f3a70](https://github.com/coolsnowwolf/packages/compare/22d1163..a6f3a70)
814 |
815 |
816 | | Commit | Author | Desc |
817 | | :----- | :------| :--- |
818 | | [a6f3a702c](https://github.com/coolsnowwolf/packages/commit/a6f3a702c) | lean | minidlna:add webm/rm/rmvb format support |
819 | | [81b20fd92](https://github.com/coolsnowwolf/packages/commit/81b20fd92) | lean | minidlna: fix depence with ffmpeg |
820 |
821 |
822 | #### ScwPackage [1583d32..35cc95f](https://github.com/songchenwen/openwrt-package/compare/1583d32..35cc95f)
823 |
824 |
825 | | Commit | Author | Desc |
826 | | :----- | :------| :--- |
827 | | [af5a68836](https://github.com/songchenwen/openwrt-package/commit/af5a68836) | xiaorouji | passwall: chinadns-ng use fair mode |
828 | | [f1352e26a](https://github.com/songchenwen/openwrt-package/commit/f1352e26a) | xiaorouji | chinadns-ng: bump 1.0-bate.22 |
829 |
830 |
831 |
832 |
833 | --------------
834 |
835 | ## FriendlyWRT-2020-04-07-67e97af
836 |
837 | #### Builder [21b1d35..67e97af](https://github.com/songchenwen/nanopi-r2s/compare/21b1d35..67e97af)
838 |
839 |
840 | | Commit | Author | Desc |
841 | | :----- | :------| :--- |
842 | | [67e97af](https://github.com/songchenwen/nanopi-r2s/commit/67e97af) | songchenwen | Add a Test Build with Openwrt Patches for octeontx |
843 |
844 |
845 | #### Lean [7e22d61..b622523](https://github.com/coolsnowwolf/lede/compare/7e22d61..b622523)
846 |
847 |
848 | | Commit | Author | Desc |
849 | | :----- | :------| :--- |
850 | | [b6225235](https://github.com/coolsnowwolf/lede/commit/b6225235) | AmadeusGhost | ramips: improve support for HiWiFi HC5962 (#4195) |
851 | | [e3cfa6d1](https://github.com/coolsnowwolf/lede/commit/e3cfa6d1) | R3pl4c3r | README.md: fix compile dependency error (#4201) |
852 |
853 |
854 |
855 |
856 | --------------
857 |
858 | ## FriendlyWRT-2020-04-06-21b1d35
859 |
860 | #### Builder [6ca7b53..21b1d35](https://github.com/songchenwen/nanopi-r2s/compare/6ca7b53..21b1d35)
861 |
862 |
863 | | Commit | Author | Desc |
864 | | :----- | :------| :--- |
865 | | [21b1d35](https://github.com/songchenwen/nanopi-r2s/commit/21b1d35) | songchenwen | Clean Unused SRCs Before Building for Disk Space |
866 | | [8b94319](https://github.com/songchenwen/nanopi-r2s/commit/8b94319) | songchenwen | Fix File System Permissions |
867 | | [4261ef8](https://github.com/songchenwen/nanopi-r2s/commit/4261ef8) | 宋辰文 | Add luci-app-nfs |
868 |
869 |
870 | #### Lean [5e9e8d8..7e22d61](https://github.com/coolsnowwolf/lede/compare/5e9e8d8..7e22d61)
871 |
872 |
873 | | Commit | Author | Desc |
874 | | :----- | :------| :--- |
875 | | [7e22d613](https://github.com/coolsnowwolf/lede/commit/7e22d613) | lean | luci-app-music-remote-center: add zh-cn and fix path settings |
876 | | [7b250dee](https://github.com/coolsnowwolf/lede/commit/7b250dee) | lean | luci-app-music-remote-center: DAAP remote control music server for iOS/Android |
877 | | [7930a037](https://github.com/coolsnowwolf/lede/commit/7930a037) | Chuck | default-settings: fix string replace (#4189) |
878 |
879 |
880 | #### ScwPackage [3fa6c01..1583d32](https://github.com/songchenwen/openwrt-package/compare/3fa6c01..1583d32)
881 |
882 |
883 | | Commit | Author | Desc |
884 | | :----- | :------| :--- |
885 | | [950a544aa](https://github.com/songchenwen/openwrt-package/commit/950a544aa) | Lienol | passwall: optimize subscribe |
886 | | [5a47a8a57](https://github.com/songchenwen/openwrt-package/commit/5a47a8a57) | ShanStone | passwall: Fix blacklist by default proxy (#400) |
887 |
888 |
889 |
890 |
891 | --------------
892 |
893 | ## FriendlyWRT-2020-04-05-6ca7b53
894 |
895 | #### Builder [70a1021..6ca7b53](https://github.com/songchenwen/nanopi-r2s/compare/70a1021..6ca7b53)
896 |
897 |
898 | | Commit | Author | Desc |
899 | | :----- | :------| :--- |
900 | | [6ca7b53](https://github.com/songchenwen/nanopi-r2s/commit/6ca7b53) | songchenwen | Add FriendlyWRT Build |
901 |
902 |
903 | #### Lean [d5dc714..5e9e8d8](https://github.com/coolsnowwolf/lede/compare/d5dc714..5e9e8d8)
904 |
905 |
906 | | Commit | Author | Desc |
907 | | :----- | :------| :--- |
908 | | [5e9e8d85](https://github.com/coolsnowwolf/lede/commit/5e9e8d85) | Aes64X | package:add nfs mount luci (#4171) |
909 | | [08637d82](https://github.com/coolsnowwolf/lede/commit/08637d82) | AmadeusGhost | ar71xx: fix alloc_page_frag issue (#4184) |
910 | | [91be31e2](https://github.com/coolsnowwolf/lede/commit/91be31e2) | CN_SZTL | mac80211: fix target name (#4176) |
911 |
912 |
913 |
914 |
915 | --------------
916 |
--------------------------------------------------------------------------------
/FriendlyWRT/README.md:
--------------------------------------------------------------------------------
1 | # FriendlyWRT
2 |
3 | 以官方固件为基础, 添加 Lean 的包
4 |
5 | [下载地址](https://github.com/songchenwen/nanopi-r2s/releases/download/FriendlyWRT-2020-07-04-935c67b/FriendlyWRT-2020-07-04-935c67b-ROM.zip)
6 |
7 | [改动记录](CHANGELOG.md)
8 |
--------------------------------------------------------------------------------
/FriendlyWRT/repo_used_path.env:
--------------------------------------------------------------------------------
1 | Lean=package/lean/luci-app-autoreboot package/lean/luci-app-arpbind package/lean/luci-app-netdata package/lean/luci-app-nfs package/lean/luci-app-vlmcsd package/lean/luci-app-accesscontrol package/lean/luci-app-filetransfer
2 | LeanLuci=applications/luci-app-ddns applications/luci-app-watchcat applications/luci-app-wol modules
3 | LeanPackage=utils/collectd utils/bash utils/watchcat
4 | ScwPackage=lienol/luci-app-passwall lienol/luci-app-ramfree lienol/luci-theme-argon-dark-mod package
5 | OpenWrt=package/libs target/linux/generic target/linux/octeontx/patches-5.4
--------------------------------------------------------------------------------
/FriendlyWRT/status.env:
--------------------------------------------------------------------------------
1 | OpenWrtHash=b123ffd
2 | ServerChanHash=db547c1
3 | BuilderHash=935c67b
4 | FriendlyWRTHash=b2b9dc9
5 | ArgonHash=d4b2541
6 | LeanLuciHash=e5309d2
7 | KernelHash=bfe05f0
8 | AdguardHomeHash=37fdf50
9 | LeanHash=90e48a3
10 | LeanPackageHash=f220509
11 | ScwPackageHash=b3d72c7
12 |
--------------------------------------------------------------------------------
/FriendlyWRTwPatches/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## FriendlyWRTwPatches-2020-04-09-433ce5a
2 |
3 | #### Lean [dc875de..ae7a5d7](https://github.com/coolsnowwolf/lede/compare/dc875de..ae7a5d7)
4 |
5 |
6 | | Commit | Author | Desc |
7 | | :----- | :------| :--- |
8 | | [ae7a5d70](https://github.com/coolsnowwolf/lede/commit/ae7a5d70) | dongjuanyong | luci-app-ssr-plus: OpenWrt SNAPSHOT compatibility (#4154) |
9 | | [df49785a](https://github.com/coolsnowwolf/lede/commit/df49785a) | lean | openwrt-ci.yml: update |
10 | | [12b558bb](https://github.com/coolsnowwolf/lede/commit/12b558bb) | lean | amule: dyn linked |
11 | | [7bf824b1](https://github.com/coolsnowwolf/lede/commit/7bf824b1) | lean | qBittorrent: bump to v4.2.3 |
12 |
13 |
14 |
15 |
16 | --------------
17 |
18 | ## FriendlyWRTwPatches-2020-04-08-433ce5a
19 |
20 | #### Builder [d5cb2cd..433ce5a](https://github.com/songchenwen/nanopi-r2s/compare/d5cb2cd..433ce5a)
21 |
22 |
23 | | Commit | Author | Desc |
24 | | :----- | :------| :--- |
25 | | [433ce5a](https://github.com/songchenwen/nanopi-r2s/commit/433ce5a) | songchenwen | Add Clash Country.mmdb to Image |
26 | | [f770492](https://github.com/songchenwen/nanopi-r2s/commit/f770492) | songchenwen | Add LOL |
27 |
28 |
29 | #### Lean [cef6bff..dc875de](https://github.com/coolsnowwolf/lede/compare/cef6bff..dc875de)
30 |
31 |
32 | | Commit | Author | Desc |
33 | | :----- | :------| :--- |
34 | | [dc875de0](https://github.com/coolsnowwolf/lede/commit/dc875de0) | AmadeusGhost | kernel: netdev: add missing config for mlx5 driver (#4228) |
35 | | [b6b408c8](https://github.com/coolsnowwolf/lede/commit/b6b408c8) | lean | Version bump to R20.4.8 |
36 | | [6d92b607](https://github.com/coolsnowwolf/lede/commit/6d92b607) | lean | luci-app-music-remote-center: add place holder |
37 | | [25b01424](https://github.com/coolsnowwolf/lede/commit/25b01424) | lean | workflows: add dependenc host build |
38 |
39 |
40 | #### ScwPackage [35cc95f..49d75c3](https://github.com/songchenwen/openwrt-package/compare/35cc95f..49d75c3)
41 |
42 |
43 | | Commit | Author | Desc |
44 | | :----- | :------| :--- |
45 | | [964834569](https://github.com/songchenwen/openwrt-package/commit/964834569) | ShanStone | Fix chinadns-ng when using default dns (#408) |
46 |
47 |
48 |
49 |
50 | --------------
51 |
52 | ## FriendlyWRTwPatches-2020-04-08-d5cb2cd
53 |
54 | #### Builder [f2031dc..d5cb2cd](https://github.com/songchenwen/nanopi-r2s/compare/f2031dc..d5cb2cd)
55 |
56 |
57 | | Commit | Author | Desc |
58 | | :----- | :------| :--- |
59 | | [d5cb2cd](https://github.com/songchenwen/nanopi-r2s/commit/d5cb2cd) | songchenwen | Add Some Openwrt 5.4 Kernel Patches to Lean |
60 |
61 |
62 | #### Lean [2a1f9e6..cef6bff](https://github.com/coolsnowwolf/lede/compare/2a1f9e6..cef6bff)
63 |
64 |
65 | | Commit | Author | Desc |
66 | | :----- | :------| :--- |
67 | | [cef6bffa](https://github.com/coolsnowwolf/lede/commit/cef6bffa) | ricksuzade-maker | Bump wireguard to 1.0.20200401 (#4217) |
68 | | [a1b538a9](https://github.com/coolsnowwolf/lede/commit/a1b538a9) | lean | ipq40xx: switch to ath10k-ct |
69 | | [f095b225](https://github.com/coolsnowwolf/lede/commit/f095b225) | AmadeusGhost | bcm27xx: rpi4: enable wifi in first boot (#4220) |
70 | | [c3c418cd](https://github.com/coolsnowwolf/lede/commit/c3c418cd) | lean | luci-app-cifs-mount: add SMB/CIFS mount luci |
71 |
72 |
73 | #### LeanPackage [a6f3a70..f35494f](https://github.com/coolsnowwolf/packages/compare/a6f3a70..f35494f)
74 |
75 |
76 | | Commit | Author | Desc |
77 | | :----- | :------| :--- |
78 | | [f35494fd7](https://github.com/coolsnowwolf/packages/commit/f35494fd7) | lean | minidlna: delay boot |
79 |
80 |
81 |
82 |
83 | --------------
84 |
85 | ## FriendlyWRTwPatches-2020-04-07-f2031dc
86 |
87 | #### Builder [67e97af..f2031dc](https://github.com/songchenwen/nanopi-r2s/compare/67e97af..f2031dc)
88 |
89 |
90 | | Commit | Author | Desc |
91 | | :----- | :------| :--- |
92 | | [f2031dc](https://github.com/songchenwen/nanopi-r2s/commit/f2031dc) | songchenwen | Pack Passwall |
93 | | [a3d3f53](https://github.com/songchenwen/nanopi-r2s/commit/a3d3f53) | songchenwen | Upstream Full Cone Nat Change |
94 |
95 |
96 | #### Lean [b622523..2a1f9e6](https://github.com/coolsnowwolf/lede/compare/b622523..2a1f9e6)
97 |
98 |
99 | | Commit | Author | Desc |
100 | | :----- | :------| :--- |
101 | | [2a1f9e6f](https://github.com/coolsnowwolf/lede/commit/2a1f9e6f) | lean | target: add luci-app-music-remote-center |
102 |
103 |
104 | #### LeanPackage [22d1163..a6f3a70](https://github.com/coolsnowwolf/packages/compare/22d1163..a6f3a70)
105 |
106 |
107 | | Commit | Author | Desc |
108 | | :----- | :------| :--- |
109 | | [a6f3a702c](https://github.com/coolsnowwolf/packages/commit/a6f3a702c) | lean | minidlna:add webm/rm/rmvb format support |
110 | | [81b20fd92](https://github.com/coolsnowwolf/packages/commit/81b20fd92) | lean | minidlna: fix depence with ffmpeg |
111 |
112 |
113 | #### ScwPackage [1583d32..35cc95f](https://github.com/songchenwen/openwrt-package/compare/1583d32..35cc95f)
114 |
115 |
116 | | Commit | Author | Desc |
117 | | :----- | :------| :--- |
118 | | [af5a68836](https://github.com/songchenwen/openwrt-package/commit/af5a68836) | xiaorouji | passwall: chinadns-ng use fair mode |
119 | | [f1352e26a](https://github.com/songchenwen/openwrt-package/commit/f1352e26a) | xiaorouji | chinadns-ng: bump 1.0-bate.22 |
120 |
121 |
122 |
123 |
124 | --------------
125 |
126 | ## FriendlyWRTwPatches-2020-04-06-67e97af
127 |
128 | #### Builder [21b1d35..67e97af](https://github.com/songchenwen/nanopi-r2s/compare/21b1d35..67e97af)
129 |
130 |
131 | | Commit | Author | Desc |
132 | | :----- | :------| :--- |
133 | | [67e97af](https://github.com/songchenwen/nanopi-r2s/commit/67e97af) | songchenwen | Add a Test Build with Openwrt Patches for octeontx |
134 |
135 |
136 | #### Lean [7e22d61..b622523](https://github.com/coolsnowwolf/lede/compare/7e22d61..b622523)
137 |
138 |
139 | | Commit | Author | Desc |
140 | | :----- | :------| :--- |
141 | | [b6225235](https://github.com/coolsnowwolf/lede/commit/b6225235) | AmadeusGhost | ramips: improve support for HiWiFi HC5962 (#4195) |
142 | | [e3cfa6d1](https://github.com/coolsnowwolf/lede/commit/e3cfa6d1) | R3pl4c3r | README.md: fix compile dependency error (#4201) |
143 |
144 |
145 |
146 |
147 | --------------
148 |
--------------------------------------------------------------------------------
/FriendlyWRTwPatches/status.env:
--------------------------------------------------------------------------------
1 | BuilderHash=433ce5a
2 | FriendlyWRTHash=1bedd70
3 | ArgonHash=3e41f5b
4 | LeanLuciHash=cebe120
5 | AdguardHomeHash=37fdf50
6 | LeanHash=ae7a5d7
7 | LeanPackageHash=f35494f
8 | ScwPackageHash=49d75c3
9 |
--------------------------------------------------------------------------------
/FriendlyWRTwithFlowOffload/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## FriendlyWRTwithFlowOffload-2020-04-20-9b56dcc
2 |
3 | #### Builder [9a6851a..9b56dcc](https://github.com/songchenwen/nanopi-r2s/compare/9a6851a..9b56dcc)
4 |
5 |
6 | | Commit | Author | Desc |
7 | | :----- | :------| :--- |
8 | | [9b56dcc](https://github.com/songchenwen/nanopi-r2s/commit/9b56dcc) | songchenwen | Add Test Build with FlowOffload |
9 |
10 |
11 |
12 |
13 | --------------
14 |
15 |
16 |
--------------------------------------------------------------------------------
/FriendlyWRTwithFlowOffload/minimal_offload.seed:
--------------------------------------------------------------------------------
1 | CONFIG_AUTOREMOVE=y
2 | CONFIG_BUILD_PATENTED=y
3 | CONFIG_BRCMFMAC_SDIO=y
4 | CONFIG_IMAGEOPT=y
5 | CONFIG_KERNEL_AIO=y
6 | CONFIG_JSON_ADD_IMAGE_INFO=y
7 | CONFIG_KERNEL_ARM_PMU=y
8 | CONFIG_KERNEL_BLK_CGROUP=y
9 | CONFIG_KERNEL_BLK_DEV_THROTTLING=y
10 | CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y
11 | CONFIG_KERNEL_KALLSYMS=y
12 | CONFIG_KERNEL_PERF_EVENTS=y
13 | CONFIG_KERNEL_CGROUPS=y
14 | CONFIG_KERNEL_CGROUP_CPUACCT=y
15 | CONFIG_KERNEL_CGROUP_DEVICE=y
16 | CONFIG_KERNEL_CGROUP_FREEZER=y
17 | CONFIG_KERNEL_CGROUP_PIDS=y
18 | CONFIG_KERNEL_CGROUP_SCHED=y
19 | CONFIG_KERNEL_MEMCG=y
20 | CONFIG_KERNEL_MEMCG_KMEM=y
21 | CONFIG_KERNEL_MM_OWNER=y
22 | CONFIG_KERNEL_NETPRIO_CGROUP=y
23 | CONFIG_KERNEL_NET_CLS_CGROUP=y
24 | CONFIG_KERNEL_CPUSETS=y
25 | CONFIG_KERNEL_FAIR_GROUP_SCHED=y
26 | CONFIG_KERNEL_FANOTIFY=y
27 | CONFIG_KERNEL_FHANDLE=y
28 | CONFIG_KERNEL_FREEZER=y
29 | CONFIG_KERNEL_RESOURCE_COUNTERS=y
30 | CONFIG_KERNEL_RT_GROUP_SCHED=y
31 | CONFIG_LUCI_LANG_en=y
32 | CONFIG_LUCI_LANG_zh-cn=y
33 | CONFIG_LUCI_LANG_zh-tw=y
34 | CONFIG_PACKAGE_libustream-openssl=y
35 | CONFIG_PACKAGE_ca-bundle=y
36 | CONFIG_PACKAGE_ca-certificates=y
37 | CONFIG_PACKAGE_bash=y
38 | CONFIG_PACKAGE_wget=y
39 | CONFIG_PACKAGE_triggerhappy=y
40 | CONFIG_PACKAGE_uboot-envtools=y
41 | CONFIG_PACKAGE_usb-modeswitch=y
42 | CONFIG_PACKAGE_kmod-mmc=y
43 | CONFIG_PACKAGE_kmod-ikconfig=y
44 | CONFIG_PACKAGE_kmod-tun=y
45 | CONFIG_PACKAGE_kmod-usb-net=y
46 | CONFIG_PACKAGE_kmod-usb-net-rtl8150=y
47 | CONFIG_PACKAGE_kmod-usb-net-rtl8152=y
48 | CONFIG_PACKAGE_iw=y
49 | CONFIG_PACKAGE_iwinfo=y
50 | CONFIG_PACKAGE_hostapd=y
51 | CONFIG_PACKAGE_hostapd-basic=y
52 | CONFIG_PACKAGE_hostapd-utils=y
53 | CONFIG_PACKAGE_wpad=y
54 | CONFIG_PACKAGE_wpad-mini=y
55 | CONFIG_PACKAGE_wpa-supplicant=y
56 | CONFIG_DRIVER_11N_SUPPORT=y
57 | CONFIG_DRIVER_11AC_SUPPORT=y
58 | CONFIG_DRIVER_11W_SUPPORT=y
59 | CONFIG_PACKAGE_kmod-brcmfmac=y
60 | CONFIG_PACKAGE_kmod-cfg80211=y
61 | CONFIG_PACKAGE_ipv6helper=y
62 | CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y
63 | CONFIG_OPENSSL_ENGINE_BUILTIN=y
64 | CONFIG_OPENSSL_ENGINE_BUILTIN_AFALG=y
65 | CONFIG_OPENSSL_OPTIMIZE_SPEED=y
66 | CONFIG_OPENSSL_WITH_DTLS=y
67 | CONFIG_OPENSSL_WITH_EC2M=y
68 | CONFIG_OPENSSL_WITH_NPN=y
69 | # CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO is not set
70 | # CONFIG_PACKAGE_kmod-cryptodev is not set
71 | # CONFIG_PACKAGE_libopenssl-devcrypto is not set
72 | CONFIG_LIBSODIUM_MINIMAL=y
73 | CONFIG_PACKAGE_kmod-ipt-offload=y
74 | CONFIG_PACKAGE_kmod-nft-offload=y
75 | CONFIG_PACKAGE_collectd-mod-thermal=y
76 | CONFIG_PACKAGE_collectd-mod-uptime=y
77 | CONFIG_PACKAGE_collectd-mod-wireless=y
78 | CONFIG_PACKAGE_collectd=y
79 | CONFIG_PACKAGE_curl=y
80 | CONFIG_PACKAGE_lrzsz=y
81 | CONFIG_PACKAGE_nano=y
82 | CONFIG_PACKAGE_bash=y
83 | CONFIG_PACKAGE_resolveip=y
84 | CONFIG_PACKAGE_sudo=y
85 | CONFIG_PACKAGE_tcping=y
86 | CONFIG_PACKAGE_autocore=y
87 | CONFIG_PACKAGE_htop=y
88 | CONFIG_PACKAGE_diffutils=y
89 | CONFIG_PACKAGE_vim-fuller=y
90 | CONFIG_PACKAGE_pv=y
91 | CONFIG_PACKAGE_pigz=y
92 | CONFIG_PACKAGE_unzip=y
93 | CONFIG_PACKAGE_ethtool=y
94 | CONFIG_PACKAGE_coreutils-nohup=y
95 | CONFIG_PACKAGE_coreutils-timeout=y
96 | CONFIG_PACKAGE_luci-app-opkg=y
97 | CONFIG_PACKAGE_iptables-mod-extra=y
98 | CONFIG_PACKAGE_kmod-ipt-extra=y
99 | CONFIG_PACKAGE_libltdl=y
100 | CONFIG_PACKAGE_losetup=y
101 | CONFIG_PACKAGE_zstd=y
102 | CONFIG_PACKAGE_brook=y
103 | CONFIG_PACKAGE_zlib=y
104 | CONFIG_PACKAGE_chinadns-ng=y
105 | CONFIG_PACKAGE_haproxy=y
106 | CONFIG_PACKAGE_kcptun-client=y
107 | CONFIG_PACKAGE_luci-app-upnp=y
108 | CONFIG_PACKAGE_luci-app-accesscontrol=y
109 | CONFIG_PACKAGE_luci-app-arpbind=y
110 | CONFIG_PACKAGE_luci-app-autoreboot=y
111 | CONFIG_PACKAGE_luci-app-ddns=y
112 | CONFIG_PACKAGE_ddns-scripts_cloudflare.com-v4=y
113 | CONFIG_PACKAGE_luci-app-filetransfer=y
114 | CONFIG_PACKAGE_luci-app-firewall=y
115 | CONFIG_PACKAGE_luci-app-ramfree=y
116 | CONFIG_PACKAGE_luci-app-netdata=y
117 | CONFIG_PACKAGE_luci-app-vlmcsd=y
118 | CONFIG_PACKAGE_luci-app-wol=y
119 | CONFIG_PACKAGE_luci-app-serverchan=y
120 | CONFIG_PACKAGE_luci-app-fileassistant=y
121 | CONFIG_PACKAGE_luci-app-r2sflasher=y
122 | CONFIG_PACKAGE_luci-app-passwall=y
123 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Brook=y
124 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks=y
125 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_socks=y
126 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_socks=y
127 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan=y
128 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_kcptun=y
129 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_simple-obfs=y
130 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_v2ray-plugin=y
131 | CONFIG_PACKAGE_v2ray-plugin=y
132 | CONFIG_PACKAGE_v2ray=y
133 | CONFIG_PACKAGE_luci-app-flowoffload=y
134 | # CONFIG_V2RAY_COMPRESS_GOPROXY is not set
135 | # CONFIG_V2RAY_JSON_V2CTL is not set
136 | CONFIG_V2RAY_JSON_INTERNAL=y
137 | # CONFIG_V2RAY_JSON_NONE is not set
138 | CONFIG_V2RAY_EXCLUDE_V2CTL=y
139 | CONFIG_V2RAY_EXCLUDE_ASSETS=y
140 | # CONFIG_V2RAY_COMPRESS_UPX is not set
141 | CONFIG_V2RAY_DISABLE_NONE=y
142 | # CONFIG_V2RAY_DISABLE_CUSTOM is not set
143 | CONFIG_PACKAGE_luci-app-adguardhome=y
144 | CONFIG_PACKAGE_luci-theme-argon=y
145 | CONFIG_PACKAGE_luci-theme-argon-dark-mod=y
146 | # CONFIG_PACKAGE_samba36-server is not set
147 | # CONFIG_PACKAGE_autosamba is not set
148 | # CONFIG_PACKAGE_luci-app-samba is not set
149 | # CONFIG_PACKAGE_wsdd2 is not set
150 | # CONFIG_PACKAGE_luci-app-adbyby-plus is not set
151 | # CONFIG_PACKAGE_luci-app-ipsec-vpnd is not set
152 | # CONFIG_PACKAGE_luci-app-wrtbwmon is not set
153 | # CONFIG_PACKAGE_luci-app-nlbwmon is not set
154 | # CONFIG_PACKAGE_luci-app-ssr-plus is not set
155 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Redsocks2 is not set
156 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Server is not set
157 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Trojan is not set
158 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray is not set
159 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray_plugin is not set
160 | # CONFIG_PACKAGE_luci-app-unblockmusic is not set
161 | # CONFIG_PACKAGE_luci-app-vsftpd is not set
162 | # CONFIG_PACKAGE_luci-app-xlnetacc is not set
163 | # CONFIG_PACKAGE_luci-app-zerotier is not set
164 | # CONFIG_PACKAGE_iptables-mod-ipsec is not set
165 | # CONFIG_PACKAGE_kmod-ipt-ipsec is not set
166 | # CONFIG_PACKAGE_kmod-iptunnel6 is not set
167 | # CONFIG_PACKAGE_kmod-nf-conntrack-netlink is not set
168 | # CONFIG_PACKAGE_libcares is not set
169 | # CONFIG_PACKAGE_libevent2 is not set
170 | # CONFIG_PACKAGE_libgmp is not set
171 | # CONFIG_PACKAGE_libhttp-parser is not set
172 | # CONFIG_PACKAGE_libnatpmp is not set
173 | # CONFIG_PACKAGE_libnet-1.2.x is not set
174 | # CONFIG_PACKAGE_libnghttp2 is not set
175 | # CONFIG_PACKAGE_libpcap is not set
176 | # CONFIG_PACKAGE_libuv is not set
177 | # CONFIG_PACKAGE_kmod-ipsec is not set
178 | # CONFIG_PACKAGE_microsocks is not set
179 | # CONFIG_PACKAGE_nlbwmon is not set
180 | # CONFIG_PACKAGE_node is not set
181 | # CONFIG_PACKAGE_redsocks2 is not set
182 | # CONFIG_PACKAGE_shadowsocksr-libev-server is not set
183 | # CONFIG_PACKAGE_strongswan is not set
184 | # CONFIG_PACKAGE_strongswan-charon is not set
185 | # CONFIG_PACKAGE_strongswan-ipsec is not set
186 | # CONFIG_PACKAGE_strongswan-minimal is not set
187 | # CONFIG_PACKAGE_strongswan-mod-aes is not set
188 | # CONFIG_PACKAGE_strongswan-mod-gmp is not set
189 | # CONFIG_PACKAGE_strongswan-mod-hmac is not set
190 | # CONFIG_PACKAGE_strongswan-mod-kernel-netlink is not set
191 | # CONFIG_PACKAGE_strongswan-mod-nonce is not set
192 | # CONFIG_PACKAGE_strongswan-mod-pubkey is not set
193 | # CONFIG_PACKAGE_strongswan-mod-random is not set
194 | # CONFIG_PACKAGE_strongswan-mod-sha1 is not set
195 | # CONFIG_PACKAGE_strongswan-mod-socket-default is not set
196 | # CONFIG_PACKAGE_strongswan-mod-stroke is not set
197 | # CONFIG_PACKAGE_strongswan-mod-updown is not set
198 | # CONFIG_PACKAGE_strongswan-mod-x509 is not set
199 | # CONFIG_PACKAGE_strongswan-mod-xauth-generic is not set
200 | # CONFIG_PACKAGE_strongswan-mod-xcbc is not set
201 | # CONFIG_PACKAGE_tcpping is not set
202 | # CONFIG_PACKAGE_UnblockNeteaseMusic is not set
203 | # CONFIG_PACKAGE_UnblockNeteaseMusicGo is not set
204 | # CONFIG_PACKAGE_adbyby is not set
205 | # CONFIG_PACKAGE_vsftpd-alt is not set
206 | # CONFIG_PACKAGE_zerotier is not set
207 | # CONFIG_UnblockNeteaseMusic_Go is not set
208 | # CONFIG_UnblockNeteaseMusic_NodeJS is not set
209 |
--------------------------------------------------------------------------------
/FriendlyWRTwithFlowOffload/repo_used_path.env:
--------------------------------------------------------------------------------
1 | Lean=package/lean/luci-app-autoreboot package/lean/luci-app-arpbind package/lean/luci-app-netdata package/lean/luci-app-nfs package/lean/luci-app-vlmcsd package/lean/luci-app-accesscontrol package/lean/luci-app-filetransfer
2 | LeanLuci=applications/luci-app-ddns applications/luci-app-watchcat applications/luci-app-wol modules
3 | LeanPackage=utils/collectd utils/bash utils/watchcat
4 | ScwPackage=lienol/luci-app-passwall lienol/luci-app-ramfree lienol/luci-theme-argon-dark-mod package
--------------------------------------------------------------------------------
/FriendlyWRTwithFlowOffload/status.env:
--------------------------------------------------------------------------------
1 | ServerChanHash=c15251d
2 | BuilderHash=9b56dcc
3 | FriendlyWRTHash=6025df0
4 | ArgonHash=3e41f5b
5 | LeanLuciHash=cebe120
6 | AdguardHomeHash=37fdf50
7 | LeanHash=c331181
8 | LeanPackageHash=f35494f
9 | ScwPackageHash=6f5d6af
10 |
--------------------------------------------------------------------------------
/FwF/README.md:
--------------------------------------------------------------------------------
1 | # FwF
2 |
3 | FriendlyWRT with Features
4 |
5 | 在[FriendlyWRT](../FriendlyWRT)的基础上,添加了更多功能。
6 |
7 | [下载地址](https://github.com/songchenwen/nanopi-r2s/releases/download/FwF-2020-06-30-8affca1/FwF-2020-06-30-8affca1-ROM.zip)
8 |
9 | [改动记录](CHANGELOG.md)
10 |
--------------------------------------------------------------------------------
/FwF/repo_used_path.env:
--------------------------------------------------------------------------------
1 | Lean=package/lean
2 | LeanLuci=applications modules
3 | LeanPackage=utils
4 | ScwPackage=lienol package
5 | OpenWrt=package/libs target/linux/generic target/linux/octeontx/patches-5.4
--------------------------------------------------------------------------------
/FwF/status.env:
--------------------------------------------------------------------------------
1 | OpenWrtHash=5667ccb
2 | ServerChanHash=db547c1
3 | BuilderHash=8affca1
4 | FriendlyWRTHash=b2b9dc9
5 | ArgonHash=6bab4a8
6 | LeanLuciHash=de9fdad
7 | KernelHash=bfe05f0
8 | AdguardHomeHash=37fdf50
9 | LeanHash=c0f3364
10 | SSRPHash=b07579f
11 | LeanPackageHash=3a9986e
12 | ScwPackageHash=b3d72c7
13 |
--------------------------------------------------------------------------------
/LOL/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## LOL-2020-04-17-9f73416
2 |
3 | #### Builder [94a2747..9f73416](https://github.com/songchenwen/nanopi-r2s/compare/94a2747..9f73416)
4 |
5 |
6 | | Commit | Author | Desc |
7 | | :----- | :------| :--- |
8 | | [9f73416](https://github.com/songchenwen/nanopi-r2s/commit/9f73416) | songchenwen | Update R2S Flasher |
9 | | [2ff8b7e](https://github.com/songchenwen/nanopi-r2s/commit/2ff8b7e) | songchenwen | Add Download URL to luci-app-r2sflasher |
10 | | [d7e657a](https://github.com/songchenwen/nanopi-r2s/commit/d7e657a) | songchenwen | Fix SSRP |
11 |
12 |
13 |
14 |
15 | --------------
16 |
17 | ## LOL-2020-04-16-94a2747
18 |
19 | #### Builder [2e348ea..94a2747](https://github.com/songchenwen/nanopi-r2s/compare/2e348ea..94a2747)
20 |
21 |
22 | | Commit | Author | Desc |
23 | | :----- | :------| :--- |
24 | | [94a2747](https://github.com/songchenwen/nanopi-r2s/commit/94a2747) | songchenwen | Update r2sflasher Dependency |
25 |
26 |
27 |
28 |
29 | --------------
30 |
31 | ## LOL-2020-04-15-2e348ea
32 |
33 | #### Builder [06ca030..2e348ea](https://github.com/songchenwen/nanopi-r2s/compare/06ca030..2e348ea)
34 |
35 |
36 | | Commit | Author | Desc |
37 | | :----- | :------| :--- |
38 | | [2e348ea](https://github.com/songchenwen/nanopi-r2s/commit/2e348ea) | songchenwen | Add Separated Read Me File to Avoid Merge Conflict |
39 |
40 |
41 |
42 |
43 | --------------
44 |
45 | ## LOL-2020-04-15-06ca030
46 |
47 | #### Builder [b7c1390..06ca030](https://github.com/songchenwen/nanopi-r2s/compare/b7c1390..06ca030)
48 |
49 |
50 | | Commit | Author | Desc |
51 | | :----- | :------| :--- |
52 | | [06ca030](https://github.com/songchenwen/nanopi-r2s/commit/06ca030) | songchenwen | Update README |
53 | | [73d70f6](https://github.com/songchenwen/nanopi-r2s/commit/73d70f6) | songchenwen | README about friendlywrt |
54 | | [f666d0b](https://github.com/songchenwen/nanopi-r2s/commit/f666d0b) | songchenwen | Add ETH Tool and Cloudflare DDNS |
55 | | [6921e05](https://github.com/songchenwen/nanopi-r2s/commit/6921e05) | songchenwen | Edit R2S Flasher ROM Page |
56 | | [c4df26f](https://github.com/songchenwen/nanopi-r2s/commit/c4df26f) | songchenwen | luci-app-r2sflasher support img.zip file |
57 | | [929220a](https://github.com/songchenwen/nanopi-r2s/commit/929220a) | songchenwen | fix elfutils |
58 | | [c5c7214](https://github.com/songchenwen/nanopi-r2s/commit/c5c7214) | songchenwen | Try another way to fix elfutils |
59 | | [3a014f1](https://github.com/songchenwen/nanopi-r2s/commit/3a014f1) | songchenwen | Try to fix elfutils |
60 |
61 |
62 | #### FriendlyWRT [5ebce56..6025df0](https://github.com/friendlyarm/friendlywrt/compare/5ebce56..6025df0)
63 |
64 |
65 | | Commit | Author | Desc |
66 | | :----- | :------| :--- |
67 | | [6025df0352](https://github.com/friendlyarm/friendlywrt/commit/6025df0352) | Lawrence-Tang | initial settings for ttyd, samba, watchcat |
68 | | [6ba702543b](https://github.com/friendlyarm/friendlywrt/commit/6ba702543b) | Lawrence-Tang | rk3328: add support for rtl8822bu |
69 |
70 |
71 |
72 |
73 | --------------
74 |
75 | ## LOL-2020-04-14-b7c1390
76 |
77 | #### Builder [f8b0fae..b7c1390](https://github.com/songchenwen/nanopi-r2s/compare/f8b0fae..b7c1390)
78 |
79 |
80 | | Commit | Author | Desc |
81 | | :----- | :------| :--- |
82 | | [b7c1390](https://github.com/songchenwen/nanopi-r2s/commit/b7c1390) | songchenwen | Remove Gzip Dependency of r2s flasher |
83 | | [7ab12ae](https://github.com/songchenwen/nanopi-r2s/commit/7ab12ae) | songchenwen | add luci-app-r2sflasher |
84 | | [9b5cf06](https://github.com/songchenwen/nanopi-r2s/commit/9b5cf06) | songchenwen | No Bench Mark for FriendlyWRT |
85 |
86 |
87 | #### FriendlyWRT [c2699cd..5ebce56](https://github.com/friendlyarm/friendlywrt/compare/c2699cd..5ebce56)
88 |
89 |
90 | | Commit | Author | Desc |
91 | | :----- | :------| :--- |
92 | | [5ebce5620b](https://github.com/friendlyarm/friendlywrt/commit/5ebce5620b) | Lawrence-Tang | add p7zip |
93 |
94 |
95 |
96 |
97 | --------------
98 |
99 | ## LOL-2020-04-13-f8b0fae
100 |
101 | #### Builder [cf7d037..f8b0fae](https://github.com/songchenwen/nanopi-r2s/compare/cf7d037..f8b0fae)
102 |
103 |
104 | | Commit | Author | Desc |
105 | | :----- | :------| :--- |
106 | | [f8b0fae](https://github.com/songchenwen/nanopi-r2s/commit/f8b0fae) | songchenwen | add luci-app-filebrowser |
107 | | [d04ccd6](https://github.com/songchenwen/nanopi-r2s/commit/d04ccd6) | songchenwen | Remove nfs add v2ray and wget |
108 |
109 |
110 |
111 |
112 | --------------
113 |
114 | ## LOL-2020-04-11-cf7d037
115 |
116 | #### Builder [986d717..cf7d037](https://github.com/songchenwen/nanopi-r2s/compare/986d717..cf7d037)
117 |
118 |
119 | | Commit | Author | Desc |
120 | | :----- | :------| :--- |
121 | | [cf7d037](https://github.com/songchenwen/nanopi-r2s/commit/cf7d037) | songchenwen | Add fw_update Script |
122 | | [bf4fc77](https://github.com/songchenwen/nanopi-r2s/commit/bf4fc77) | songchenwen | Fix distfeeds |
123 | | [8dbef0a](https://github.com/songchenwen/nanopi-r2s/commit/8dbef0a) | songchenwen | Delete Some VPN apps from FwF |
124 | | [e8fef50](https://github.com/songchenwen/nanopi-r2s/commit/e8fef50) | songchenwen | Not Recommend FwF |
125 |
126 |
127 | #### FriendlyWRT [337ed97..c2699cd](https://github.com/friendlyarm/friendlywrt/compare/337ed97..c2699cd)
128 |
129 |
130 | | Commit | Author | Desc |
131 | | :----- | :------| :--- |
132 | | [c2699cd44b](https://github.com/friendlyarm/friendlywrt/commit/c2699cd44b) | Lawrence-Tang | Re-enable ipv6 |
133 | | [f2c4d64a95](https://github.com/friendlyarm/friendlywrt/commit/f2c4d64a95) | Lawrence-Tang | Revert "set default theme to argon" |
134 |
135 |
136 |
137 |
138 | --------------
139 |
140 | ## LOL-2020-04-11-986d717
141 |
142 | #### Builder [3aea628..986d717](https://github.com/songchenwen/nanopi-r2s/compare/3aea628..986d717)
143 |
144 |
145 | | Commit | Author | Desc |
146 | | :----- | :------| :--- |
147 | | [986d717](https://github.com/songchenwen/nanopi-r2s/commit/986d717) | songchenwen | Add luci-app-serverchan |
148 | | [db6fb00](https://github.com/songchenwen/nanopi-r2s/commit/db6fb00) | songchenwen | Default Configs in Read Me |
149 | | [7a72ee2](https://github.com/songchenwen/nanopi-r2s/commit/7a72ee2) | songchenwen | Remove Docker from FwF |
150 | | [709f14c](https://github.com/songchenwen/nanopi-r2s/commit/709f14c) | songchenwen | Revert "FriendlyWrt Unlock CPU 1.5Ghz" |
151 | | [6765452](https://github.com/songchenwen/nanopi-r2s/commit/6765452) | songchenwen | Add FriendlyWRT with Features |
152 | | [676db71](https://github.com/songchenwen/nanopi-r2s/commit/676db71) | songchenwen | FriendlyWrt Unlock CPU 1.5Ghz |
153 | | [932d62a](https://github.com/songchenwen/nanopi-r2s/commit/932d62a) | songchenwen | Update README |
154 | | [78a07e4](https://github.com/songchenwen/nanopi-r2s/commit/78a07e4) | songchenwen | Add Some Performance Test |
155 | | [f176cc1](https://github.com/songchenwen/nanopi-r2s/commit/f176cc1) | songchenwen | Add CPU Temperature to NetData |
156 | | [ef49a2a](https://github.com/songchenwen/nanopi-r2s/commit/ef49a2a) | songchenwen | Add luci-app-wrtbwmon |
157 |
158 |
159 | #### FriendlyWRT [1bedd70..337ed97](https://github.com/friendlyarm/friendlywrt/compare/1bedd70..337ed97)
160 |
161 |
162 | | Commit | Author | Desc |
163 | | :----- | :------| :--- |
164 | | [337ed979d3](https://github.com/friendlyarm/friendlywrt/commit/337ed979d3) | Lawrence-Tang | set default theme to argon |
165 | | [a51380eaea](https://github.com/friendlyarm/friendlywrt/commit/a51380eaea) | Lawrence-Tang | update luci |
166 |
167 |
168 |
169 |
170 | --------------
171 |
172 | ## LOL-2020-04-09-3aea628
173 |
174 | #### Builder [433ce5a..3aea628](https://github.com/songchenwen/nanopi-r2s/compare/433ce5a..3aea628)
175 |
176 |
177 | | Commit | Author | Desc |
178 | | :----- | :------| :--- |
179 | | [3aea628](https://github.com/songchenwen/nanopi-r2s/commit/3aea628) | songchenwen | Fix Kernel Patch |
180 | | [f2366d2](https://github.com/songchenwen/nanopi-r2s/commit/f2366d2) | songchenwen | Reduce Update Frequency |
181 | | [7a54708](https://github.com/songchenwen/nanopi-r2s/commit/7a54708) | songchenwen | Add Version Indicator to FriendlyWRT |
182 | | [8e6d371](https://github.com/songchenwen/nanopi-r2s/commit/8e6d371) | songchenwen | Update FriendlyWRT |
183 |
184 |
185 |
186 |
187 | --------------
188 |
189 | ## LOL-2020-04-09-433ce5a
190 |
191 | #### Builder [f770492..433ce5a](https://github.com/songchenwen/nanopi-r2s/compare/f770492..433ce5a)
192 |
193 |
194 | | Commit | Author | Desc |
195 | | :----- | :------| :--- |
196 | | [433ce5a](https://github.com/songchenwen/nanopi-r2s/commit/433ce5a) | songchenwen | Add Clash Country.mmdb to Image |
197 |
198 |
199 |
200 |
201 | --------------
202 |
203 | ## LOL-2020-04-08-f770492
204 |
205 | #### Builder [67e97af..f770492](https://github.com/songchenwen/nanopi-r2s/compare/67e97af..f770492)
206 |
207 |
208 | | Commit | Author | Desc |
209 | | :----- | :------| :--- |
210 | | [f770492](https://github.com/songchenwen/nanopi-r2s/commit/f770492) | songchenwen | Add LOL |
211 | | [d5cb2cd](https://github.com/songchenwen/nanopi-r2s/commit/d5cb2cd) | songchenwen | Add Some Openwrt 5.4 Kernel Patches to Lean |
212 | | [f2031dc](https://github.com/songchenwen/nanopi-r2s/commit/f2031dc) | songchenwen | Pack Passwall |
213 | | [a3d3f53](https://github.com/songchenwen/nanopi-r2s/commit/a3d3f53) | songchenwen | Upstream Full Cone Nat Change |
214 |
215 |
216 | #### Lean [b622523..d37042d](https://github.com/coolsnowwolf/lede/compare/b622523..d37042d)
217 |
218 |
219 |
220 |
221 | #### ScwPackage [1583d32..49d75c3](https://github.com/songchenwen/openwrt-package/compare/1583d32..49d75c3)
222 |
223 |
224 | | Commit | Author | Desc |
225 | | :----- | :------| :--- |
226 | | [964834569](https://github.com/songchenwen/openwrt-package/commit/964834569) | ShanStone | Fix chinadns-ng when using default dns (#408) |
227 | | [af5a68836](https://github.com/songchenwen/openwrt-package/commit/af5a68836) | xiaorouji | passwall: chinadns-ng use fair mode |
228 | | [f1352e26a](https://github.com/songchenwen/openwrt-package/commit/f1352e26a) | xiaorouji | chinadns-ng: bump 1.0-bate.22 |
229 |
230 |
231 |
232 |
233 | --------------
234 |
--------------------------------------------------------------------------------
/LOL/README.md:
--------------------------------------------------------------------------------
1 | # LOL
2 |
3 | 以 [Lienol on Lean](https://github.com/Lienol/openwrt/tree/dev-lean-lede) 为基础, 增加 FriendlyWRT 对 OpenWRT 的改动
4 |
5 | [下载地址](https://github.com/songchenwen/nanopi-r2s/releases/download/LOL-2020-04-17-9f73416/LOL-2020-04-17-9f73416-ROM.zip)
6 |
7 | [改动记录](CHANGELOG.md)
8 |
--------------------------------------------------------------------------------
/LOL/rebase_on_lienol.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | cd friendlywrt-rk3328
3 | find device/ -name distfeeds.conf -delete
4 | cd friendlywrt
5 | git config --global user.email "action@github.com" && git config --global user.name "GitHub Action"
6 | git remote add upstream https://github.com/Lienol/openwrt.git && git fetch upstream
7 | git checkout upstream/dev-lean-lede -b tmp
8 | ../../set_repo_hash.sh Lienol
9 | git mv README.md README && git commit -m 'undo rename readme for rebasing'
10 | git checkout origin/master-v19.07.1
11 | git rebase adc1a9a3676b8d7be1b48b5aed185a94d8e42728^ --onto tmp -X ours
12 | echo ""
13 | git status
14 | echo ""
15 | git checkout upstream/dev-lean-lede -- feeds.conf.default
16 | git checkout upstream/dev-lean-lede -- package/kernel/mac80211/files/lib/netifd/mac80211.sh
17 | echo ""
18 | git status
19 | echo ""
20 | echo "feeds.conf.default"
21 | cat feeds.conf.default
22 |
--------------------------------------------------------------------------------
/LOL/repo_used_path.env:
--------------------------------------------------------------------------------
1 | LeanLuci=applications/luci-app-ddns applications/luci-app-watchcat applications/luci-app-wol modules
2 | LeanPackage=utils/collectd utils/bash utils/watchcat
3 | ScwPackage=lienol/luci-app-passwall lienol/luci-app-ramfree lienol/luci-theme-argon-dark-mod package
--------------------------------------------------------------------------------
/LOL/status.env:
--------------------------------------------------------------------------------
1 | ServerChanHash=5ae8cd2
2 | BuilderHash=9f73416
3 | LienolHash=b9e21ca
4 | FriendlyWRTHash=6025df0
5 | ArgonHash=3e41f5b
6 | AdguardHomeHash=37fdf50
7 | ScwPackageHash=6f5d6af
8 |
--------------------------------------------------------------------------------
/Lean/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## Lean-2020-04-17-9f73416
2 |
3 | #### Builder [94a2747..9f73416](https://github.com/songchenwen/nanopi-r2s/compare/94a2747..9f73416)
4 |
5 |
6 | | Commit | Author | Desc |
7 | | :----- | :------| :--- |
8 | | [9f73416](https://github.com/songchenwen/nanopi-r2s/commit/9f73416) | songchenwen | Update R2S Flasher |
9 | | [2ff8b7e](https://github.com/songchenwen/nanopi-r2s/commit/2ff8b7e) | songchenwen | Add Download URL to luci-app-r2sflasher |
10 | | [d7e657a](https://github.com/songchenwen/nanopi-r2s/commit/d7e657a) | songchenwen | Fix SSRP |
11 |
12 |
13 |
14 |
15 | --------------
16 |
17 | ## Lean-2020-04-16-94a2747
18 |
19 | #### Builder [2e348ea..94a2747](https://github.com/songchenwen/nanopi-r2s/compare/2e348ea..94a2747)
20 |
21 |
22 | | Commit | Author | Desc |
23 | | :----- | :------| :--- |
24 | | [94a2747](https://github.com/songchenwen/nanopi-r2s/commit/94a2747) | songchenwen | Update r2sflasher Dependency |
25 |
26 |
27 |
28 |
29 | --------------
30 |
31 | ## Lean-2020-04-15-2e348ea
32 |
33 | #### Builder [b7c1390..2e348ea](https://github.com/songchenwen/nanopi-r2s/compare/b7c1390..2e348ea)
34 |
35 |
36 | | Commit | Author | Desc |
37 | | :----- | :------| :--- |
38 | | [2e348ea](https://github.com/songchenwen/nanopi-r2s/commit/2e348ea) | songchenwen | Add Separated Read Me File to Avoid Merge Conflict |
39 | | [06ca030](https://github.com/songchenwen/nanopi-r2s/commit/06ca030) | songchenwen | Update README |
40 | | [73d70f6](https://github.com/songchenwen/nanopi-r2s/commit/73d70f6) | songchenwen | README about friendlywrt |
41 | | [f666d0b](https://github.com/songchenwen/nanopi-r2s/commit/f666d0b) | songchenwen | Add ETH Tool and Cloudflare DDNS |
42 | | [6921e05](https://github.com/songchenwen/nanopi-r2s/commit/6921e05) | songchenwen | Edit R2S Flasher ROM Page |
43 | | [c4df26f](https://github.com/songchenwen/nanopi-r2s/commit/c4df26f) | songchenwen | luci-app-r2sflasher support img.zip file |
44 | | [929220a](https://github.com/songchenwen/nanopi-r2s/commit/929220a) | songchenwen | fix elfutils |
45 | | [c5c7214](https://github.com/songchenwen/nanopi-r2s/commit/c5c7214) | songchenwen | Try another way to fix elfutils |
46 | | [3a014f1](https://github.com/songchenwen/nanopi-r2s/commit/3a014f1) | songchenwen | Try to fix elfutils |
47 |
48 |
49 | #### FriendlyWRT [5ebce56..6025df0](https://github.com/friendlyarm/friendlywrt/compare/5ebce56..6025df0)
50 |
51 |
52 | | Commit | Author | Desc |
53 | | :----- | :------| :--- |
54 | | [6025df0352](https://github.com/friendlyarm/friendlywrt/commit/6025df0352) | Lawrence-Tang | initial settings for ttyd, samba, watchcat |
55 | | [6ba702543b](https://github.com/friendlyarm/friendlywrt/commit/6ba702543b) | Lawrence-Tang | rk3328: add support for rtl8822bu |
56 |
57 |
58 |
59 |
60 | --------------
61 |
62 | ## Lean-2020-04-14-b7c1390
63 |
64 | #### Builder [f8b0fae..b7c1390](https://github.com/songchenwen/nanopi-r2s/compare/f8b0fae..b7c1390)
65 |
66 |
67 | | Commit | Author | Desc |
68 | | :----- | :------| :--- |
69 | | [b7c1390](https://github.com/songchenwen/nanopi-r2s/commit/b7c1390) | songchenwen | Remove Gzip Dependency of r2s flasher |
70 | | [7ab12ae](https://github.com/songchenwen/nanopi-r2s/commit/7ab12ae) | songchenwen | add luci-app-r2sflasher |
71 | | [9b5cf06](https://github.com/songchenwen/nanopi-r2s/commit/9b5cf06) | songchenwen | No Bench Mark for FriendlyWRT |
72 |
73 |
74 | #### FriendlyWRT [c2699cd..5ebce56](https://github.com/friendlyarm/friendlywrt/compare/c2699cd..5ebce56)
75 |
76 |
77 | | Commit | Author | Desc |
78 | | :----- | :------| :--- |
79 | | [5ebce5620b](https://github.com/friendlyarm/friendlywrt/commit/5ebce5620b) | Lawrence-Tang | add p7zip |
80 |
81 |
82 |
83 |
84 | --------------
85 |
86 | ## Lean-2020-04-13-f8b0fae
87 |
88 | #### Builder [cf7d037..f8b0fae](https://github.com/songchenwen/nanopi-r2s/compare/cf7d037..f8b0fae)
89 |
90 |
91 | | Commit | Author | Desc |
92 | | :----- | :------| :--- |
93 | | [f8b0fae](https://github.com/songchenwen/nanopi-r2s/commit/f8b0fae) | songchenwen | add luci-app-filebrowser |
94 | | [d04ccd6](https://github.com/songchenwen/nanopi-r2s/commit/d04ccd6) | songchenwen | Remove nfs add v2ray and wget |
95 |
96 |
97 |
98 |
99 | --------------
100 |
101 | ## Lean-2020-04-11-cf7d037
102 |
103 | #### Builder [986d717..cf7d037](https://github.com/songchenwen/nanopi-r2s/compare/986d717..cf7d037)
104 |
105 |
106 | | Commit | Author | Desc |
107 | | :----- | :------| :--- |
108 | | [cf7d037](https://github.com/songchenwen/nanopi-r2s/commit/cf7d037) | songchenwen | Add fw_update Script |
109 | | [bf4fc77](https://github.com/songchenwen/nanopi-r2s/commit/bf4fc77) | songchenwen | Fix distfeeds |
110 | | [8dbef0a](https://github.com/songchenwen/nanopi-r2s/commit/8dbef0a) | songchenwen | Delete Some VPN apps from FwF |
111 | | [e8fef50](https://github.com/songchenwen/nanopi-r2s/commit/e8fef50) | songchenwen | Not Recommend FwF |
112 |
113 |
114 | #### FriendlyWRT [337ed97..c2699cd](https://github.com/friendlyarm/friendlywrt/compare/337ed97..c2699cd)
115 |
116 |
117 | | Commit | Author | Desc |
118 | | :----- | :------| :--- |
119 | | [c2699cd44b](https://github.com/friendlyarm/friendlywrt/commit/c2699cd44b) | Lawrence-Tang | Re-enable ipv6 |
120 | | [f2c4d64a95](https://github.com/friendlyarm/friendlywrt/commit/f2c4d64a95) | Lawrence-Tang | Revert "set default theme to argon" |
121 |
122 |
123 |
124 |
125 | --------------
126 |
127 | ## Lean-2020-04-11-986d717
128 |
129 | #### Builder [3aea628..986d717](https://github.com/songchenwen/nanopi-r2s/compare/3aea628..986d717)
130 |
131 |
132 | | Commit | Author | Desc |
133 | | :----- | :------| :--- |
134 | | [986d717](https://github.com/songchenwen/nanopi-r2s/commit/986d717) | songchenwen | Add luci-app-serverchan |
135 | | [db6fb00](https://github.com/songchenwen/nanopi-r2s/commit/db6fb00) | songchenwen | Default Configs in Read Me |
136 | | [7a72ee2](https://github.com/songchenwen/nanopi-r2s/commit/7a72ee2) | songchenwen | Remove Docker from FwF |
137 | | [709f14c](https://github.com/songchenwen/nanopi-r2s/commit/709f14c) | songchenwen | Revert "FriendlyWrt Unlock CPU 1.5Ghz" |
138 | | [6765452](https://github.com/songchenwen/nanopi-r2s/commit/6765452) | songchenwen | Add FriendlyWRT with Features |
139 | | [676db71](https://github.com/songchenwen/nanopi-r2s/commit/676db71) | songchenwen | FriendlyWrt Unlock CPU 1.5Ghz |
140 | | [932d62a](https://github.com/songchenwen/nanopi-r2s/commit/932d62a) | songchenwen | Update README |
141 | | [78a07e4](https://github.com/songchenwen/nanopi-r2s/commit/78a07e4) | songchenwen | Add Some Performance Test |
142 | | [f176cc1](https://github.com/songchenwen/nanopi-r2s/commit/f176cc1) | songchenwen | Add CPU Temperature to NetData |
143 | | [ef49a2a](https://github.com/songchenwen/nanopi-r2s/commit/ef49a2a) | songchenwen | Add luci-app-wrtbwmon |
144 |
145 |
146 | #### FriendlyWRT [1bedd70..337ed97](https://github.com/friendlyarm/friendlywrt/compare/1bedd70..337ed97)
147 |
148 |
149 | | Commit | Author | Desc |
150 | | :----- | :------| :--- |
151 | | [337ed979d3](https://github.com/friendlyarm/friendlywrt/commit/337ed979d3) | Lawrence-Tang | set default theme to argon |
152 | | [a51380eaea](https://github.com/friendlyarm/friendlywrt/commit/a51380eaea) | Lawrence-Tang | update luci |
153 |
154 |
155 |
156 |
157 | --------------
158 |
159 | ## Lean-2020-04-09-3aea628
160 |
161 | #### Builder [433ce5a..3aea628](https://github.com/songchenwen/nanopi-r2s/compare/433ce5a..3aea628)
162 |
163 |
164 | | Commit | Author | Desc |
165 | | :----- | :------| :--- |
166 | | [3aea628](https://github.com/songchenwen/nanopi-r2s/commit/3aea628) | songchenwen | Fix Kernel Patch |
167 | | [f2366d2](https://github.com/songchenwen/nanopi-r2s/commit/f2366d2) | songchenwen | Reduce Update Frequency |
168 | | [7a54708](https://github.com/songchenwen/nanopi-r2s/commit/7a54708) | songchenwen | Add Version Indicator to FriendlyWRT |
169 | | [8e6d371](https://github.com/songchenwen/nanopi-r2s/commit/8e6d371) | songchenwen | Update FriendlyWRT |
170 |
171 |
172 |
173 |
174 | --------------
175 |
176 | ## Lean-2020-04-09-433ce5a
177 |
178 | #### Builder [d5cb2cd..433ce5a](https://github.com/songchenwen/nanopi-r2s/compare/d5cb2cd..433ce5a)
179 |
180 |
181 | | Commit | Author | Desc |
182 | | :----- | :------| :--- |
183 | | [433ce5a](https://github.com/songchenwen/nanopi-r2s/commit/433ce5a) | songchenwen | Add Clash Country.mmdb to Image |
184 | | [f770492](https://github.com/songchenwen/nanopi-r2s/commit/f770492) | songchenwen | Add LOL |
185 |
186 |
187 | #### Lean [cef6bff..ae7a5d7](https://github.com/coolsnowwolf/lede/compare/cef6bff..ae7a5d7)
188 |
189 |
190 | | Commit | Author | Desc |
191 | | :----- | :------| :--- |
192 | | [ae7a5d70](https://github.com/coolsnowwolf/lede/commit/ae7a5d70) | dongjuanyong | luci-app-ssr-plus: OpenWrt SNAPSHOT compatibility (#4154) |
193 | | [df49785a](https://github.com/coolsnowwolf/lede/commit/df49785a) | lean | openwrt-ci.yml: update |
194 | | [12b558bb](https://github.com/coolsnowwolf/lede/commit/12b558bb) | lean | amule: dyn linked |
195 | | [7bf824b1](https://github.com/coolsnowwolf/lede/commit/7bf824b1) | lean | qBittorrent: bump to v4.2.3 |
196 | | [dc875de0](https://github.com/coolsnowwolf/lede/commit/dc875de0) | AmadeusGhost | kernel: netdev: add missing config for mlx5 driver (#4228) |
197 | | [b6b408c8](https://github.com/coolsnowwolf/lede/commit/b6b408c8) | lean | Version bump to R20.4.8 |
198 | | [6d92b607](https://github.com/coolsnowwolf/lede/commit/6d92b607) | lean | luci-app-music-remote-center: add place holder |
199 | | [25b01424](https://github.com/coolsnowwolf/lede/commit/25b01424) | lean | workflows: add dependenc host build |
200 |
201 |
202 | #### ScwPackage [35cc95f..49d75c3](https://github.com/songchenwen/openwrt-package/compare/35cc95f..49d75c3)
203 |
204 |
205 | | Commit | Author | Desc |
206 | | :----- | :------| :--- |
207 | | [964834569](https://github.com/songchenwen/openwrt-package/commit/964834569) | ShanStone | Fix chinadns-ng when using default dns (#408) |
208 |
209 |
210 |
211 |
212 | --------------
213 |
214 | ## Lean-2020-04-08-d5cb2cd
215 |
216 | #### Lean [2a1f9e6..cef6bff](https://github.com/coolsnowwolf/lede/compare/2a1f9e6..cef6bff)
217 |
218 |
219 | | Commit | Author | Desc |
220 | | :----- | :------| :--- |
221 | | [cef6bffa](https://github.com/coolsnowwolf/lede/commit/cef6bffa) | ricksuzade-maker | Bump wireguard to 1.0.20200401 (#4217) |
222 | | [a1b538a9](https://github.com/coolsnowwolf/lede/commit/a1b538a9) | lean | ipq40xx: switch to ath10k-ct |
223 | | [f095b225](https://github.com/coolsnowwolf/lede/commit/f095b225) | AmadeusGhost | bcm27xx: rpi4: enable wifi in first boot (#4220) |
224 | | [c3c418cd](https://github.com/coolsnowwolf/lede/commit/c3c418cd) | lean | luci-app-cifs-mount: add SMB/CIFS mount luci |
225 |
226 |
227 |
228 |
229 | --------------
230 |
231 | ## Lean-2020-04-07-d5cb2cd
232 |
233 | #### Builder [67e97af..d5cb2cd](https://github.com/songchenwen/nanopi-r2s/compare/67e97af..d5cb2cd)
234 |
235 |
236 | | Commit | Author | Desc |
237 | | :----- | :------| :--- |
238 | | [d5cb2cd](https://github.com/songchenwen/nanopi-r2s/commit/d5cb2cd) | songchenwen | Add Some Openwrt 5.4 Kernel Patches to Lean |
239 | | [f2031dc](https://github.com/songchenwen/nanopi-r2s/commit/f2031dc) | songchenwen | Pack Passwall |
240 | | [a3d3f53](https://github.com/songchenwen/nanopi-r2s/commit/a3d3f53) | songchenwen | Upstream Full Cone Nat Change |
241 |
242 |
243 | #### Lean [b622523..2a1f9e6](https://github.com/coolsnowwolf/lede/compare/b622523..2a1f9e6)
244 |
245 |
246 | | Commit | Author | Desc |
247 | | :----- | :------| :--- |
248 | | [2a1f9e6f](https://github.com/coolsnowwolf/lede/commit/2a1f9e6f) | lean | target: add luci-app-music-remote-center |
249 |
250 |
251 | #### ScwPackage [1583d32..35cc95f](https://github.com/songchenwen/openwrt-package/compare/1583d32..35cc95f)
252 |
253 |
254 | | Commit | Author | Desc |
255 | | :----- | :------| :--- |
256 | | [af5a68836](https://github.com/songchenwen/openwrt-package/commit/af5a68836) | xiaorouji | passwall: chinadns-ng use fair mode |
257 | | [f1352e26a](https://github.com/songchenwen/openwrt-package/commit/f1352e26a) | xiaorouji | chinadns-ng: bump 1.0-bate.22 |
258 |
259 |
260 |
261 |
262 | --------------
263 |
264 | ## Lean-2020-04-07-67e97af
265 |
266 | #### Builder [21b1d35..67e97af](https://github.com/songchenwen/nanopi-r2s/compare/21b1d35..67e97af)
267 |
268 |
269 | | Commit | Author | Desc |
270 | | :----- | :------| :--- |
271 | | [67e97af](https://github.com/songchenwen/nanopi-r2s/commit/67e97af) | songchenwen | Add a Test Build with Openwrt Patches for octeontx |
272 |
273 |
274 | #### Lean [7e22d61..b622523](https://github.com/coolsnowwolf/lede/compare/7e22d61..b622523)
275 |
276 |
277 | | Commit | Author | Desc |
278 | | :----- | :------| :--- |
279 | | [b6225235](https://github.com/coolsnowwolf/lede/commit/b6225235) | AmadeusGhost | ramips: improve support for HiWiFi HC5962 (#4195) |
280 | | [e3cfa6d1](https://github.com/coolsnowwolf/lede/commit/e3cfa6d1) | R3pl4c3r | README.md: fix compile dependency error (#4201) |
281 |
282 |
283 |
284 |
285 | --------------
286 |
287 | ## Lean-2020-04-06-21b1d35
288 |
289 | #### Builder [8b94319..21b1d35](https://github.com/songchenwen/nanopi-r2s/compare/8b94319..21b1d35)
290 |
291 |
292 | | Commit | Author | Desc |
293 | | :----- | :------| :--- |
294 | | [21b1d35](https://github.com/songchenwen/nanopi-r2s/commit/21b1d35) | songchenwen | Clean Unused SRCs Before Building for Disk Space |
295 |
296 |
297 | #### Lean [5e9e8d8..7e22d61](https://github.com/coolsnowwolf/lede/compare/5e9e8d8..7e22d61)
298 |
299 |
300 | | Commit | Author | Desc |
301 | | :----- | :------| :--- |
302 | | [7e22d613](https://github.com/coolsnowwolf/lede/commit/7e22d613) | lean | luci-app-music-remote-center: add zh-cn and fix path settings |
303 | | [7b250dee](https://github.com/coolsnowwolf/lede/commit/7b250dee) | lean | luci-app-music-remote-center: DAAP remote control music server for iOS/Android |
304 | | [7930a037](https://github.com/coolsnowwolf/lede/commit/7930a037) | Chuck | default-settings: fix string replace (#4189) |
305 |
306 |
307 |
308 |
309 | --------------
310 |
311 | ## Lean-2020-04-06-8b94319
312 |
313 | #### Builder [6ca7b53..8b94319](https://github.com/songchenwen/nanopi-r2s/compare/6ca7b53..8b94319)
314 |
315 |
316 | | Commit | Author | Desc |
317 | | :----- | :------| :--- |
318 | | [8b94319](https://github.com/songchenwen/nanopi-r2s/commit/8b94319) | songchenwen | Fix File System Permissions |
319 | | [4261ef8](https://github.com/songchenwen/nanopi-r2s/commit/4261ef8) | 宋辰文 | Add luci-app-nfs |
320 |
321 |
322 | #### ScwPackage [3fa6c01..1583d32](https://github.com/songchenwen/openwrt-package/compare/3fa6c01..1583d32)
323 |
324 |
325 | | Commit | Author | Desc |
326 | | :----- | :------| :--- |
327 | | [950a544](https://github.com/songchenwen/openwrt-package/commit/950a544) | Lienol | passwall: optimize subscribe |
328 | | [5a47a8a](https://github.com/songchenwen/openwrt-package/commit/5a47a8a) | ShanStone | passwall: Fix blacklist by default proxy (#400) |
329 |
330 |
331 |
332 |
333 | --------------
334 |
335 | ## Lean-2020-04-06-6ca7b53
336 |
337 | #### Builder [70a1021..6ca7b53](https://github.com/songchenwen/nanopi-r2s/compare/70a1021..6ca7b53)
338 |
339 |
340 | | Commit | Author | Desc |
341 | | :----- | :------| :--- |
342 | | [6ca7b53](https://github.com/songchenwen/nanopi-r2s/commit/6ca7b53) | songchenwen | Add FriendlyWRT Build |
343 |
344 |
345 | #### Lean [d5dc714..5e9e8d8](https://github.com/coolsnowwolf/lede/compare/d5dc714..5e9e8d8)
346 |
347 |
348 | | Commit | Author | Desc |
349 | | :----- | :------| :--- |
350 | | [5e9e8d85](https://github.com/coolsnowwolf/lede/commit/5e9e8d85) | Aes64X | package:add nfs mount luci (#4171) |
351 | | [08637d82](https://github.com/coolsnowwolf/lede/commit/08637d82) | AmadeusGhost | ar71xx: fix alloc_page_frag issue (#4184) |
352 | | [91be31e2](https://github.com/coolsnowwolf/lede/commit/91be31e2) | CN_SZTL | mac80211: fix target name (#4176) |
353 |
354 |
355 |
356 |
357 | --------------
358 |
359 | ## R2S-Lean-2020-04-04-70a1021
360 |
361 | #### Builder [8eacdd5..70a1021](https://github.com/songchenwen/nanopi-r2s/compare/8eacdd5..70a1021)
362 |
363 |
364 | | Commit | Author | Desc |
365 | | :----- | :------| :--- |
366 | | [70a1021](https://github.com/songchenwen/nanopi-r2s/commit/70a1021) | songchenwen | More Detailed Config Seed |
367 |
368 |
369 | #### Lean [d0922b9..d5dc714](https://github.com/coolsnowwolf/lede/compare/d0922b9..d5dc714)
370 |
371 |
372 | | Commit | Author | Desc |
373 | | :----- | :------| :--- |
374 | | [d5dc714e](https://github.com/coolsnowwolf/lede/commit/d5dc714e) | NivalXer | mwlwifi: Update the 88W8964's firmware to 9.3.2.12 and fix backports version detection (#4168) |
375 | | [b344bfb5](https://github.com/coolsnowwolf/lede/commit/b344bfb5) | AmadeusGhost | ath10k-ct: bump to 5.4 (#4165) |
376 | | [7d597c53](https://github.com/coolsnowwolf/lede/commit/7d597c53) | AmadeusGhost | mac80211: switch to upstream owl-loader driver (#4164) |
377 |
378 |
379 |
380 |
381 | --------------
382 |
383 | ## R2S-Lean-2020-04-04-8eacdd5
384 |
385 | #### Lean [78bec3e..d0922b9](https://github.com/coolsnowwolf/lede/compare/78bec3e..d0922b9)
386 |
387 |
388 | | Commit | Author | Desc |
389 | | :----- | :------| :--- |
390 | | [d0922b93](https://github.com/coolsnowwolf/lede/commit/d0922b93) | lean | luci-app-ssr-plus: display log when enable socks5 server only |
391 | | [8faac300](https://github.com/coolsnowwolf/lede/commit/8faac300) | lean | mac80211: Update to version 5.4.27 |
392 | | [17ce0abd](https://github.com/coolsnowwolf/lede/commit/17ce0abd) | lean | kernel: add module for Mellanox mlx Network 10/40Gbps Driver |
393 |
394 |
395 |
396 |
397 | --------------
398 |
399 | ## R2S-Lean-2020-04-03-8eacdd5
400 |
401 | #### Builder [740fb83..8eacdd5](https://github.com/songchenwen/nanopi-r2s/compare/740fb83..8eacdd5)
402 |
403 |
404 | | Commit | Author | Desc |
405 | | :----- | :------| :--- |
406 | | [8eacdd5](https://github.com/songchenwen/nanopi-r2s/commit/8eacdd5) | songchenwen | Follow Upstream |
407 |
408 |
409 | #### ScwPackage [ce98935..3fa6c01](https://github.com/songchenwen/openwrt-package/compare/ce98935..3fa6c01)
410 |
411 |
412 | | Commit | Author | Desc |
413 | | :----- | :------| :--- |
414 | | [e3f3880](https://github.com/songchenwen/openwrt-package/commit/e3f3880) | ShanStone | optimize passwall script & update chinadns-ng (#394) |
415 |
416 |
417 |
418 |
419 | --------------
420 |
421 | ## R2S-Lean-2020-04-03-740fb83
422 |
423 | #### Lean [9a65c3e..78bec3e](https://github.com/coolsnowwolf/lede/compare/9a65c3e..78bec3e)
424 |
425 |
426 | | Commit | Author | Desc |
427 | | :----- | :------| :--- |
428 | | [78bec3e9](https://github.com/coolsnowwolf/lede/commit/78bec3e9) | CN_SZTL | openssl: bump to 1.1.1f (#4153) |
429 |
430 |
431 | #### ScwPackage [66e52f1..ce98935](https://github.com/songchenwen/openwrt-package/compare/66e52f1..ce98935)
432 |
433 |
434 | | Commit | Author | Desc |
435 | | :----- | :------| :--- |
436 | | [8676c5a5c](https://github.com/songchenwen/openwrt-package/commit/8676c5a5c) | Lienol | luci-app-timecontrol: update makefile |
437 | | [4f4599c5a](https://github.com/songchenwen/openwrt-package/commit/4f4599c5a) | Lienol | verysync: revert v1.3.1 |
438 | | [ed7c39dc3](https://github.com/songchenwen/openwrt-package/commit/ed7c39dc3) | Lienol | chinadns-ng: bump to latest version |
439 | | [f28a53eef](https://github.com/songchenwen/openwrt-package/commit/f28a53eef) | Lienol | luci-app-timecontrol: add new package |
440 | | [89b0afb7c](https://github.com/songchenwen/openwrt-package/commit/89b0afb7c) | Lienol | luci-app-timewol: add etherwake depends by default |
441 | | [0d9606089](https://github.com/songchenwen/openwrt-package/commit/0d9606089) | Lienol | remove mia package |
442 | | [02d20542e](https://github.com/songchenwen/openwrt-package/commit/02d20542e) | Lienol | ipsec: fix when flowoffload on |
443 | | [3c35b15dc](https://github.com/songchenwen/openwrt-package/commit/3c35b15dc) | Lienol | Update README.md |
444 |
445 |
446 |
447 |
448 | --------------
449 |
450 | ## R2S-Lean-2020-04-02-740fb83
451 |
452 | #### Builder [d760b63..740fb83](https://github.com/songchenwen/nanopi-r2s/compare/d760b63..740fb83)
453 |
454 |
455 | | Commit | Author | Desc |
456 | | :----- | :------| :--- |
457 | | [740fb83](https://github.com/songchenwen/nanopi-r2s/commit/740fb83) | songchenwen | Remove xlnetacc |
458 |
459 |
460 | #### Lean [f8bd6e0..9a65c3e](https://github.com/coolsnowwolf/lede/compare/f8bd6e0..9a65c3e)
461 |
462 |
463 | | Commit | Author | Desc |
464 | | :----- | :------| :--- |
465 | | [9a65c3ef](https://github.com/coolsnowwolf/lede/commit/9a65c3ef) | AmadeusGhost | treewide: revert use new procd sysupgrade variable (#4139) |
466 | | [e56bd418](https://github.com/coolsnowwolf/lede/commit/e56bd418) | mjyhj | luci-app-diskman: bump to 0.2.7 (#4144) |
467 |
468 |
469 | #### ScwPackage [f3dffb7..66e52f1](https://github.com/songchenwen/openwrt-package/compare/f3dffb7..66e52f1)
470 |
471 |
472 | | Commit | Author | Desc |
473 | | :----- | :------| :--- |
474 | | [58ea9a57c](https://github.com/songchenwen/openwrt-package/commit/58ea9a57c) | Lienol | Update README.md |
475 |
476 |
477 |
478 |
479 | --------------
480 |
481 | ## R2S-Lean-2020-04-01-d760b63
482 |
483 | #### Builder [330d4b0..d760b63](https://github.com/songchenwen/nanopi-r2s/compare/330d4b0..d760b63)
484 |
485 |
486 | | Commit | Author | Desc |
487 | | :----- | :------| :--- |
488 | | [d760b63](https://github.com/songchenwen/nanopi-r2s/commit/d760b63) | songchenwen | Change Log for No Master Branch |
489 |
490 |
491 | #### Argon [03697cf..3e41f5b](https://github.com/jerrykuku/luci-theme-argon/compare/03697cf..3e41f5b)
492 |
493 |
494 | | Commit | Author | Desc |
495 | | :----- | :------| :--- |
496 | | [3e41f5b](https://github.com/jerrykuku/luci-theme-argon/commit/3e41f5b) | jerrykuku | fix display error |
497 | | [c37f44b](https://github.com/jerrykuku/luci-theme-argon/commit/c37f44b) | jerrykuku | Update README_ZH.md |
498 | | [f4f88cb](https://github.com/jerrykuku/luci-theme-argon/commit/f4f88cb) | jerrykuku | fix side scroll bar color |
499 | | [ea29300](https://github.com/jerrykuku/luci-theme-argon/commit/ea29300) | jerrykuku | Add dark mode |
500 |
501 |
502 | #### Lean [427e7ec..f8bd6e0](https://github.com/coolsnowwolf/lede/compare/427e7ec..f8bd6e0)
503 |
504 |
505 | | Commit | Author | Desc |
506 | | :----- | :------| :--- |
507 | | [f8bd6e09](https://github.com/coolsnowwolf/lede/commit/f8bd6e09) | CN_SZTL | openssl: revert EOF detection change in 1.1.1 (#4127) |
508 | | [64db0fb9](https://github.com/coolsnowwolf/lede/commit/64db0fb9) | Mattraks | luci-app-cpufreq:Add translation (#4130) |
509 |
510 |
511 |
512 |
513 | --------------
514 |
515 | ## R2S-Lean-2020-03-31-330d4b0
516 |
517 | #### Builder [01ef2c1..330d4b0](https://github.com/songchenwen/nanopi-r2s/compare/01ef2c1..330d4b0)
518 |
519 |
520 | | Commit | Author | Desc |
521 | | :----- | :------| :--- |
522 | | 330d4b0 | songchenwen | Add a Change Log |
523 |
524 |
525 | #### Lean [311a78e..427e7ec](https://github.com/coolsnowwolf/lede/compare/311a78e..427e7ec)
526 |
527 |
528 | | Commit | Author | Desc |
529 | | :----- | :------| :--- |
530 | | 427e7ec5 | lean | luci-app-airplay2: open to all target |
531 | | 32964d4b | lean | luci-app-airplay2: open to all target |
532 | | 3a86ef8c | AmadeusGhost | mac80211: brcm: backport remaining 5.6 kernel patches (#4070) |
533 | | 1188a9ff | Mattraks | luci-app-ssr-plus:Fix update.lua log output and file checking (#4085) |
534 | | aad03293 | lean | x86: switch and optimize 4.19 kernel |
535 | | 34f33cfc | lean | luci-app-airplay2: add audio sample rate setting |
536 | | c6f47f30 | lean | luci-app-airplay2: add audio buffer length setting |
537 | | 51fc01f8 | lean | luci-app-airplay2: add airplay2 for x86 |
538 | | 347ee6ae | lean | luci-app-ssr-plus: add x64 default |
539 | | bea38362 | lean | x86: adjust some kernel module for k4.9 |
540 | | 295e835f | lean | ajust some default package setting for x86 32bit |
541 | | c71b177f | lean | UnblockNeteaseMusicGo: bump to v0.2.0 to fix x86 32bit running |
542 |
543 |
544 | #### ScwPackage [30aa0cc..f3dffb7](https://github.com/songchenwen/openwrt-package/compare/30aa0cc..f3dffb7)
545 |
546 |
547 | | Commit | Author | Desc |
548 | | :----- | :------| :--- |
549 | | 3e23acfff | songchenwen | Github Workflow to Auto Merge Lienol's Packages |
550 | | 6144406b6 | Lienol | ipsec: optimize script |
551 | | fafc9a5ff | songchenwen | Add Clash Config File to Auto Backup |
552 | | 00ae5ca02 | songchenwen | Initial Clash Support for Passwall |
553 |
554 |
555 |
556 |
557 | --------------
558 |
--------------------------------------------------------------------------------
/Lean/README.md:
--------------------------------------------------------------------------------
1 | # Lean
2 |
3 | 以 Lean 为基础, 增加 FriendlyWRT 对 OpenWRT 的改动
4 |
5 | [下载地址](https://github.com/songchenwen/nanopi-r2s/releases/download/Lean-2020-04-17-9f73416/Lean-2020-04-17-9f73416-ROM.zip)
6 |
7 | [改动记录](CHANGELOG.md)
8 |
--------------------------------------------------------------------------------
/Lean/enable_autocore.diff:
--------------------------------------------------------------------------------
1 | diff --git a/package/lean/autocore/Makefile b/package/lean/autocore/Makefile
2 | index 5a3ea11..1f52537 100644
3 | --- a/package/lean/autocore/Makefile
4 | +++ b/package/lean/autocore/Makefile
5 | @@ -17,7 +17,7 @@ include $(INCLUDE_DIR)/package.mk
6 | define Package/autocore
7 | TITLE:=x86/x64 auto core loadbalance script.
8 | MAINTAINER:=Lean
9 | - DEPENDS:=@TARGET_x86 +bc +lm-sensors +ethtool
10 | + DEPENDS:=+bc +lm-sensors +ethtool
11 | endef
12 |
13 | define Package/autocore/description
14 | diff --git a/package/lean/autocore/files/autocore b/package/lean/autocore/files/autocore
15 | index 55cd519..06d202c 100755
16 | --- a/package/lean/autocore/files/autocore
17 | +++ b/package/lean/autocore/files/autocore
18 | @@ -33,7 +33,7 @@ start()
19 | g=${a}${b}${c}${d}${e}${f}
20 |
21 | mkdir -p /tmp/sysinfo
22 | - echo $g > /tmp/sysinfo/model
23 | + #echo $g > /tmp/sysinfo/model
24 |
25 | a=$(ip address | grep ^[0-9] | awk -F: '{print $2}' | sed "s/ //g" | grep '^[e]' | grep -v "@" | grep -v "\.")
26 | b=$(echo "$a" | wc -l)
27 | @@ -44,7 +44,7 @@ start()
28 | ethtool -K $c tx-checksum-ip-generic on >/dev/null 2>&1 || (
29 | ethtool -K $c tx-checksum-ipv4 on >/dev/null 2>&1
30 | ethtool -K $c tx-checksum-ipv6 on >/dev/null 2>&1)
31 | - ethtool -K $c tx-scatter-gather on >/dev/null 2>&1
32 | + #ethtool -K $c tx-scatter-gather on >/dev/null 2>&1
33 | ethtool -K $c gso on >/dev/null 2>&1
34 | ethtool -K $c tso on >/dev/null 2>&1
35 | ethtool -K $c ufo on >/dev/null 2>&1
36 | diff --git a/package/lean/autocore/files/index.htm b/package/lean/autocore/files/index.htm
37 | index 22d1a55..0198c38 100644
38 | --- a/package/lean/autocore/files/index.htm
39 | +++ b/package/lean/autocore/files/index.htm
40 | @@ -720,6 +720,7 @@
41 | <%:Firmware Version%> |
42 | <%=pcdata(ver.distname)%> <%=pcdata(ver.distversion)%> /
43 | <%=pcdata(ver.luciname)%> (<%=pcdata(ver.luciversion)%>)
44 | + built by DYC
45 | |
46 | <%:Kernel Version%> | <%=unameinfo.release or "?"%> |
47 | <%:Local Time%> | - |
48 | diff --git a/package/lean/autocore/files/sbin/cpuinfo b/package/lean/autocore/files/sbin/cpuinfo
49 | index 19ea5fb..60e7acd 100755
50 | --- a/package/lean/autocore/files/sbin/cpuinfo
51 | +++ b/package/lean/autocore/files/sbin/cpuinfo
52 | @@ -2,7 +2,7 @@
53 |
54 | info()
55 | {
56 | - MHz=`grep 'MHz' /proc/cpuinfo | cut -c11- |sed -n '1p'`
57 | + MHz=`echo "$(cat /sys/devices/system/cpu/cpu[04]/cpufreq/cpuinfo_cur_freq)/1000" | bc`
58 | #获取CPU工作频率
59 |
60 | sensors >/dev/null
61 | @@ -12,7 +12,7 @@ info()
62 | #获取CPU核心1温度
63 |
64 | else
65 | - a=""
66 | + a=`echo "scale=2; $(cat /sys/class/thermal/thermal_zone0/temp)/1000" | bc`°
67 | fi
68 | }
69 |
70 |
--------------------------------------------------------------------------------
/Lean/lean_patches.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | cd friendlywrt-rk3328/friendlywrt
3 | git apply ../../Lean/enable_autocore.diff
4 |
5 | git diff -- package/lean/autocore/Makefile
6 |
7 | sed -i '/uci commit luci/i\uci set luci.main.mediaurlbase="/luci-static/argon"' package/lean/default-settings/files/zzz-default-settings
8 | sed -i '/exit/i\chown -R root:root /usr/share/netdata/web' package/lean/default-settings/files/zzz-default-settings
9 | sed -i '/exit/i\find /etc/rc.d/ -name *docker* -delete' package/lean/default-settings/files/zzz-default-settings
10 | sed -i 's/option fullcone\t1/option fullcone\t0/' package/network/config/firewall/files/firewall.config
11 |
12 | echo ""
13 | echo "package/lean/default-settings/files/zzz-default-settings"
14 | cat package/lean/default-settings/files/zzz-default-settings
15 |
16 | echo ""
17 | echo "package/network/config/firewall/files/firewall.config"
18 | cat package/network/config/firewall/files/firewall.config
19 |
20 | mv ../../scripts/check_wan4.sh package/base-files/files/usr/bin && sed -i '/exit/i\/bin/sh /usr/bin/check_wan4.sh &' package/base-files/files/etc/rc.local
21 |
22 | echo ""
23 | echo "package/base-files/files/etc/rc.local"
24 | cat package/base-files/files/etc/rc.local
25 |
26 | sed -i "s/65536/65535/" package/kernel/linux/files/sysctl-nf-conntrack.conf
27 |
--------------------------------------------------------------------------------
/Lean/patch_kernel_5.4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | cd friendlywrt-rk3328
3 | cd kernel/
4 | git apply ../../add_fullconenat.diff
5 | wget https://github.com/armbian/build/raw/master/patch/kernel/rockchip64-dev/RK3328-enable-1512mhz-opp.patch
6 | git apply RK3328-enable-1512mhz-opp.patch
7 | cd ../
8 | git clone https://github.com/openwrt/openwrt && cd openwrt/
9 | #git checkout 4e0c54bc5bc8381e031af5147b66b4dadeecc626
10 | rm -f target/linux/generic/pending-5.4/184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch
11 | rm -f target/linux/generic/pending-5.4/403-mtd-hook-mtdsplit-to-Kbuild.patch
12 | rm -f target/linux/generic/hack-5.4/700-swconfig_switch_drivers.patch
13 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/backport-5.4
14 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/pending-5.4
15 | ./scripts/patch-kernel.sh ../kernel target/linux/generic/hack-5.4
16 | cd ../
17 | wget https://github.com/torvalds/linux/raw/master/scripts/kconfig/merge_config.sh && chmod +x merge_config.sh
18 | grep -i '_NETFILTER_\|FLOW' ../Lean/.config.override > .config.override
19 | ./merge_config.sh -m .config.override kernel/arch/arm64/configs/nanopi-r2_linux_defconfig && mv .config kernel/arch/arm64/configs/nanopi-r2_linux_defconfig
20 |
--------------------------------------------------------------------------------
/Lean/rebase_on_lean.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | cd friendlywrt-rk3328
3 | find device/ -name distfeeds.conf -delete
4 | cd friendlywrt
5 | git config --global user.email "action@github.com" && git config --global user.name "GitHub Action"
6 | ../../set_repo_hash.sh Lean https://github.com/coolsnowwolf/lede.git
7 | git remote add upstream https://github.com/coolsnowwolf/lede.git && git fetch upstream
8 | git rebase adc1a9a3676b8d7be1b48b5aed185a94d8e42728^ --onto upstream/master -X ours
9 | echo ""
10 | git status
11 | echo ""
12 | git checkout upstream/master -- feeds.conf.default
13 | git checkout upstream/master -- package/kernel/mac80211/files/lib/netifd/mac80211.sh
14 | echo ""
15 | git status
16 | echo ""
17 | echo "feeds.conf.default"
18 | cat feeds.conf.default
19 |
--------------------------------------------------------------------------------
/Lean/repo_used_path.env:
--------------------------------------------------------------------------------
1 | LeanLuci=applications/luci-app-ddns applications/luci-app-watchcat applications/luci-app-wol modules
2 | LeanPackage=utils/collectd utils/bash utils/watchcat
3 | ScwPackage=lienol/luci-app-passwall lienol/luci-app-ramfree lienol/luci-theme-argon-dark-mod package
--------------------------------------------------------------------------------
/Lean/status.env:
--------------------------------------------------------------------------------
1 | ServerChanHash=5ae8cd2
2 | BuilderHash=9f73416
3 | FriendlyWRTHash=6025df0
4 | ArgonHash=3e41f5b
5 | AdguardHomeHash=37fdf50
6 | LeanHash=6b142ba
7 | ScwPackageHash=6f5d6af
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Nanopi R2S 固件自动编译
2 |
3 | [](https://github.com/songchenwen/nanopi-r2s/actions?query=workflow%3Afriendlywrt)
4 | [](https://github.com/songchenwen/nanopi-r2s/actions?query=workflow%3AFwF)
5 |
6 | ~~编译了两种固件,分别是基于 Lean 的和基于官方固件的。~~
7 |
8 | FriendlyWRT 和 FwF 是基于官方固件的版本,主要求稳,没有解锁 CPU 主频, ~~也没添加 Flow Offload,~~ 实测性能够用,温度还低,推荐作为家庭主路由拿来长期使用。
9 |
10 | 点击下方固件名字,可找到对应版本固件的最新下载链接。图形化刷机工具 [luci-app-r2sflasher](luci-app-r2sflasher) 的 ipk 安装包也在下载到的 zip 里。
11 |
12 | | 固件名字 | 改动记录 | 简介 |
13 | | :------ | :----- | :--- |
14 | | [FriendlyWRT](FriendlyWRT) | [改动记录](FriendlyWRT/CHANGELOG.md) | 以官方固件为基础, 添加 Lean 的包 |
15 | | [FwF](FwF) | [改动记录](FwF/CHANGELOG.md) | FriendlyWRT with Features, 比上面的固件含有更多功能 |
16 |
17 | 默认 LAN 口 IP `192.168.2.1` 默认密码 `password`
18 |
19 | 4月14日之后的版本加入了 [luci-app-r2sflasher](luci-app-r2sflasher), 可以图形化刷机了。
20 |
21 | 4月23日之后,有了[专为 NanoPi R2S 准备的软件源](https://songchenwen.com/nanopi-r2s-opkg-feeds/packages)。缺少的包可以自行从源里安装了。
22 |
23 | 4月30日之后,开始使用 [Chuck 的 Kernel](https://github.com/fanck0605/friendlywrt-kernel),可以开启 Flow Offload 和 FullCone NAT,并且 firewall 也不崩溃了。
24 |
25 | Fork 自 [klever1988](https://github.com/klever1988/nanopi-openwrt) 和 [soffchen](https://github.com/soffchen/NanoPi-R2S)
26 |
27 | 主要整合了 [Passwall](https://github.com/songchenwen/openwrt-package) 和 AdguardHome
28 |
29 | 其中 [Passwall](https://github.com/songchenwen/openwrt-package) 是修改版本,支持 Clash。Passwall 比 OpenClash 的好处是,OpenClash 所有流量都需要经过 Clash 转发,有性能损耗。[Passwall](https://github.com/songchenwen/openwrt-package) 可以设置规则只转发部分流量。
30 |
31 | WAN 口 DHCP 时,NAT 性能和温度 ⬇️
32 |
33 | 
34 |
35 | WAN 口 PPPOE 时,NAT 性能和温度 ⬇️
36 |
37 | 
38 |
39 | Fast.com 测速 ⬇️
40 |
41 | 
42 |
43 | Fast.com 测速 WAN 口 DHCP 时 CPU 占用和温度 ( WAN 口 PPPOE 的话,CPU 占用增加 20% 左右 ) ⬇️
44 |
45 | 
46 |
47 |
--------------------------------------------------------------------------------
/add_fullconenat.diff:
--------------------------------------------------------------------------------
1 | diff --git a/arch/arm64/configs/nanopi-r2_linux_defconfig b/arch/arm64/configs/nanopi-r2_linux_defconfig
2 | index 240a9bf57..9f8f37ca7 100644
3 | --- a/arch/arm64/configs/nanopi-r2_linux_defconfig
4 | +++ b/arch/arm64/configs/nanopi-r2_linux_defconfig
5 | @@ -1665,3 +1665,4 @@ CONFIG_SCHEDSTATS=y
6 | CONFIG_DEBUG_SPINLOCK=y
7 | CONFIG_FUNCTION_TRACER=y
8 | CONFIG_BLK_DEV_IO_TRACE=y
9 | +CONFIG_IP_NF_TARGET_FULLCONENAT=y
10 | diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig
11 | index f17b40211..99f691a67 100644
12 | --- a/net/ipv4/netfilter/Kconfig
13 | +++ b/net/ipv4/netfilter/Kconfig
14 | @@ -239,6 +239,15 @@ config IP_NF_TARGET_NETMAP
15 | (e.g. when running oldconfig). It selects
16 | CONFIG_NETFILTER_XT_TARGET_NETMAP.
17 |
18 | +config IP_NF_TARGET_FULLCONENAT
19 | + tristate "FULLCONENAT target support"
20 | + depends on NETFILTER_ADVANCED
21 | + select NETFILTER_XT_TARGET_FULLCONENAT
22 | + ---help---
23 | + This is a backwards-compat option for the user's convenience
24 | + (e.g. when running oldconfig). It selects
25 | + CONFIG_NETFILTER_XT_TARGET_FULLCONENAT.
26 | +
27 | config IP_NF_TARGET_REDIRECT
28 | tristate "REDIRECT target support"
29 | depends on NETFILTER_ADVANCED
30 | diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
31 | index 91efae88e..17f5c748a 100644
32 | --- a/net/netfilter/Kconfig
33 | +++ b/net/netfilter/Kconfig
34 | @@ -956,6 +956,14 @@ config NETFILTER_XT_TARGET_NETMAP
35 |
36 | To compile it as a module, choose M here. If unsure, say N.
37 |
38 | +config NETFILTER_XT_TARGET_FULLCONENAT
39 | + tristate '"FULLCONENAT" target support'
40 | + depends on NF_NAT
41 | + ---help---
42 | + Full Cone NAT
43 | +
44 | + To compile it as a module, choose M here. If unsure, say N.
45 | +
46 | config NETFILTER_XT_TARGET_NFLOG
47 | tristate '"NFLOG" target support'
48 | default m if NETFILTER_ADVANCED=n
49 | diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
50 | index 4fc075b61..2b588d5a5 100644
51 | --- a/net/netfilter/Makefile
52 | +++ b/net/netfilter/Makefile
53 | @@ -209,3 +209,6 @@ obj-$(CONFIG_IP_SET) += ipset/
54 |
55 | # IPVS
56 | obj-$(CONFIG_IP_VS) += ipvs/
57 | +
58 | +# Full cone NAT
59 | +obj-$(CONFIG_NETFILTER_XT_TARGET_FULLCONENAT) += xt_FULLCONENAT.o
60 | diff --git a/net/netfilter/xt_FULLCONENAT.c b/net/netfilter/xt_FULLCONENAT.c
61 | new file mode 100644
62 | index 000000000..8555b54e2
63 | --- /dev/null
64 | +++ b/net/netfilter/xt_FULLCONENAT.c
65 | @@ -0,0 +1,733 @@
66 | +/*
67 | + * Copyright (c) 2018 Chion Tang
68 | + *
69 | + * This program is free software; you can redistribute it and/or modify
70 | + * it under the terms of the GNU General Public License version 2 as
71 | + * published by the Free Software Foundation.
72 | + */
73 | +
74 | +#include
75 | +#include
76 | +#include
77 | +#include
78 | +#include
79 | +#include
80 | +#include
81 | +#include
82 | +#include
83 | +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS
84 | +#include
85 | +#endif
86 | +#include
87 | +#include
88 | +#include
89 | +#include
90 | +#include
91 | +#include
92 | +#include
93 | +#include
94 | +#include
95 | +
96 | +#define HASH_2(x, y) ((x + y) / 2 * (x + y + 1) + y)
97 | +
98 | +#define HASHTABLE_BUCKET_BITS 10
99 | +
100 | +#ifndef NF_NAT_RANGE_PROTO_RANDOM_FULLY
101 | +#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4)
102 | +#endif
103 | +
104 | +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
105 | +
106 | +static inline int nf_ct_netns_get(struct net *net, u8 nfproto) { return 0; }
107 | +
108 | +static inline void nf_ct_netns_put(struct net *net, u8 nfproto) {}
109 | +
110 | +static inline struct net_device *xt_in(const struct xt_action_param *par) {
111 | + return par->in;
112 | +}
113 | +
114 | +static inline struct net_device *xt_out(const struct xt_action_param *par) {
115 | + return par->out;
116 | +}
117 | +
118 | +static inline unsigned int xt_hooknum(const struct xt_action_param *par) {
119 | + return par->hooknum;
120 | +}
121 | +
122 | +#endif
123 | +
124 | +struct nat_mapping_original_tuple {
125 | + struct nf_conntrack_tuple tuple;
126 | +
127 | + struct list_head node;
128 | +};
129 | +
130 | +struct nat_mapping {
131 | + uint16_t port; /* external UDP port */
132 | + int ifindex; /* external interface index*/
133 | +
134 | + __be32 int_addr; /* internal source ip address */
135 | + uint16_t int_port; /* internal source port */
136 | +
137 | + int refer_count; /* how many references linked to this mapping
138 | + * aka. length of original_tuple_list */
139 | +
140 | + struct list_head original_tuple_list;
141 | +
142 | + struct hlist_node node_by_ext_port;
143 | + struct hlist_node node_by_int_src;
144 | +
145 | +};
146 | +
147 | +struct tuple_list {
148 | + struct nf_conntrack_tuple tuple_original;
149 | + struct nf_conntrack_tuple tuple_reply;
150 | + struct list_head list;
151 | +};
152 | +
153 | +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS
154 | +struct notifier_block ct_event_notifier;
155 | +#else
156 | +struct nf_ct_event_notifier ct_event_notifier;
157 | +#endif
158 | +int tg_refer_count = 0;
159 | +int ct_event_notifier_registered = 0;
160 | +
161 | +static DEFINE_MUTEX(nf_ct_net_event_lock);
162 | +
163 | +static DEFINE_HASHTABLE(mapping_table_by_ext_port, HASHTABLE_BUCKET_BITS);
164 | +static DEFINE_HASHTABLE(mapping_table_by_int_src, HASHTABLE_BUCKET_BITS);
165 | +
166 | +static DEFINE_SPINLOCK(fullconenat_lock);
167 | +
168 | +static LIST_HEAD(dying_tuple_list);
169 | +static DEFINE_SPINLOCK(dying_tuple_list_lock);
170 | +static void gc_worker(struct work_struct *work);
171 | +static struct workqueue_struct *wq __read_mostly = NULL;
172 | +static DECLARE_DELAYED_WORK(gc_worker_wk, gc_worker);
173 | +
174 | +static char tuple_tmp_string[512];
175 | +/* non-atomic: can only be called serially within lock zones. */
176 | +static char* nf_ct_stringify_tuple(const struct nf_conntrack_tuple *t) {
177 | + snprintf(tuple_tmp_string, sizeof(tuple_tmp_string), "%pI4:%hu -> %pI4:%hu",
178 | + &t->src.u3.ip, be16_to_cpu(t->src.u.all),
179 | + &t->dst.u3.ip, be16_to_cpu(t->dst.u.all));
180 | + return tuple_tmp_string;
181 | +}
182 | +
183 | +static struct nat_mapping* allocate_mapping(const __be32 int_addr, const uint16_t int_port, const uint16_t port, const int ifindex) {
184 | + struct nat_mapping *p_new;
185 | + u32 hash_src;
186 | +
187 | + p_new = kmalloc(sizeof(struct nat_mapping), GFP_ATOMIC);
188 | + if (p_new == NULL) {
189 | + pr_debug("xt_FULLCONENAT: ERROR: kmalloc() for new nat_mapping failed.\n");
190 | + return NULL;
191 | + }
192 | + p_new->port = port;
193 | + p_new->int_addr = int_addr;
194 | + p_new->int_port = int_port;
195 | + p_new->ifindex = ifindex;
196 | + p_new->refer_count = 0;
197 | + (p_new->original_tuple_list).next = &(p_new->original_tuple_list);
198 | + (p_new->original_tuple_list).prev = &(p_new->original_tuple_list);
199 | +
200 | + hash_src = HASH_2(int_addr, (u32)int_port);
201 | +
202 | + hash_add(mapping_table_by_ext_port, &p_new->node_by_ext_port, port);
203 | + hash_add(mapping_table_by_int_src, &p_new->node_by_int_src, hash_src);
204 | +
205 | + pr_debug("xt_FULLCONENAT: new mapping allocated for %pI4:%d ==> %d\n",
206 | + &p_new->int_addr, p_new->int_port, p_new->port);
207 | +
208 | + return p_new;
209 | +}
210 | +
211 | +static void add_original_tuple_to_mapping(struct nat_mapping *mapping, const struct nf_conntrack_tuple* original_tuple) {
212 | + struct nat_mapping_original_tuple *item = kmalloc(sizeof(struct nat_mapping_original_tuple), GFP_ATOMIC);
213 | + if (item == NULL) {
214 | + pr_debug("xt_FULLCONENAT: ERROR: kmalloc() for nat_mapping_original_tuple failed.\n");
215 | + return;
216 | + }
217 | + memcpy(&item->tuple, original_tuple, sizeof(struct nf_conntrack_tuple));
218 | + list_add(&item->node, &mapping->original_tuple_list);
219 | + (mapping->refer_count)++;
220 | +}
221 | +
222 | +static struct nat_mapping* get_mapping_by_ext_port(const uint16_t port, const int ifindex) {
223 | + struct nat_mapping *p_current;
224 | +
225 | + hash_for_each_possible(mapping_table_by_ext_port, p_current, node_by_ext_port, port) {
226 | + if (p_current->port == port && p_current->ifindex == ifindex) {
227 | + return p_current;
228 | + }
229 | + }
230 | +
231 | + return NULL;
232 | +}
233 | +
234 | +static struct nat_mapping* get_mapping_by_int_src(const __be32 src_ip, const uint16_t src_port) {
235 | + struct nat_mapping *p_current;
236 | + u32 hash_src = HASH_2(src_ip, (u32)src_port);
237 | +
238 | + hash_for_each_possible(mapping_table_by_int_src, p_current, node_by_int_src, hash_src) {
239 | + if (p_current->int_addr == src_ip && p_current->int_port == src_port) {
240 | + return p_current;
241 | + }
242 | + }
243 | +
244 | + return NULL;
245 | +}
246 | +
247 | +static void kill_mapping(struct nat_mapping *mapping) {
248 | + struct list_head *iter, *tmp;
249 | + struct nat_mapping_original_tuple *original_tuple_item;
250 | +
251 | + if (mapping == NULL) {
252 | + return;
253 | + }
254 | +
255 | + list_for_each_safe(iter, tmp, &mapping->original_tuple_list) {
256 | + original_tuple_item = list_entry(iter, struct nat_mapping_original_tuple, node);
257 | + list_del(&original_tuple_item->node);
258 | + kfree(original_tuple_item);
259 | + }
260 | +
261 | + hash_del(&mapping->node_by_ext_port);
262 | + hash_del(&mapping->node_by_int_src);
263 | + kfree(mapping);
264 | +}
265 | +
266 | +static void destroy_mappings(void) {
267 | + struct nat_mapping *p_current;
268 | + struct hlist_node *tmp;
269 | + int i;
270 | +
271 | + spin_lock_bh(&fullconenat_lock);
272 | +
273 | + hash_for_each_safe(mapping_table_by_ext_port, i, tmp, p_current, node_by_ext_port) {
274 | + kill_mapping(p_current);
275 | + }
276 | +
277 | + spin_unlock_bh(&fullconenat_lock);
278 | +}
279 | +
280 | +/* check if a mapping is valid.
281 | + * possibly delete and free an invalid mapping.
282 | + * the mapping should not be used anymore after check_mapping() returns 0. */
283 | +static int check_mapping(struct nat_mapping* mapping, struct net *net, const struct nf_conntrack_zone *zone) {
284 | + struct list_head *iter, *tmp;
285 | + struct nat_mapping_original_tuple *original_tuple_item;
286 | + struct nf_conntrack_tuple_hash *tuple_hash;
287 | + struct nf_conn *ct;
288 | +
289 | + if (mapping == NULL) {
290 | + return 0;
291 | + }
292 | +
293 | + if (mapping->port == 0 || mapping->int_addr == 0 || mapping->int_port == 0 || mapping->ifindex == -1) {
294 | + return 0;
295 | + }
296 | +
297 | + /* for dying/unconfirmed conntrack tuples, an IPCT_DESTROY event may NOT be fired.
298 | + * so we manually kill one of those tuples once we acquire one. */
299 | +
300 | + list_for_each_safe(iter, tmp, &mapping->original_tuple_list) {
301 | + original_tuple_item = list_entry(iter, struct nat_mapping_original_tuple, node);
302 | +
303 | + tuple_hash = nf_conntrack_find_get(net, zone, &original_tuple_item->tuple);
304 | +
305 | + if (tuple_hash == NULL) {
306 | + pr_debug("xt_FULLCONENAT: check_mapping(): tuple %s dying/unconfirmed. free this tuple.\n", nf_ct_stringify_tuple(&original_tuple_item->tuple));
307 | +
308 | + list_del(&original_tuple_item->node);
309 | + kfree(original_tuple_item);
310 | + (mapping->refer_count)--;
311 | + } else {
312 | + ct = nf_ct_tuplehash_to_ctrack(tuple_hash);
313 | + if (ct != NULL)
314 | + nf_ct_put(ct);
315 | + }
316 | +
317 | + }
318 | +
319 | + /* kill the mapping if need */
320 | + pr_debug("xt_FULLCONENAT: check_mapping() refer_count for mapping at ext_port %d is now %d\n", mapping->port, mapping->refer_count);
321 | + if (mapping->refer_count <= 0) {
322 | + pr_debug("xt_FULLCONENAT: check_mapping(): kill dying/unconfirmed mapping at ext port %d\n", mapping->port);
323 | + kill_mapping(mapping);
324 | + return 0;
325 | + } else {
326 | + return 1;
327 | + }
328 | +}
329 | +
330 | +static void handle_dying_tuples(void) {
331 | + struct list_head *iter, *tmp, *iter_2, *tmp_2;
332 | + struct tuple_list *item;
333 | + struct nf_conntrack_tuple *ct_tuple;
334 | + struct nat_mapping *mapping;
335 | + __be32 ip;
336 | + uint16_t port;
337 | + struct nat_mapping_original_tuple *original_tuple_item;
338 | +
339 | + spin_lock_bh(&fullconenat_lock);
340 | + spin_lock_bh(&dying_tuple_list_lock);
341 | +
342 | + list_for_each_safe(iter, tmp, &dying_tuple_list) {
343 | + item = list_entry(iter, struct tuple_list, list);
344 | +
345 | + /* we dont know the conntrack direction for now so we try in both ways. */
346 | + ct_tuple = &(item->tuple_original);
347 | + ip = (ct_tuple->src).u3.ip;
348 | + port = be16_to_cpu((ct_tuple->src).u.udp.port);
349 | + mapping = get_mapping_by_int_src(ip, port);
350 | + if (mapping == NULL) {
351 | + ct_tuple = &(item->tuple_reply);
352 | + ip = (ct_tuple->src).u3.ip;
353 | + port = be16_to_cpu((ct_tuple->src).u.udp.port);
354 | + mapping = get_mapping_by_int_src(ip, port);
355 | + if (mapping != NULL) {
356 | + pr_debug("xt_FULLCONENAT: handle_dying_tuples(): INBOUND dying conntrack at ext port %d\n", mapping->port);
357 | + }
358 | + } else {
359 | + pr_debug("xt_FULLCONENAT: handle_dying_tuples(): OUTBOUND dying conntrack at ext port %d\n", mapping->port);
360 | + }
361 | +
362 | + if (mapping == NULL) {
363 | + goto next;
364 | + }
365 | +
366 | + /* look for the corresponding out-dated tuple and free it */
367 | + list_for_each_safe(iter_2, tmp_2, &mapping->original_tuple_list) {
368 | + original_tuple_item = list_entry(iter_2, struct nat_mapping_original_tuple, node);
369 | +
370 | + if (nf_ct_tuple_equal(&original_tuple_item->tuple, &(item->tuple_original))) {
371 | + pr_debug("xt_FULLCONENAT: handle_dying_tuples(): tuple %s expired. free this tuple.\n",
372 | + nf_ct_stringify_tuple(&original_tuple_item->tuple));
373 | + list_del(&original_tuple_item->node);
374 | + kfree(original_tuple_item);
375 | + (mapping->refer_count)--;
376 | + }
377 | + }
378 | +
379 | + /* then kill the mapping if needed*/
380 | + pr_debug("xt_FULLCONENAT: handle_dying_tuples(): refer_count for mapping at ext_port %d is now %d\n", mapping->port, mapping->refer_count);
381 | + if (mapping->refer_count <= 0) {
382 | + pr_debug("xt_FULLCONENAT: handle_dying_tuples(): kill expired mapping at ext port %d\n", mapping->port);
383 | + kill_mapping(mapping);
384 | + }
385 | +
386 | +next:
387 | + list_del(&item->list);
388 | + kfree(item);
389 | + }
390 | +
391 | + spin_unlock_bh(&dying_tuple_list_lock);
392 | + spin_unlock_bh(&fullconenat_lock);
393 | +}
394 | +
395 | +static void gc_worker(struct work_struct *work) {
396 | + handle_dying_tuples();
397 | +}
398 | +
399 | +/* conntrack destroy event callback function */
400 | +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS
401 | +static int ct_event_cb(struct notifier_block *this, unsigned long events, void *ptr) {
402 | + struct nf_ct_event *item = ptr;
403 | +#else
404 | +static int ct_event_cb(unsigned int events, struct nf_ct_event *item) {
405 | +#endif
406 | + struct nf_conn *ct;
407 | + struct nf_conntrack_tuple *ct_tuple_reply, *ct_tuple_original;
408 | + uint8_t protonum;
409 | + struct tuple_list *dying_tuple_item;
410 | +
411 | + ct = item->ct;
412 | + /* we handle only conntrack destroy events */
413 | + if (ct == NULL || !(events & (1 << IPCT_DESTROY))) {
414 | + return 0;
415 | + }
416 | +
417 | + ct_tuple_original = &(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple);
418 | +
419 | + ct_tuple_reply = &(ct->tuplehash[IP_CT_DIR_REPLY].tuple);
420 | +
421 | + protonum = (ct_tuple_original->dst).protonum;
422 | + if (protonum != IPPROTO_UDP) {
423 | + return 0;
424 | + }
425 | +
426 | + dying_tuple_item = kmalloc(sizeof(struct tuple_list), GFP_ATOMIC);
427 | +
428 | + if (dying_tuple_item == NULL) {
429 | + pr_debug("xt_FULLCONENAT: warning: ct_event_cb(): kmalloc failed.\n");
430 | + return 0;
431 | + }
432 | +
433 | + memcpy(&(dying_tuple_item->tuple_original), ct_tuple_original, sizeof(struct nf_conntrack_tuple));
434 | + memcpy(&(dying_tuple_item->tuple_reply), ct_tuple_reply, sizeof(struct nf_conntrack_tuple));
435 | +
436 | + spin_lock_bh(&dying_tuple_list_lock);
437 | +
438 | + list_add(&(dying_tuple_item->list), &dying_tuple_list);
439 | +
440 | + spin_unlock_bh(&dying_tuple_list_lock);
441 | +
442 | + if (wq != NULL)
443 | + queue_delayed_work(wq, &gc_worker_wk, msecs_to_jiffies(100));
444 | +
445 | + return 0;
446 | +}
447 | +
448 | +static __be32 get_device_ip(const struct net_device* dev) {
449 | + struct in_device* in_dev;
450 | + struct in_ifaddr* if_info;
451 | + __be32 result;
452 | +
453 | + if (dev == NULL) {
454 | + return 0;
455 | + }
456 | +
457 | + rcu_read_lock();
458 | + in_dev = dev->ip_ptr;
459 | + if (in_dev == NULL) {
460 | + rcu_read_unlock();
461 | + return 0;
462 | + }
463 | + if_info = in_dev->ifa_list;
464 | + if (if_info) {
465 | + result = if_info->ifa_local;
466 | + rcu_read_unlock();
467 | + return result;
468 | + } else {
469 | + rcu_read_unlock();
470 | + return 0;
471 | + }
472 | +}
473 | +
474 | +static uint16_t find_appropriate_port(struct net *net, const struct nf_conntrack_zone *zone, const uint16_t original_port, const int ifindex, const struct nf_nat_ipv4_range *range) {
475 | + uint16_t min, start, selected, range_size, i;
476 | + struct nat_mapping* mapping = NULL;
477 | +
478 | + if (range->flags & NF_NAT_RANGE_PROTO_SPECIFIED) {
479 | + min = be16_to_cpu((range->min).udp.port);
480 | + range_size = be16_to_cpu((range->max).udp.port) - min + 1;
481 | + } else {
482 | + /* minimum port is 1024. same behavior as default linux NAT. */
483 | + min = 1024;
484 | + range_size = 65535 - min + 1;
485 | + }
486 | +
487 | + if ((range->flags & NF_NAT_RANGE_PROTO_RANDOM)
488 | + || (range->flags & NF_NAT_RANGE_PROTO_RANDOM_FULLY)) {
489 | + /* for now we do the same thing for both --random and --random-fully */
490 | +
491 | + /* select a random starting point */
492 | + start = (uint16_t)(prandom_u32() % (u32)range_size);
493 | + } else {
494 | +
495 | + if ((original_port >= min && original_port <= min + range_size - 1)
496 | + || !(range->flags & NF_NAT_RANGE_PROTO_SPECIFIED)) {
497 | + /* 1. try to preserve the port if it's available */
498 | + mapping = get_mapping_by_ext_port(original_port, ifindex);
499 | + if (mapping == NULL || !(check_mapping(mapping, net, zone))) {
500 | + return original_port;
501 | + }
502 | + }
503 | +
504 | + /* otherwise, we start from zero */
505 | + start = 0;
506 | + }
507 | +
508 | + for (i = 0; i < range_size; i++) {
509 | + /* 2. try to find an available port */
510 | + selected = min + ((start + i) % range_size);
511 | + mapping = get_mapping_by_ext_port(selected, ifindex);
512 | + if (mapping == NULL || !(check_mapping(mapping, net, zone))) {
513 | + return selected;
514 | + }
515 | + }
516 | +
517 | + /* 3. at least we tried. override a previous mapping. */
518 | + selected = min + start;
519 | + mapping = get_mapping_by_ext_port(selected, ifindex);
520 | + kill_mapping(mapping);
521 | +
522 | + return selected;
523 | +}
524 | +
525 | +static unsigned int fullconenat_tg(struct sk_buff *skb, const struct xt_action_param *par)
526 | +{
527 | + const struct nf_nat_ipv4_multi_range_compat *mr;
528 | + const struct nf_nat_ipv4_range *range;
529 | +
530 | + const struct nf_conntrack_zone *zone;
531 | + struct net *net;
532 | + struct nf_conn *ct;
533 | + enum ip_conntrack_info ctinfo;
534 | + struct nf_conntrack_tuple *ct_tuple, *ct_tuple_origin;
535 | +
536 | + struct net_device *net_dev;
537 | +
538 | + struct nat_mapping *mapping, *src_mapping;
539 | + unsigned int ret;
540 | +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0)
541 | + struct nf_nat_range2 newrange;
542 | +#else
543 | + struct nf_nat_range newrange;
544 | +#endif
545 | +
546 | + __be32 new_ip, ip;
547 | + uint16_t port, original_port, want_port;
548 | + uint8_t protonum;
549 | + int ifindex;
550 | +
551 | + ip = 0;
552 | + original_port = 0;
553 | + src_mapping = NULL;
554 | +
555 | + mr = par->targinfo;
556 | + range = &mr->range[0];
557 | +
558 | + mapping = NULL;
559 | + ret = XT_CONTINUE;
560 | +
561 | + ct = nf_ct_get(skb, &ctinfo);
562 | + net = nf_ct_net(ct);
563 | + zone = nf_ct_zone(ct);
564 | +
565 | + memset(&newrange.min_addr, 0, sizeof(newrange.min_addr));
566 | + memset(&newrange.max_addr, 0, sizeof(newrange.max_addr));
567 | + newrange.flags = mr->range[0].flags | NF_NAT_RANGE_MAP_IPS;
568 | + newrange.min_proto = mr->range[0].min;
569 | + newrange.max_proto = mr->range[0].max;
570 | +
571 | + if (xt_hooknum(par) == NF_INET_PRE_ROUTING) {
572 | + /* inbound packets */
573 | + ifindex = xt_in(par)->ifindex;
574 | +
575 | + ct_tuple_origin = &(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple);
576 | +
577 | + protonum = (ct_tuple_origin->dst).protonum;
578 | + if (protonum != IPPROTO_UDP) {
579 | + return ret;
580 | + }
581 | + ip = (ct_tuple_origin->dst).u3.ip;
582 | + port = be16_to_cpu((ct_tuple_origin->dst).u.udp.port);
583 | +
584 | + /* get the corresponding ifindex by the dst_ip (aka. external ip of this host),
585 | + * in case the packet needs to be forwarded from another inbound interface. */
586 | + net_dev = ip_dev_find(net, ip);
587 | + if (net_dev != NULL) {
588 | + ifindex = net_dev->ifindex;
589 | + dev_put(net_dev);
590 | + }
591 | +
592 | + spin_lock_bh(&fullconenat_lock);
593 | +
594 | + /* find an active mapping based on the inbound port */
595 | + mapping = get_mapping_by_ext_port(port, ifindex);
596 | + if (mapping == NULL) {
597 | + spin_unlock_bh(&fullconenat_lock);
598 | + return ret;
599 | + }
600 | + if (check_mapping(mapping, net, zone)) {
601 | + newrange.flags = NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED;
602 | + newrange.min_addr.ip = mapping->int_addr;
603 | + newrange.max_addr.ip = mapping->int_addr;
604 | + newrange.min_proto.udp.port = cpu_to_be16(mapping->int_port);
605 | + newrange.max_proto = newrange.min_proto;
606 | +
607 | + pr_debug("xt_FULLCONENAT: %s ==> %pI4:%d\n", nf_ct_stringify_tuple(ct_tuple_origin), &mapping->int_addr, mapping->int_port);
608 | +
609 | + ret = nf_nat_setup_info(ct, &newrange, HOOK2MANIP(xt_hooknum(par)));
610 | +
611 | + if (ret == NF_ACCEPT) {
612 | + add_original_tuple_to_mapping(mapping, ct_tuple_origin);
613 | + pr_debug("xt_FULLCONENAT: fullconenat_tg(): INBOUND: refer_count for mapping at ext_port %d is now %d\n", mapping->port, mapping->refer_count);
614 | + }
615 | + }
616 | + spin_unlock_bh(&fullconenat_lock);
617 | + return ret;
618 | +
619 | +
620 | + } else if (xt_hooknum(par) == NF_INET_POST_ROUTING) {
621 | + /* outbound packets */
622 | + ifindex = xt_out(par)->ifindex;
623 | +
624 | + ct_tuple_origin = &(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple);
625 | + protonum = (ct_tuple_origin->dst).protonum;
626 | +
627 | + spin_lock_bh(&fullconenat_lock);
628 | +
629 | + if (protonum == IPPROTO_UDP) {
630 | + ip = (ct_tuple_origin->src).u3.ip;
631 | + original_port = be16_to_cpu((ct_tuple_origin->src).u.udp.port);
632 | +
633 | + src_mapping = get_mapping_by_int_src(ip, original_port);
634 | + if (src_mapping != NULL && check_mapping(src_mapping, net, zone)) {
635 | +
636 | + /* outbound nat: if a previously established mapping is active,
637 | + * we will reuse that mapping. */
638 | +
639 | + newrange.flags = NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED;
640 | + newrange.min_proto.udp.port = cpu_to_be16(src_mapping->port);
641 | + newrange.max_proto = newrange.min_proto;
642 | +
643 | + } else {
644 | +
645 | + /* if not, we find a new external port to map to.
646 | + * the SNAT may fail so we should re-check the mapped port later. */
647 | + want_port = find_appropriate_port(net, zone, original_port, ifindex, range);
648 | +
649 | + newrange.flags = NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED;
650 | + newrange.min_proto.udp.port = cpu_to_be16(want_port);
651 | + newrange.max_proto = newrange.min_proto;
652 | +
653 | + src_mapping = NULL;
654 | +
655 | + }
656 | + }
657 | +
658 | + if(mr->range[0].flags & NF_NAT_RANGE_MAP_IPS) {
659 | + newrange.min_addr.ip = mr->range[0].min_ip;
660 | + newrange.max_addr.ip = mr->range[0].max_ip;
661 | + } else {
662 | + new_ip = get_device_ip(skb->dev);
663 | + newrange.min_addr.ip = new_ip;
664 | + newrange.max_addr.ip = new_ip;
665 | + }
666 | +
667 | + /* do SNAT now */
668 | + ret = nf_nat_setup_info(ct, &newrange, HOOK2MANIP(xt_hooknum(par)));
669 | +
670 | + if (protonum != IPPROTO_UDP || ret != NF_ACCEPT) {
671 | + /* for non-UDP packets and failed SNAT, bailout */
672 | + spin_unlock_bh(&fullconenat_lock);
673 | + return ret;
674 | + }
675 | +
676 | + /* the reply tuple contains the mapped port. */
677 | + ct_tuple = &(ct->tuplehash[IP_CT_DIR_REPLY].tuple);
678 | + /* this is the resulted mapped port. */
679 | + port = be16_to_cpu((ct_tuple->dst).u.udp.port);
680 | +
681 | + pr_debug("xt_FULLCONENAT: %s ==> %d\n", nf_ct_stringify_tuple(ct_tuple_origin), port);
682 | +
683 | + /* save the mapping information into our mapping table */
684 | + mapping = src_mapping;
685 | + if (mapping == NULL || !check_mapping(mapping, net, zone)) {
686 | + mapping = allocate_mapping(ip, original_port, port, ifindex);
687 | + }
688 | + if (mapping != NULL) {
689 | + add_original_tuple_to_mapping(mapping, ct_tuple_origin);
690 | + pr_debug("xt_FULLCONENAT: fullconenat_tg(): OUTBOUND: refer_count for mapping at ext_port %d is now %d\n", mapping->port, mapping->refer_count);
691 | + }
692 | +
693 | + spin_unlock_bh(&fullconenat_lock);
694 | + return ret;
695 | + }
696 | +
697 | + return ret;
698 | +}
699 | +
700 | +static int fullconenat_tg_check(const struct xt_tgchk_param *par)
701 | +{
702 | + mutex_lock(&nf_ct_net_event_lock);
703 | +
704 | + tg_refer_count++;
705 | +
706 | + pr_debug("xt_FULLCONENAT: fullconenat_tg_check(): tg_refer_count is now %d\n", tg_refer_count);
707 | +
708 | + if (tg_refer_count == 1) {
709 | + nf_ct_netns_get(par->net, par->family);
710 | +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS
711 | + ct_event_notifier.notifier_call = ct_event_cb;
712 | +#else
713 | + ct_event_notifier.fcn = ct_event_cb;
714 | +#endif
715 | +
716 | + if (nf_conntrack_register_notifier(par->net, &ct_event_notifier) == 0) {
717 | + ct_event_notifier_registered = 1;
718 | + pr_debug("xt_FULLCONENAT: fullconenat_tg_check(): ct_event_notifier registered\n");
719 | + } else {
720 | + printk("xt_FULLCONENAT: warning: failed to register a conntrack notifier. Disable active GC for mappings.\n");
721 | + }
722 | +
723 | + }
724 | +
725 | + mutex_unlock(&nf_ct_net_event_lock);
726 | +
727 | + return 0;
728 | +}
729 | +
730 | +static void fullconenat_tg_destroy(const struct xt_tgdtor_param *par)
731 | +{
732 | + mutex_lock(&nf_ct_net_event_lock);
733 | +
734 | + tg_refer_count--;
735 | +
736 | + pr_debug("xt_FULLCONENAT: fullconenat_tg_destroy(): tg_refer_count is now %d\n", tg_refer_count);
737 | +
738 | + if (tg_refer_count == 0) {
739 | + if (ct_event_notifier_registered) {
740 | + nf_conntrack_unregister_notifier(par->net, &ct_event_notifier);
741 | + ct_event_notifier_registered = 0;
742 | +
743 | + pr_debug("xt_FULLCONENAT: fullconenat_tg_destroy(): ct_event_notifier unregistered\n");
744 | +
745 | + }
746 | + nf_ct_netns_put(par->net, par->family);
747 | + }
748 | +
749 | + mutex_unlock(&nf_ct_net_event_lock);
750 | +}
751 | +
752 | +static struct xt_target tg_reg[] __read_mostly = {
753 | + {
754 | + .name = "FULLCONENAT",
755 | + .family = NFPROTO_IPV4,
756 | + .revision = 0,
757 | + .target = fullconenat_tg,
758 | + .targetsize = sizeof(struct nf_nat_ipv4_multi_range_compat),
759 | + .table = "nat",
760 | + .hooks = (1 << NF_INET_PRE_ROUTING) |
761 | + (1 << NF_INET_POST_ROUTING),
762 | + .checkentry = fullconenat_tg_check,
763 | + .destroy = fullconenat_tg_destroy,
764 | + .me = THIS_MODULE,
765 | + },
766 | +};
767 | +
768 | +static int __init fullconenat_tg_init(void)
769 | +{
770 | + wq = create_singlethread_workqueue("xt_FULLCONENAT");
771 | + if (wq == NULL) {
772 | + printk("xt_FULLCONENAT: warning: failed to create workqueue\n");
773 | + }
774 | +
775 | + return xt_register_targets(tg_reg, ARRAY_SIZE(tg_reg));
776 | +}
777 | +
778 | +static void fullconenat_tg_exit(void)
779 | +{
780 | + xt_unregister_targets(tg_reg, ARRAY_SIZE(tg_reg));
781 | +
782 | + if (wq) {
783 | + cancel_delayed_work_sync(&gc_worker_wk);
784 | + flush_workqueue(wq);
785 | + destroy_workqueue(wq);
786 | + }
787 | +
788 | + handle_dying_tuples();
789 | + destroy_mappings();
790 | +}
791 | +
792 | +module_init(fullconenat_tg_init);
793 | +module_exit(fullconenat_tg_exit);
794 | +
795 | +MODULE_LICENSE("GPL");
796 | +MODULE_DESCRIPTION("Xtables: implementation of RFC3489 full cone NAT");
797 | +MODULE_AUTHOR("Chion Tang ");
798 | +MODULE_ALIAS("ipt_FULLCONENAT");
799 |
--------------------------------------------------------------------------------
/add_packages_to_lean.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | cd friendlywrt-rk3328/friendlywrt
3 | cd package/lean/
4 | rm -rf luci-theme-argon
5 | pwd
6 | git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git
7 | cd luci-theme-argon
8 | ../../../../../set_repo_hash.sh Argon
9 | cd ../..
10 |
11 | pwd
12 | git clone https://github.com/rufengsuixing/luci-app-adguardhome.git
13 | cd luci-app-adguardhome
14 | ../../../../set_repo_hash.sh AdguardHome
15 | cd ..
16 |
17 | pwd
18 | git clone https://github.com/tty228/luci-app-serverchan.git
19 | cd luci-app-serverchan
20 | ../../../../set_repo_hash.sh ServerChan
21 | cd ../..
22 |
23 | pwd
24 | echo "src-git scw https://github.com/songchenwen/openwrt-package" >> feeds.conf.default
25 | ../../set_repo_hash.sh ScwPackage https://github.com/songchenwen/openwrt-package.git
26 |
27 | echo ""
28 | echo "feeds.conf.default"
29 | cat feeds.conf.default
30 |
31 | cp -r ../../luci-app-r2sflasher package/
32 |
--------------------------------------------------------------------------------
/changelog.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | VARIANTNAME=$1
3 | StatusFile=$VARIANTNAME/status.env
4 | NewStatusFile=$VARIANTNAME/newstatus.env
5 | RepoUsedPathFile=$VARIANTNAME/repo_used_path.env
6 | URLFile=name_and_urls.env
7 | ChangeLogFile=$VARIANTNAME/CHANGELOG.md
8 | BuildTag="$VARIANTNAME-$(date +%Y-%m-%d)-$BuilderHash"
9 | env | grep "Hash" > $NewStatusFile
10 | ChangeLog=""
11 | while read l; do
12 | IFS='='
13 | read -ra Parts <<< "$l"
14 | name=${Parts[0]/Hash/}
15 | hash=${Parts[1]}
16 | hash=$(echo $hash | cut -c -7)
17 | url=""
18 | if [ -f "$URLFile" ]; then
19 | urlLine=$(grep $URLFile -e ${name}URL)
20 | url=$(echo "${urlLine/${name}URL=/}")
21 | fi
22 |
23 | oldLine=""
24 | if [ -f "$StatusFile" ]; then
25 | oldLine=$(grep $StatusFile -e ${name}Hash)
26 | fi
27 |
28 | logPathLine=""
29 | if [ -f "$RepoUsedPathFile" ]; then
30 | logPathLine=$(grep $RepoUsedPathFile -e ${name})
31 | fi
32 |
33 | title=""
34 | body=""
35 | if [ "$oldLine" == "" ]; then
36 | title="${name} [$hash]($url/commit/$hash)"
37 | else
38 | read -ra Parts <<< "$oldLine"
39 | oldHash=${Parts[1]}
40 | oldHash=$(echo $oldHash | cut -c -7)
41 | if ! [ "$oldHash" == "$hash" ]; then
42 | logPath=""
43 | if ! [ "$logPathLine" == "" ]; then
44 | read -ra Parts <<< "$logPathLine"
45 | logPath=${Parts[1]}
46 | echo "only log repo $name for $logPath"
47 | fi
48 |
49 | title="${name} [${oldHash}..$hash]($url/compare/$oldHash..$hash)"
50 | branch=master
51 | if [ "$name" == "Argon" ]; then
52 | branch="18.06"
53 | fi
54 | if [ "$name" == "FriendlyWRT" ]; then
55 | branch="master-v19.07.1"
56 | fi
57 | if [ "$name" == "Kernel" ]; then
58 | branch="nanopi-r2-v5.4.y"
59 | fi
60 |
61 | mkdir -p .temprepo
62 | cd .temprepo
63 | git init
64 | git remote add $name ${url}.git
65 | git fetch $name
66 | body="
67 | | Commit | Author | Desc |
68 | | :----- | :------| :--- |
69 | "
70 | echo "Generating Change Log for ${name}/${branch} ${oldHash}..${hash} -- ${logPath}"
71 | table=$(git log --no-merges --invert-grep --author="action@github.com" --pretty=format:"| [%h](${url}/commit/%h) | %an | %s |" ${oldHash}..${hash} ${name}/${branch} -- ${logPath})
72 | if [ "$table" == "" ]; then
73 | body=""
74 | title=""
75 | else
76 | body="$body$table"
77 | fi
78 | cd ..
79 | fi
80 | fi
81 | if ! [ "$title" == "" ]; then
82 | ChangeLog="${ChangeLog}#### $title
83 |
84 | $body
85 |
86 |
87 | "
88 | fi
89 | done <$NewStatusFile
90 |
91 | echo "$ChangeLog"
92 |
93 | ChangeLogEscaped="${ChangeLog//'%'/'%25'}"
94 | ChangeLogEscaped="${ChangeLogEscaped//$'\n'/'%0A'}"
95 | ChangeLogEscaped="${ChangeLogEscaped//$'\r'/'%0D'}"
96 | echo "::set-output name=changelog::$ChangeLogEscaped"
97 | echo "::set-output name=buildtag::$BuildTag"
98 | if [ "$ChangeLog" == "" ]; then
99 | echo "No Change Happened, We Should Not Build."
100 | exit 0
101 | fi
102 |
103 | ChangeLogFull="## $BuildTag
104 |
105 | $ChangeLog
106 |
107 | --------------
108 | "
109 | touch $ChangeLogFile
110 | printf '%s\n%s\n' "$ChangeLogFull" "$(cat $ChangeLogFile)" >$ChangeLogFile
111 | rm $StatusFile
112 | mv $NewStatusFile $StatusFile
113 |
114 | sed -i -E "s/(releases\/download\/)${VARIANTNAME}-[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9a-f]+\/${VARIANTNAME}-[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9a-f]+-ROM.zip/\1${BuildTag}\/${BuildTag}-ROM.zip/" ${VARIANTNAME}/README.md
115 |
116 | git add $StatusFile
117 | git add $ChangeLogFile
118 | git add ${VARIANTNAME}/README.md
119 | git commit -m "ChangeLog for $BuildTag"
120 | # git push
121 |
--------------------------------------------------------------------------------
/features.seed:
--------------------------------------------------------------------------------
1 | CONFIG_AUTOREMOVE=y
2 | CONFIG_BUILD_PATENTED=y
3 | CONFIG_BRCMFMAC_SDIO=y
4 | CONFIG_IMAGEOPT=y
5 | CONFIG_KERNEL_AIO=y
6 | CONFIG_JSON_ADD_IMAGE_INFO=y
7 | CONFIG_KERNEL_ARM_PMU=y
8 | CONFIG_KERNEL_BLK_CGROUP=y
9 | CONFIG_KERNEL_BLK_DEV_THROTTLING=y
10 | CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y
11 | CONFIG_KERNEL_KALLSYMS=y
12 | CONFIG_KERNEL_PERF_EVENTS=y
13 | CONFIG_KERNEL_CGROUPS=y
14 | CONFIG_KERNEL_CGROUP_CPUACCT=y
15 | CONFIG_KERNEL_CGROUP_DEVICE=y
16 | CONFIG_KERNEL_CGROUP_FREEZER=y
17 | CONFIG_KERNEL_CGROUP_PIDS=y
18 | CONFIG_KERNEL_CGROUP_SCHED=y
19 | CONFIG_KERNEL_MEMCG=y
20 | CONFIG_KERNEL_MEMCG_KMEM=y
21 | CONFIG_KERNEL_MM_OWNER=y
22 | CONFIG_KERNEL_NETPRIO_CGROUP=y
23 | CONFIG_KERNEL_NET_CLS_CGROUP=y
24 | CONFIG_KERNEL_CPUSETS=y
25 | CONFIG_KERNEL_FAIR_GROUP_SCHED=y
26 | CONFIG_KERNEL_FANOTIFY=y
27 | CONFIG_KERNEL_FHANDLE=y
28 | CONFIG_KERNEL_FREEZER=y
29 | CONFIG_KERNEL_RESOURCE_COUNTERS=y
30 | CONFIG_KERNEL_RT_GROUP_SCHED=y
31 | CONFIG_LUCI_LANG_en=y
32 | CONFIG_LUCI_LANG_zh-cn=y
33 | CONFIG_LUCI_LANG_zh-tw=y
34 | CONFIG_PACKAGE_libustream-openssl=y
35 | CONFIG_PACKAGE_ca-bundle=y
36 | CONFIG_PACKAGE_ca-certificates=y
37 | CONFIG_PACKAGE_bash=y
38 | CONFIG_PACKAGE_wget=y
39 | CONFIG_PACKAGE_triggerhappy=y
40 | CONFIG_PACKAGE_uboot-envtools=y
41 | CONFIG_PACKAGE_usb-modeswitch=y
42 | CONFIG_PACKAGE_kmod-mmc=y
43 | CONFIG_PACKAGE_kmod-ikconfig=y
44 | CONFIG_PACKAGE_kmod-tun=y
45 | CONFIG_PACKAGE_kmod-usb-net=y
46 | CONFIG_PACKAGE_kmod-usb-net-rtl8150=y
47 | CONFIG_PACKAGE_kmod-usb-net-rtl8152=y
48 | CONFIG_PACKAGE_iw=y
49 | CONFIG_PACKAGE_iwinfo=y
50 | CONFIG_PACKAGE_hostapd=y
51 | CONFIG_PACKAGE_hostapd-basic=y
52 | CONFIG_PACKAGE_hostapd-utils=y
53 | CONFIG_PACKAGE_wpad=y
54 | CONFIG_PACKAGE_wpad-mini=y
55 | CONFIG_PACKAGE_wpa-supplicant=y
56 | CONFIG_DRIVER_11N_SUPPORT=y
57 | CONFIG_DRIVER_11AC_SUPPORT=y
58 | CONFIG_DRIVER_11W_SUPPORT=y
59 | CONFIG_PACKAGE_kmod-brcmfmac=y
60 | CONFIG_PACKAGE_kmod-cfg80211=y
61 | CONFIG_PACKAGE_ipv6helper=y
62 | CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y
63 | CONFIG_OPENSSL_ENGINE_BUILTIN=y
64 | CONFIG_OPENSSL_ENGINE_BUILTIN_AFALG=y
65 | CONFIG_OPENSSL_OPTIMIZE_SPEED=y
66 | CONFIG_OPENSSL_WITH_DTLS=y
67 | CONFIG_OPENSSL_WITH_EC2M=y
68 | CONFIG_OPENSSL_WITH_NPN=y
69 | # CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO is not set
70 | # CONFIG_PACKAGE_kmod-cryptodev is not set
71 | # CONFIG_PACKAGE_libopenssl-devcrypto is not set
72 | CONFIG_LIBSODIUM_MINIMAL=y
73 | CONFIG_PACKAGE_collectd-mod-thermal=y
74 | CONFIG_PACKAGE_collectd-mod-uptime=y
75 | CONFIG_PACKAGE_collectd-mod-wireless=y
76 | CONFIG_PACKAGE_collectd=y
77 | CONFIG_PACKAGE_curl=y
78 | CONFIG_PACKAGE_lrzsz=y
79 | CONFIG_PACKAGE_nano=y
80 | CONFIG_PACKAGE_bash=y
81 | CONFIG_PACKAGE_resolveip=y
82 | CONFIG_PACKAGE_sudo=y
83 | CONFIG_PACKAGE_tcping=y
84 | CONFIG_PACKAGE_autocore=y
85 | CONFIG_PACKAGE_htop=y
86 | CONFIG_PACKAGE_diffutils=y
87 | CONFIG_PACKAGE_vim-fuller=y
88 | CONFIG_PACKAGE_pv=y
89 | CONFIG_PACKAGE_pigz=y
90 | CONFIG_PACKAGE_unzip=y
91 | CONFIG_PACKAGE_ethtool=y
92 | CONFIG_PACKAGE_coreutils-nohup=y
93 | CONFIG_PACKAGE_coreutils-timeout=y
94 | CONFIG_PACKAGE_luci-app-opkg=y
95 | CONFIG_PACKAGE_iptables-mod-extra=y
96 | CONFIG_PACKAGE_kmod-ipt-extra=y
97 | CONFIG_PACKAGE_libltdl=y
98 | CONFIG_PACKAGE_losetup=y
99 | CONFIG_PACKAGE_zstd=y
100 | CONFIG_PACKAGE_brook=y
101 | CONFIG_PACKAGE_zlib=y
102 | CONFIG_PACKAGE_chinadns-ng=y
103 | CONFIG_PACKAGE_haproxy=y
104 | CONFIG_PACKAGE_kcptun-client=y
105 | CONFIG_PACKAGE_luci-app-upnp=y
106 | CONFIG_PACKAGE_luci-app-accesscontrol=y
107 | CONFIG_PACKAGE_luci-app-arpbind=y
108 | CONFIG_PACKAGE_luci-app-autoreboot=y
109 | CONFIG_PACKAGE_luci-app-ddns=y
110 | CONFIG_PACKAGE_ddns-scripts_cloudflare.com-v4=y
111 | CONFIG_PACKAGE_luci-app-filetransfer=y
112 | CONFIG_PACKAGE_luci-app-firewall=y
113 | CONFIG_PACKAGE_luci-app-ramfree=y
114 | CONFIG_PACKAGE_luci-app-netdata=y
115 | CONFIG_PACKAGE_luci-app-vlmcsd=y
116 | CONFIG_PACKAGE_luci-app-wol=y
117 | CONFIG_PACKAGE_luci-app-wrtbwmon=y
118 | CONFIG_PACKAGE_luci-app-serverchan=y
119 | CONFIG_PACKAGE_luci-app-fileassistant=y
120 | CONFIG_PACKAGE_luci-app-r2sflasher=y
121 | CONFIG_PACKAGE_luci-app-passwall=y
122 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Brook=y
123 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks=y
124 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_socks=y
125 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_socks=y
126 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan=y
127 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_kcptun=y
128 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_simple-obfs=y
129 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_v2ray-plugin=y
130 | CONFIG_PACKAGE_luci-app-ssr-plus=y
131 | CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Kcptun=y
132 | CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Redsocks2=y
133 | CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Server=y
134 | CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Trojan=y
135 | CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray=y
136 | CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray_plugin=y
137 | CONFIG_PACKAGE_v2ray-plugin=y
138 | CONFIG_PACKAGE_v2ray=y
139 | # CONFIG_V2RAY_COMPRESS_GOPROXY is not set
140 | # CONFIG_V2RAY_JSON_V2CTL is not set
141 | CONFIG_V2RAY_JSON_INTERNAL=y
142 | # CONFIG_V2RAY_JSON_NONE is not set
143 | CONFIG_V2RAY_EXCLUDE_V2CTL=y
144 | CONFIG_V2RAY_EXCLUDE_ASSETS=y
145 | # CONFIG_V2RAY_COMPRESS_UPX is not set
146 | CONFIG_V2RAY_DISABLE_NONE=y
147 | # CONFIG_V2RAY_DISABLE_CUSTOM is not set
148 | CONFIG_PACKAGE_luci-app-adguardhome=y
149 | CONFIG_PACKAGE_luci-theme-argon=y
150 | CONFIG_PACKAGE_luci-theme-argon-dark-mod=y
151 | # CONFIG_PACKAGE_kmod-iptunnel6 is not set
152 | # CONFIG_PACKAGE_kmod-nf-conntrack-netlink is not set
153 | # CONFIG_PACKAGE_libcares is not set
154 | # CONFIG_PACKAGE_libevent2 is not set
155 | # CONFIG_PACKAGE_libgmp is not set
156 | # CONFIG_PACKAGE_libhttp-parser is not set
157 | # CONFIG_PACKAGE_libnatpmp is not set
158 | # CONFIG_PACKAGE_libnet-1.2.x is not set
159 | # CONFIG_PACKAGE_libnghttp2 is not set
160 | # CONFIG_PACKAGE_libpcap is not set
161 | # CONFIG_PACKAGE_libuv is not set
162 | # CONFIG_PACKAGE_microsocks is not set
163 | # CONFIG_PACKAGE_vsftpd-alt is not set
164 | CONFIG_PACKAGE_luci-app-adbyby-plus=y
165 | CONFIG_PACKAGE_luci-app-aria2=y
166 | CONFIG_PACKAGE_ddns-scripts_aliyun=y
167 | CONFIG_PACKAGE_ddns-scripts_cloudflare.com-v4=y
168 | CONFIG_PACKAGE_luci-app-frpc=y
169 | CONFIG_PACKAGE_luci-app-samba=y
170 | CONFIG_PACKAGE_autosamba=y
171 | CONFIG_PACKAGE_wsdd2=y
172 | CONFIG_PACKAGE_luci-app-unblockmusic=y
173 | CONFIG_UnblockNeteaseMusic_Go=y
174 | CONFIG_UnblockNeteaseMusic_NodeJS=y
175 | CONFIG_PACKAGE_luci-app-zerotier=y
176 | CONFIG_PACKAGE_luci-app-wireguard=y
177 | # CONFIG_PACKAGE_luci-app-ipsec-vpnd is not set
178 | # CONFIG_PACKAGE_iptables-mod-ipsec is not set
179 | # CONFIG_PACKAGE_kmod-ipt-ipsec is not set
180 | # CONFIG_PACKAGE_kmod-ipsec is not set
181 | # CONFIG_PACKAGE_strongswan is not set
182 | # CONFIG_PACKAGE_strongswan-charon is not set
183 | # CONFIG_PACKAGE_strongswan-ipsec is not set
184 | # CONFIG_PACKAGE_strongswan-minimal is not set
185 | # CONFIG_PACKAGE_strongswan-mod-aes is not set
186 | # CONFIG_PACKAGE_strongswan-mod-gmp is not set
187 | # CONFIG_PACKAGE_strongswan-mod-hmac is not set
188 | # CONFIG_PACKAGE_strongswan-mod-kernel-netlink is not set
189 | # CONFIG_PACKAGE_strongswan-mod-nonce is not set
190 | # CONFIG_PACKAGE_strongswan-mod-pubkey is not set
191 | # CONFIG_PACKAGE_strongswan-mod-random is not set
192 | # CONFIG_PACKAGE_strongswan-mod-sha1 is not set
193 | # CONFIG_PACKAGE_strongswan-mod-socket-default is not set
194 | # CONFIG_PACKAGE_strongswan-mod-stroke is not set
195 | # CONFIG_PACKAGE_strongswan-mod-updown is not set
196 | # CONFIG_PACKAGE_strongswan-mod-x509 is not set
197 | # CONFIG_PACKAGE_strongswan-mod-xauth-generic is not set
198 | # CONFIG_PACKAGE_strongswan-mod-xcbc is not
199 |
200 | CONFIG_PACKAGE_kmod-ipt-offload=y
201 | CONFIG_PACKAGE_luci-app-flowoffload=y
202 | CONFIG_PACKAGE_kmod-ipt-fullconenat=y
203 | CONFIG_PACKAGE_iptables-mod-fullconenat=y
204 |
--------------------------------------------------------------------------------
/friendlywrt_source.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | mkdir friendlywrt-rk3328
3 | cd friendlywrt-rk3328
4 | repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master-v19.07.1 -m rk3328.xml --repo-url=https://github.com/friendlyarm/repo --no-clone-bundle --depth=1
5 | repo sync -c --no-tags --no-clone-bundle -j8
6 | cd friendlywrt/ && git fetch --unshallow
7 | ../../set_repo_hash.sh FriendlyWRT
8 |
--------------------------------------------------------------------------------
/images/r2s_dhcp_nat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/songchenwen/nanopi-r2s/6928abdc5b55107a80b327ce08bf61d6846910ed/images/r2s_dhcp_nat.png
--------------------------------------------------------------------------------
/images/r2s_fastcom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/songchenwen/nanopi-r2s/6928abdc5b55107a80b327ce08bf61d6846910ed/images/r2s_fastcom.png
--------------------------------------------------------------------------------
/images/r2s_fastcom_nat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/songchenwen/nanopi-r2s/6928abdc5b55107a80b327ce08bf61d6846910ed/images/r2s_fastcom_nat.png
--------------------------------------------------------------------------------
/images/r2s_pppoe_nat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/songchenwen/nanopi-r2s/6928abdc5b55107a80b327ce08bf61d6846910ed/images/r2s_pppoe_nat.png
--------------------------------------------------------------------------------
/init_env.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | sudo rm -rf /etc/apt/sources.list.d
3 | sudo apt-get update
4 | sudo apt-get -y --no-install-recommends install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs gcc-multilib g++-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler jq
5 | curl https://raw.githubusercontent.com/friendlyarm/build-env-on-ubuntu-bionic/master/install.sh | sed '/#/d' | sed 's/\\//g' | sed 's/exit 0//g' | sed 's/sudo apt -y install//g' | sed 's/sudo apt-get -y install//g' | sed 's/:i386//g' | xargs sudo apt-get -y --no-install-recommends install
6 | sudo rm -rf /usr/share/dotnet /usr/local/lib/android/sdk
7 | sudo docker image prune -a -f
8 |
9 | git clone https://github.com/friendlyarm/repo
10 | sudo cp repo/repo /usr/bin/
11 |
--------------------------------------------------------------------------------
/luci-app-r2sflasher/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=luci-app-r2sflasher
4 | PKG_VERSION:=1.0
5 | PKG_RELEASE:=4
6 | PKG_DATE:=20200416
7 |
8 | include $(INCLUDE_DIR)/package.mk
9 |
10 | define Package/$(PKG_NAME)
11 | CATEGORY:=LuCI
12 | SUBMENU:=3. Applications
13 | TITLE:=LuCI Application to Flash NanoPi R2S ROM
14 | PKGARCH:=all
15 | DEPENDS:=+bash +gzip +tar +unzip +pv +losetup +zstd +luci-base +luci-lib-nixio
16 | endef
17 |
18 | define Build/Prepare
19 | endef
20 |
21 | define Build/Configure
22 | endef
23 |
24 | define Build/Compile
25 | endef
26 |
27 | define Package/$(PKG_NAME)/install
28 | $(INSTALL_DIR) $(1)/usr/bin
29 | cp ./root/usr/bin/rom_flash $(1)/usr/bin/rom_flash
30 |
31 | $(INSTALL_DIR) $(1)/usr/lib/lua/luci
32 | cp -pR ./luasrc/* $(1)/usr/lib/lua/luci/
33 |
34 | $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n
35 | po2lmo ./po/zh-cn/r2sflasher.po $(1)/usr/lib/lua/luci/i18n/r2sflasher.zh-cn.lmo
36 | endef
37 |
38 | define Package/$(PKG_NAME)/postinst
39 | #!/bin/sh
40 | chmod a+x $${IPKG_INSTROOT}/usr/bin/rom_flash >/dev/null 2>&1
41 | exit 0
42 | endef
43 |
44 | $(eval $(call BuildPackage,$(PKG_NAME)))
--------------------------------------------------------------------------------
/luci-app-r2sflasher/README.md:
--------------------------------------------------------------------------------
1 | # NanoPi R2S 图形化刷机工具
2 |
3 | 
4 |
5 | 支持上传常用压缩格式的固件包图形化刷机。
6 |
7 | 从[这里下载](../FriendlyWRT)的 zip 包中会含有 ipk 安装文件,可以用 luci 界面的文件传输安装,或在 ssh 中执行安装命令 `opkg install luci-app-r2sflasher*.ipk --force-depends`
8 |
--------------------------------------------------------------------------------
/luci-app-r2sflasher/images/luci-app-r2sflasher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/songchenwen/nanopi-r2s/6928abdc5b55107a80b327ce08bf61d6846910ed/luci-app-r2sflasher/images/luci-app-r2sflasher.png
--------------------------------------------------------------------------------
/luci-app-r2sflasher/luasrc/controller/r2sflasher.lua:
--------------------------------------------------------------------------------
1 | -- Copyright 2020 scw
2 | module("luci.controller.r2sflasher", package.seeall)
3 |
4 | function index()
5 | entry({"admin", "system", "r2sflasher"}, form("r2sflasher/flash"), _("R2S Flasher"), 79)
6 | entry({"admin", "system", "r2sflasher", "log"}, form("r2sflasher/log"))
7 | entry({"admin", "system", "r2sflasher", "get_log"}, call("get_log")).leaf = true
8 | end
9 |
10 | function get_log()
11 | luci.http.write(luci.sys.exec(
12 | "[ -f '/tmp/r2sflasher.log' ] && cat /tmp/r2sflasher.log"))
13 | end
14 |
--------------------------------------------------------------------------------
/luci-app-r2sflasher/luasrc/model/cbi/r2sflasher/flash.lua:
--------------------------------------------------------------------------------
1 | local http = luci.http
2 | local dsp = require 'luci.dispatcher'
3 |
4 | romform = SimpleForm("romflash", translate("Flash ROM"), nil)
5 | romform.reset = false
6 | romform.submit = false
7 |
8 | section = romform:section(SimpleSection, "", translate("Choose Your NanoPi R2S ROM zip File to Flash"))
9 | fu = section:option(FileUpload, "")
10 | fu.template = "r2sflasher/rom"
11 | um = section:option(DummyValue, "", nil)
12 |
13 | local dir, fd
14 | dir = "/tmp/r2sflasher/"
15 | nixio.fs.mkdir(dir)
16 | http.setfilehandler(
17 | function(meta, chunk, eof)
18 | if not fd then
19 | if not meta then return end
20 |
21 | if meta and chunk then fd = nixio.open(dir .. meta.file, "w") end
22 |
23 | if not fd then
24 | um.value = translate("Create upload file error.")
25 | return
26 | end
27 | end
28 | if chunk and fd then
29 | fd:write(chunk)
30 | end
31 | if eof and fd then
32 | fd:close()
33 | fd = nil
34 | local keep_config = luci.http.formvalue("keep_config")
35 | cmd = "/usr/bin/rom_flash " .. dir .. meta.file
36 | if keep_config == nil then
37 | cmd = cmd .. " nobackup"
38 | end
39 | luci.sys.call(cmd .. " &> /tmp/r2sflasher.log &")
40 | http.redirect(dsp.build_url("/admin/system/r2sflasher/log"))
41 | end
42 | end
43 | )
44 |
45 | if luci.http.formvalue("flash") then
46 | local f = luci.http.formvalue("romfile")
47 | if #f <= 0 then
48 | um.value = translate("No Specify ROM File.")
49 | end
50 | end
51 |
52 | if luci.sys.call("pidof rom_flash > /dev/null") == 0 then
53 | http.redirect(dsp.build_url("/admin/system/r2sflasher/log"))
54 | return
55 | else
56 | return romform
57 | end
58 |
--------------------------------------------------------------------------------
/luci-app-r2sflasher/luasrc/model/cbi/r2sflasher/log.lua:
--------------------------------------------------------------------------------
1 | log = SimpleForm("log")
2 | log.reset = false
3 | log.submit = false
4 | log:append(Template("r2sflasher/log"))
5 | return log
--------------------------------------------------------------------------------
/luci-app-r2sflasher/luasrc/view/r2sflasher/log.htm:
--------------------------------------------------------------------------------
1 | <%
2 | local dsp = require "luci.dispatcher"
3 | -%>
4 |
5 |
30 |
33 |
--------------------------------------------------------------------------------
/luci-app-r2sflasher/luasrc/view/r2sflasher/rom.htm:
--------------------------------------------------------------------------------
1 | <%+cbi/valueheader%>
2 |
3 |
4 | 
<%:compatibility unchecked%>
5 | <%+cbi/valuefooter%>
6 |
7 | <%+cbi/valueheader%>
8 |
9 |
10 |
11 | <%+cbi/valuefooter%>
12 |
13 | <%+cbi/valueheader%>
14 |
15 | <%+cbi/valuefooter%>
--------------------------------------------------------------------------------
/luci-app-r2sflasher/po/zh-cn/r2sflasher.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr "Content-Type: text/plain; charset=UTF-8"
3 |
4 | msgid "R2S Flasher"
5 | msgstr "R2S 刷机"
6 |
7 | msgid "Flash ROM"
8 | msgstr "刷写 ROM"
9 |
10 | msgid "Choose Your NanoPi R2S ROM zip File to Flash"
11 | msgstr "选择 NanoPi R2S ROM zip 压缩文件"
12 |
13 | msgid "No Specify ROM File."
14 | msgstr "找不到 ROM 文件"
15 |
16 | msgid "Keep Configs"
17 | msgstr "保留设置"
18 |
19 | msgid "compatibility unchecked"
20 | msgstr "需自行确认设置兼容性"
21 |
22 | msgid "Choose File"
23 | msgstr "选择 ROM 文件"
24 |
25 | msgid "Flash"
26 | msgstr "刷写"
27 |
--------------------------------------------------------------------------------
/luci-app-r2sflasher/root/usr/bin/rom_flash:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sScriptName="$(basename $0)"
4 |
5 | if [ $(pidof ${sScriptName}| wc -w) -gt 2 ]; then
6 | pids=$(pidof ${sScriptName})
7 | echo "其他任务正在执行刷机 ${pids}"
8 | exit 1
9 | fi
10 |
11 | needed_binaries=(unzip gunzip pv losetup tar zstdmt zstdcat)
12 |
13 | need_warn=""
14 | for i in "${needed_binaries[@]}"; do
15 | w_b=$(which $i)
16 | if [ "$w_b" == "" ]; then
17 | need_warn="${need_warn} $i"
18 | fi
19 | done
20 | if ! [ "$need_warn" == "" ]; then
21 | echo "无法刷机, 需要这些可执行文件 $need_warn"
22 | exit 1
23 | fi
24 |
25 | workingdir=/root/r2sflasher/
26 |
27 | rm -rf $workingdir
28 | mkdir -p $workingdir
29 |
30 | cd $workingdir
31 |
32 | inputfile=$1
33 | nobackup=$2
34 | lomntpoint=/mnt/img
35 | backupfile=$workingdir/backup.tar.gz
36 |
37 | if [ "$inputfile" == "" ];then
38 | echo "需要传入 ROM zip 文件"
39 | exit 1
40 | fi
41 |
42 | if [ -f "$inputfile" ]; then
43 | echo "固件上传成功"
44 | else
45 | echo "固件上传失败"
46 | cd /root
47 | rm -rf $workingdir
48 | exit 1
49 | fi
50 |
51 | inputfileext=${inputfile##*.}
52 |
53 | gzfile=""
54 |
55 | if [ "$inputfileext" == "gz" ]; then
56 | gzfile="$inputfile"
57 | fi
58 |
59 | if [ "$inputfileext" == "zip" ]; then
60 | gzfile=$(unzip -Z -1 "$inputfile" | grep "sd.img.gz$")
61 | imgfile=$(unzip -Z -1 "$inputfile" | grep ".img$")
62 |
63 | if [ "$gzfile" == "" ] && [ "$imgfile" == "" ]; then
64 | echo "没发现 sd.img.gz 结尾的固件包"
65 | cd /root
66 | rm -rf $workingdir
67 | exit 1
68 | fi
69 |
70 | if ! [ "$gzfile" == "" ]; then
71 | unzip "$inputfile" "$gzfile"
72 | imgfile=""
73 | else
74 | if ! [ "$imgfile" == "" ]; then
75 | unzip "$inputfile" "$imgfile"
76 | fi
77 | fi
78 |
79 | rm $inputfile
80 |
81 | if [ -f "$gzfile" ] || [ -f "$imgfile" ]; then
82 | echo "zip 固件已解压至 ${gzfile}${imgfile}"
83 | else
84 | echo "zip 固件解压失败"
85 | cd /root
86 | rm -rf $workingdir
87 | exit 1
88 | fi
89 | fi
90 |
91 | if [ "$gzfile" == "" ] && [ "$imgfile" == "" ]; then
92 | echo "不是有效的 ROM 文件"
93 | cd /root
94 | rm $inputfile
95 | rm -rf $workingdir
96 | exit 1
97 | fi
98 |
99 | if ! [ "$gzfile" == "" ]; then
100 | echo "开始解压 gz 文件......"
101 | imgfile="rom.img"
102 | pv -f -F "%e %p" -i 1 "$gzfile" | gunzip -dc > "$imgfile"
103 | if [ -f "$imgfile" ]; then
104 | echo "gz 固件已解压至 $imgfile"
105 | rm $gzfile
106 | else
107 | echo "gz 固件解压失败"
108 | rm $gzfile
109 | cd /root
110 | rm -rf $workingdir
111 | exit 1
112 | fi
113 | fi
114 |
115 | lodev=$(losetup -f)
116 | echo "使用设备 $lodev 测试 ROM 文件"
117 |
118 | mkdir -p "$lomntpoint"
119 | losetup -P $lodev "$imgfile"
120 | mount ${lodev}p1 "$lomntpoint"
121 | if [ $? -ne 0 ]; then
122 | echo "img 文件挂载失败"
123 | losetup -d $lodev
124 | cd /root
125 | rm -rf $workingdir
126 | exit 1
127 | fi
128 |
129 | cd "$lomntpoint"
130 | imgbindir=$(ls | grep "bin")
131 | if [ "$imgbindir" == "" ]; then
132 | echo "img 文件错误"
133 | cd /root
134 | umount "$lomntpoint"
135 | losetup -d $lodev
136 | rm -rf $workingdir
137 | exit 1
138 | fi
139 |
140 | if [ "$2" == "nobackup" ]; then
141 | echo "不备份设置"
142 | else
143 | echo "开始备份设置"
144 | rm -f "$backupfile"
145 | sysupgrade -b "$backupfile"
146 | if ! [ -f "$backupfile" ]; then
147 | echo "生成备份文件失败"
148 | cd /root
149 | umount "$lomntpoint"
150 | losetup -d $lodev
151 | rm -rf $workingdir
152 | exit 1
153 | fi
154 | echo "开始写入备份到镜像文件"
155 | tar zxf "$backupfile"
156 | echo "备份文件已写入, 移除挂载"
157 | rm "$backupfile"
158 | fi
159 |
160 | cd /tmp
161 | umount "$lomntpoint"
162 | losetup -d $lodev
163 |
164 | zstfile="/tmp/$imgfile.zst"
165 | echo "开始压缩镜像至 $zstfile"
166 | rm -f $zstfile
167 | zstdmt "${workingdir}${imgfile}" -o "$zstfile"
168 | rm -rf $workingdir
169 |
170 | if [ -f "$zstfile" ]; then
171 | echo 1 > /proc/sys/kernel/sysrq
172 | echo "卸载 SD 卡"
173 | echo u > /proc/sysrq-trigger || umount /
174 |
175 | rotestfile="/rotest.txt"
176 | # here we rm it first
177 | rm -f "$rotestfile"
178 | touch "$rotestfile"
179 | if [ $? -eq 0 ]; then
180 | rm "$rotestfile"
181 | echo "卸载 SD 卡失败, 请重启后再继续使用"
182 | exit 1
183 | fi
184 |
185 | echo "开始刷机, 请不要断电或关机, 如果刷机失败请取出 SD 卡用电脑重新写入 ROM"
186 | pv -f -F "刷机中, 请不要断电或关机 %e %p" -i 1 "$zstfile" | zstdcat | dd of=/dev/mmcblk0 conv=fsync
187 | echo "刷机完毕, 正在重启, 请稍候..."
188 | sleep 5
189 | echo o > /proc/sysrq-trigger
190 | else
191 | echo "压缩出错"
192 | exit 1
193 | fi
194 |
--------------------------------------------------------------------------------
/minimal_config.seed:
--------------------------------------------------------------------------------
1 | CONFIG_AUTOREMOVE=y
2 | CONFIG_BUILD_PATENTED=y
3 | CONFIG_BRCMFMAC_SDIO=y
4 | CONFIG_IMAGEOPT=y
5 | CONFIG_KERNEL_AIO=y
6 | CONFIG_JSON_ADD_IMAGE_INFO=y
7 | CONFIG_KERNEL_ARM_PMU=y
8 | CONFIG_KERNEL_BLK_CGROUP=y
9 | CONFIG_KERNEL_BLK_DEV_THROTTLING=y
10 | CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y
11 | CONFIG_KERNEL_KALLSYMS=y
12 | CONFIG_KERNEL_PERF_EVENTS=y
13 | CONFIG_KERNEL_CGROUPS=y
14 | CONFIG_KERNEL_CGROUP_CPUACCT=y
15 | CONFIG_KERNEL_CGROUP_DEVICE=y
16 | CONFIG_KERNEL_CGROUP_FREEZER=y
17 | CONFIG_KERNEL_CGROUP_PIDS=y
18 | CONFIG_KERNEL_CGROUP_SCHED=y
19 | CONFIG_KERNEL_MEMCG=y
20 | CONFIG_KERNEL_MEMCG_KMEM=y
21 | CONFIG_KERNEL_MM_OWNER=y
22 | CONFIG_KERNEL_NETPRIO_CGROUP=y
23 | CONFIG_KERNEL_NET_CLS_CGROUP=y
24 | CONFIG_KERNEL_CPUSETS=y
25 | CONFIG_KERNEL_FAIR_GROUP_SCHED=y
26 | CONFIG_KERNEL_FANOTIFY=y
27 | CONFIG_KERNEL_FHANDLE=y
28 | CONFIG_KERNEL_FREEZER=y
29 | CONFIG_KERNEL_RESOURCE_COUNTERS=y
30 | CONFIG_KERNEL_RT_GROUP_SCHED=y
31 | CONFIG_LUCI_LANG_en=y
32 | CONFIG_LUCI_LANG_zh-cn=y
33 | CONFIG_LUCI_LANG_zh-tw=y
34 | CONFIG_PACKAGE_libustream-openssl=y
35 | CONFIG_PACKAGE_ca-bundle=y
36 | CONFIG_PACKAGE_ca-certificates=y
37 | CONFIG_PACKAGE_bash=y
38 | CONFIG_PACKAGE_wget=y
39 | CONFIG_PACKAGE_triggerhappy=y
40 | CONFIG_PACKAGE_uboot-envtools=y
41 | CONFIG_PACKAGE_usb-modeswitch=y
42 | CONFIG_PACKAGE_kmod-mmc=y
43 | CONFIG_PACKAGE_kmod-ikconfig=y
44 | CONFIG_PACKAGE_kmod-tun=y
45 | CONFIG_PACKAGE_kmod-usb-net=y
46 | CONFIG_PACKAGE_kmod-usb-net-rtl8150=y
47 | CONFIG_PACKAGE_kmod-usb-net-rtl8152=y
48 | CONFIG_PACKAGE_iw=y
49 | CONFIG_PACKAGE_iwinfo=y
50 | CONFIG_PACKAGE_hostapd=y
51 | CONFIG_PACKAGE_hostapd-basic=y
52 | CONFIG_PACKAGE_hostapd-utils=y
53 | CONFIG_PACKAGE_wpad=y
54 | CONFIG_PACKAGE_wpad-mini=y
55 | CONFIG_PACKAGE_wpa-supplicant=y
56 | CONFIG_DRIVER_11N_SUPPORT=y
57 | CONFIG_DRIVER_11AC_SUPPORT=y
58 | CONFIG_DRIVER_11W_SUPPORT=y
59 | CONFIG_PACKAGE_kmod-brcmfmac=y
60 | CONFIG_PACKAGE_kmod-cfg80211=y
61 | CONFIG_PACKAGE_ipv6helper=y
62 | CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y
63 | CONFIG_OPENSSL_ENGINE_BUILTIN=y
64 | CONFIG_OPENSSL_ENGINE_BUILTIN_AFALG=y
65 | CONFIG_OPENSSL_OPTIMIZE_SPEED=y
66 | CONFIG_OPENSSL_WITH_DTLS=y
67 | CONFIG_OPENSSL_WITH_EC2M=y
68 | CONFIG_OPENSSL_WITH_NPN=y
69 | # CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO is not set
70 | # CONFIG_PACKAGE_kmod-cryptodev is not set
71 | # CONFIG_PACKAGE_libopenssl-devcrypto is not set
72 | CONFIG_LIBSODIUM_MINIMAL=y
73 | CONFIG_PACKAGE_collectd-mod-thermal=y
74 | CONFIG_PACKAGE_collectd-mod-uptime=y
75 | CONFIG_PACKAGE_collectd-mod-wireless=y
76 | CONFIG_PACKAGE_collectd=y
77 | CONFIG_PACKAGE_curl=y
78 | CONFIG_PACKAGE_lrzsz=y
79 | CONFIG_PACKAGE_nano=y
80 | CONFIG_PACKAGE_bash=y
81 | CONFIG_PACKAGE_resolveip=y
82 | CONFIG_PACKAGE_sudo=y
83 | CONFIG_PACKAGE_tcping=y
84 | CONFIG_PACKAGE_autocore=y
85 | CONFIG_PACKAGE_htop=y
86 | CONFIG_PACKAGE_diffutils=y
87 | CONFIG_PACKAGE_vim-fuller=y
88 | CONFIG_PACKAGE_pv=y
89 | CONFIG_PACKAGE_pigz=y
90 | CONFIG_PACKAGE_unzip=y
91 | CONFIG_PACKAGE_ethtool=y
92 | CONFIG_PACKAGE_coreutils-nohup=y
93 | CONFIG_PACKAGE_coreutils-timeout=y
94 | CONFIG_PACKAGE_luci-app-opkg=y
95 | CONFIG_PACKAGE_iptables-mod-extra=y
96 | CONFIG_PACKAGE_kmod-ipt-extra=y
97 | CONFIG_PACKAGE_libltdl=y
98 | CONFIG_PACKAGE_losetup=y
99 | CONFIG_PACKAGE_zstd=y
100 | CONFIG_PACKAGE_brook=y
101 | CONFIG_PACKAGE_zlib=y
102 | CONFIG_PACKAGE_chinadns-ng=y
103 | CONFIG_PACKAGE_haproxy=y
104 | CONFIG_PACKAGE_kcptun-client=y
105 | CONFIG_PACKAGE_luci-app-upnp=y
106 | CONFIG_PACKAGE_luci-app-accesscontrol=y
107 | CONFIG_PACKAGE_luci-app-arpbind=y
108 | CONFIG_PACKAGE_luci-app-autoreboot=y
109 | CONFIG_PACKAGE_luci-app-ddns=y
110 | CONFIG_PACKAGE_ddns-scripts_cloudflare.com-v4=y
111 | CONFIG_PACKAGE_luci-app-filetransfer=y
112 | CONFIG_PACKAGE_luci-app-firewall=y
113 | CONFIG_PACKAGE_luci-app-ramfree=y
114 | CONFIG_PACKAGE_luci-app-netdata=y
115 | CONFIG_PACKAGE_luci-app-vlmcsd=y
116 | CONFIG_PACKAGE_luci-app-wol=y
117 | CONFIG_PACKAGE_luci-app-wrtbwmon=y
118 | CONFIG_PACKAGE_luci-app-serverchan=y
119 | CONFIG_PACKAGE_luci-app-fileassistant=y
120 | CONFIG_PACKAGE_luci-app-r2sflasher=y
121 | CONFIG_PACKAGE_luci-app-passwall=y
122 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Brook=y
123 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks=y
124 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_socks=y
125 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_socks=y
126 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan=y
127 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_kcptun=y
128 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_simple-obfs=y
129 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_v2ray-plugin=y
130 | CONFIG_PACKAGE_v2ray-plugin=y
131 | CONFIG_PACKAGE_v2ray=y
132 | CONFIG_PACKAGE_luci-app-zerotier=y
133 | # CONFIG_V2RAY_COMPRESS_GOPROXY is not set
134 | # CONFIG_V2RAY_JSON_V2CTL is not set
135 | CONFIG_V2RAY_JSON_INTERNAL=y
136 | # CONFIG_V2RAY_JSON_NONE is not set
137 | CONFIG_V2RAY_EXCLUDE_V2CTL=y
138 | CONFIG_V2RAY_EXCLUDE_ASSETS=y
139 | # CONFIG_V2RAY_COMPRESS_UPX is not set
140 | CONFIG_V2RAY_DISABLE_NONE=y
141 | # CONFIG_V2RAY_DISABLE_CUSTOM is not set
142 | CONFIG_PACKAGE_luci-app-adguardhome=y
143 | CONFIG_PACKAGE_luci-theme-argon=y
144 | CONFIG_PACKAGE_luci-theme-argon-dark-mod=y
145 | # CONFIG_PACKAGE_samba36-server is not set
146 | # CONFIG_PACKAGE_autosamba is not set
147 | # CONFIG_PACKAGE_luci-app-samba is not set
148 | # CONFIG_PACKAGE_wsdd2 is not set
149 | # CONFIG_PACKAGE_luci-app-adbyby-plus is not set
150 | # CONFIG_PACKAGE_luci-app-ipsec-vpnd is not set
151 | # CONFIG_PACKAGE_luci-app-nlbwmon is not set
152 | # CONFIG_PACKAGE_luci-app-ssr-plus is not set
153 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Redsocks2 is not set
154 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Server is not set
155 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Trojan is not set
156 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray is not set
157 | # CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray_plugin is not set
158 | # CONFIG_PACKAGE_luci-app-unblockmusic is not set
159 | # CONFIG_PACKAGE_luci-app-vsftpd is not set
160 | # CONFIG_PACKAGE_luci-app-xlnetacc is not set
161 | # CONFIG_PACKAGE_iptables-mod-ipsec is not set
162 | # CONFIG_PACKAGE_kmod-ipt-ipsec is not set
163 | # CONFIG_PACKAGE_kmod-iptunnel6 is not set
164 | # CONFIG_PACKAGE_kmod-nf-conntrack-netlink is not set
165 | # CONFIG_PACKAGE_libcares is not set
166 | # CONFIG_PACKAGE_libevent2 is not set
167 | # CONFIG_PACKAGE_libgmp is not set
168 | # CONFIG_PACKAGE_libhttp-parser is not set
169 | # CONFIG_PACKAGE_libnatpmp is not set
170 | # CONFIG_PACKAGE_libnet-1.2.x is not set
171 | # CONFIG_PACKAGE_libnghttp2 is not set
172 | # CONFIG_PACKAGE_libpcap is not set
173 | # CONFIG_PACKAGE_libuv is not set
174 | # CONFIG_PACKAGE_kmod-ipsec is not set
175 | # CONFIG_PACKAGE_microsocks is not set
176 | # CONFIG_PACKAGE_nlbwmon is not set
177 | # CONFIG_PACKAGE_node is not set
178 | # CONFIG_PACKAGE_redsocks2 is not set
179 | # CONFIG_PACKAGE_shadowsocksr-libev-server is not set
180 | # CONFIG_PACKAGE_strongswan is not set
181 | # CONFIG_PACKAGE_strongswan-charon is not set
182 | # CONFIG_PACKAGE_strongswan-ipsec is not set
183 | # CONFIG_PACKAGE_strongswan-minimal is not set
184 | # CONFIG_PACKAGE_strongswan-mod-aes is not set
185 | # CONFIG_PACKAGE_strongswan-mod-gmp is not set
186 | # CONFIG_PACKAGE_strongswan-mod-hmac is not set
187 | # CONFIG_PACKAGE_strongswan-mod-kernel-netlink is not set
188 | # CONFIG_PACKAGE_strongswan-mod-nonce is not set
189 | # CONFIG_PACKAGE_strongswan-mod-pubkey is not set
190 | # CONFIG_PACKAGE_strongswan-mod-random is not set
191 | # CONFIG_PACKAGE_strongswan-mod-sha1 is not set
192 | # CONFIG_PACKAGE_strongswan-mod-socket-default is not set
193 | # CONFIG_PACKAGE_strongswan-mod-stroke is not set
194 | # CONFIG_PACKAGE_strongswan-mod-updown is not set
195 | # CONFIG_PACKAGE_strongswan-mod-x509 is not set
196 | # CONFIG_PACKAGE_strongswan-mod-xauth-generic is not set
197 | # CONFIG_PACKAGE_strongswan-mod-xcbc is not set
198 | # CONFIG_PACKAGE_tcpping is not set
199 | # CONFIG_PACKAGE_UnblockNeteaseMusic is not set
200 | # CONFIG_PACKAGE_UnblockNeteaseMusicGo is not set
201 | # CONFIG_PACKAGE_adbyby is not set
202 | # CONFIG_PACKAGE_vsftpd-alt is not set
203 | # CONFIG_UnblockNeteaseMusic_Go is not set
204 | # CONFIG_UnblockNeteaseMusic_NodeJS is not set
205 |
206 | CONFIG_PACKAGE_kmod-ipt-offload=y
207 | CONFIG_PACKAGE_luci-app-flowoffload=y
208 | CONFIG_PACKAGE_kmod-ipt-fullconenat=y
209 | CONFIG_PACKAGE_iptables-mod-fullconenat=y
210 |
--------------------------------------------------------------------------------
/name_and_urls.env:
--------------------------------------------------------------------------------
1 | BuilderURL=https://github.com/songchenwen/nanopi-r2s
2 | ArgonURL=https://github.com/jerrykuku/luci-theme-argon
3 | AdguardHomeURL=https://github.com/rufengsuixing/luci-app-adguardhome
4 | ScwPackageURL=https://github.com/songchenwen/openwrt-package
5 | LeanURL=https://github.com/coolsnowwolf/lede
6 | LeanLuciURL=https://github.com/coolsnowwolf/luci
7 | LeanPackageURL=https://github.com/coolsnowwolf/packages
8 | FriendlyWRTURL=https://github.com/friendlyarm/friendlywrt
9 | LienolURL=https://github.com/Lienol/openwrt
10 | ServerChanURL=https://github.com/tty228/luci-app-serverchan
11 | OpenWrt=https://github.com/openwrt/openwrt
12 | Kernel=https://github.com/fanck0605/friendlywrt-kernel
13 |
--------------------------------------------------------------------------------
/scripts/check_net.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | scriptpath=/usr/bin/check_net
4 | hotplugpath=/etc/hotplug.d/iface/10-checknet
5 |
6 | realrun="$1"
7 |
8 | if [ "$0" == "sh" ] || [ "$0" == "bash" ]; then
9 | realrun=""
10 | fi
11 |
12 | sScriptName="$(basename $scriptpath)"
13 |
14 | checkrunning() {
15 | count="$1"
16 | logger "CheckNet: checking running of ${sScriptName}, count $count"
17 | if [ $(ps | grep ${sScriptName} | grep -v grep | wc -l) -gt $count ]; then
18 | logger "CheckNet: already running exit"
19 | exit
20 | fi
21 | }
22 |
23 | realrun() {
24 | checkrunning 3
25 | logger "CheckNet: script started"
26 | . /lib/functions/network.sh
27 |
28 | network_get_ipaddr lan_addr lan
29 |
30 | if [ "$lan_addr" == "" ]; then
31 | logger "CheckNet: no lan address yet, exit"
32 | return
33 | fi
34 |
35 | fail_count=0
36 | while :; do
37 | sleep 2s
38 |
39 | # try to connect
40 | if ping -W 1 -c 1 "$lan_addr" >/dev/null 2>&1; then
41 | # No problem!
42 | if [ $fail_count -gt 0 ]; then
43 | logger 'CheckNet: Network problems solved!'
44 | return
45 | fi
46 | fail_count=0
47 | logger 'CheckNet: No Problem, exit'
48 | return
49 | fi
50 |
51 | # May have some problem
52 | logger "CheckNet: Network may have some problems!"
53 | fail_count=$((fail_count + 1))
54 |
55 | if [ $fail_count -ge 3 ]; then
56 | # Must have some problem! We refresh the ip address and try again!
57 | network_get_ipaddr lan_addr lan
58 |
59 | if ping -W 1 -c 1 "$lan_addr" >/dev/null 2>&1; then
60 | return
61 | fi
62 |
63 | logger 'CheckNet: Network problem! Firewall reloading...'
64 | /etc/init.d/firewall reload >/dev/null 2>&1
65 | sleep 2s
66 |
67 | if ping -W 1 -c 1 "$lan_addr" >/dev/null 2>&1; then
68 | return
69 | fi
70 |
71 | logger 'CheckNet: Network problem! Network reloading...'
72 | /etc/init.d/network restart >/dev/null 2>&1
73 | sleep 2s
74 | fi
75 | done
76 | }
77 |
78 | adduci() {
79 | if [ "$(basename $0)" == "$sScriptName" ]; then
80 | pp=$(ps | grep $PPID | grep -v grep | awk '{print $5}')
81 | if [ "$pp" == "fw3" ]; then
82 | logger 'CheckNet: running in fw3, ignore uci'
83 | return
84 | fi
85 | logger "CheckNet: checking uci"
86 | uci get firewall.checknet >/dev/null 2>&1
87 | if [ $? -ne 0 ]; then
88 | logger 'CheckNet: add uci firewall script'
89 | uci -q batch <<-EOF >/dev/null
90 | set firewall.checknet=include
91 | set firewall.checknet.type=script
92 | set firewall.checknet.reload='1'
93 | set firewall.checknet.path=$scriptpath
94 | commit firewall
95 | EOF
96 | fi
97 | fi
98 | }
99 |
100 | addhotplug() {
101 | if ! [ -f "$hotplugpath" ]; then
102 | cat <<< "#!/bin/sh
103 | $(echo $scriptpath)">"$hotplugpath"
104 | chmod +x "$hotplugpath"
105 | fi
106 | }
107 |
108 | if [ "$realrun" == "" ]; then
109 | checkrunning 2
110 | adduci
111 | addhotplug
112 | logger 'CheckNet: delay check 30 secs'
113 | (sleep 30 && $scriptpath realrun)&
114 | else
115 | realrun
116 | fi
117 |
--------------------------------------------------------------------------------
/scripts/check_wan4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | while true; do
4 | wan=`/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`
5 | r=`ping -c1 $wan 2>&1`
6 | case $r in
7 | *permitted* ) /etc/init.d/firewall reload ;;
8 | esac
9 | sleep 2
10 | done
11 |
--------------------------------------------------------------------------------
/scripts/fw_update.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | cd /root
4 |
5 | url=$1
6 | zipfile=update_rom.zip
7 | imgfile=rom.img
8 | lomntpoint=/mnt/img
9 | backupfile=/tmp/backup.tar.gz
10 |
11 | if [ "$url" == "" ];then
12 | echo "需要传入 ROM zip 文件下载链接"
13 | exit 1
14 | fi
15 |
16 | rm -f "$zipfile"
17 | rm -f "$imgfile"
18 | rm -f "$backupfile"
19 | rm -f "/tmp/$imgfile.zst"
20 | rm -f *sd.img.gz
21 |
22 | echo "开始下载固件文件 $url"
23 | wget -O "$zipfile" "$url"
24 |
25 | if [ -f "$zipfile" ]; then
26 | echo "固件下载成功"
27 | else
28 | echo "固件下载失败"
29 | exit 1
30 | fi
31 |
32 | gzfile=$(unzip -Z -1 "$zipfile" | grep "sd.img.gz$")
33 |
34 | if [ "$gzfile" == "" ]; then
35 | echo "没发现 sd.img.gz 结尾的固件包"
36 | exit 1
37 | fi
38 | unzip "$zipfile" "$gzfile"
39 | rm $zipfile
40 |
41 | if [ -f "$gzfile" ]; then
42 | echo "zip 固件已解压至 $gzfile"
43 | else
44 | echo "zip 固件解压失败"
45 | exit 1
46 | fi
47 |
48 | pv "$gzfile" | gunzip -dc > "$imgfile"
49 | if [ -f "$imgfile" ]; then
50 | echo "gz 固件已解压至 $imgfile"
51 | else
52 | echo "gz 固件解压失败"
53 | exit 1
54 | fi
55 |
56 | lodev=$(losetup -f)
57 | echo "使用设备 $lodev 改写 ROM 文件"
58 |
59 | mkdir -p "$lomntpoint"
60 | losetup -o 100663296 $lodev "$imgfile"
61 | mount $lodev "$lomntpoint"
62 | cd "$lomntpoint"
63 | echo "开始备份设置"
64 | sysupgrade -b "$backupfile"
65 | echo "开始写入备份到镜像文件"
66 | tar zxf "$backupfile"
67 | echo "备份文件已写入, 移除挂载"
68 |
69 | cd /tmp
70 | rm "$backupfile"
71 | umount "$lomntpoint"
72 | losetup -d $lodev
73 |
74 | echo "开始压缩镜像"
75 | zstfile="/tmp/$imgfile.zst"
76 | zstdmt "/root/$imgfile" -o "$zstfile"
77 |
78 | if [ -f "$zstfile" ]; then
79 | echo 1 > /proc/sys/kernel/sysrq
80 | echo "卸载 SD 卡"
81 | echo u > /proc/sysrq-trigger || umount /
82 |
83 | rotestfile="/rotest.txt"
84 | touch "$rotestfile"
85 | if [ $? -eq 0 ]; then
86 | rm "$rotestfile"
87 | echo "卸载 SD 卡失败"
88 | exit 1
89 | fi
90 |
91 | echo "开始刷机, 请不要断电或关机, 如果刷机失败请取出 SD 卡用电脑重新写入 ROM"
92 | pv "$zstfile" | zstdcat | dd of=/dev/mmcblk0 conv=fsync
93 | echo "刷机完毕, 正在重启..."
94 | echo o > /proc/sysrq-trigger
95 | else
96 | echo "压缩出错"
97 | exit 1
98 | fi
99 |
--------------------------------------------------------------------------------
/scripts/rom_prepare.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sScriptName="$(basename $0)"
4 |
5 | if [ $(pidof ${sScriptName}| wc -w) -gt 2 ]; then
6 | pids=$(pidof ${sScriptName})
7 | echo "其他任务正在执行刷机 ${pids}"
8 | exit 1
9 | fi
10 |
11 | needed_binaries=(unzip gunzip pv losetup tar zstdmt zstdcat)
12 |
13 | need_warn=""
14 | for i in "${needed_binaries[@]}"; do
15 | w_b=$(which $i)
16 | if [ "$w_b" == "" ]; then
17 | need_warn="${need_warn} $i"
18 | fi
19 | done
20 | if ! [ "$need_warn" == "" ]; then
21 | echo "无法刷机, 需要这些可执行文件 $need_warn"
22 | exit 1
23 | fi
24 |
25 | workingdir=/root/r2sflasher/
26 |
27 | rm -rf $workingdir
28 | mkdir -p $workingdir
29 |
30 | cd $workingdir
31 |
32 | inputfile=$1
33 | nobackup=$2
34 | lomntpoint=/mnt/img
35 | backupfile=$workingdir/backup.tar.gz
36 |
37 | if [ "$inputfile" == "" ];then
38 | echo "需要传入 ROM zip 文件"
39 | exit 1
40 | fi
41 |
42 | if [ -f "$inputfile" ]; then
43 | echo "固件上传成功"
44 | else
45 | echo "固件上传失败"
46 | cd /root
47 | rm -rf $workingdir
48 | exit 1
49 | fi
50 |
51 | inputfileext=${inputfile##*.}
52 |
53 | gzfile=""
54 |
55 | if [ "$inputfileext" == "gz" ]; then
56 | gzfile="$inputfile"
57 | fi
58 |
59 | if [ "$inputfileext" == "zip" ]; then
60 | gzfile=$(unzip -Z -1 "$inputfile" | grep "sd.img.gz$")
61 | imgfile=$(unzip -Z -1 "$inputfile" | grep ".img$")
62 |
63 | if [ "$gzfile" == "" ] && [ "$imgfile" == "" ]; then
64 | echo "没发现 sd.img.gz 结尾的固件包"
65 | cd /root
66 | rm -rf $workingdir
67 | exit 1
68 | fi
69 |
70 | if ! [ "$gzfile" == "" ]; then
71 | unzip "$inputfile" "$gzfile"
72 | imgfile=""
73 | else
74 | if ! [ "$imgfile" == "" ]; then
75 | unzip "$inputfile" "$imgfile"
76 | fi
77 | fi
78 |
79 | rm $inputfile
80 |
81 | if [ -f "$gzfile" ] || [ -f "$imgfile" ]; then
82 | echo "zip 固件已解压至 ${gzfile}${imgfile}"
83 | else
84 | echo "zip 固件解压失败"
85 | cd /root
86 | rm -rf $workingdir
87 | exit 1
88 | fi
89 | fi
90 |
91 | if [ "$gzfile" == "" ] && [ "$imgfile" == "" ]; then
92 | echo "不是有效的 ROM 文件"
93 | cd /root
94 | rm $inputfile
95 | rm -rf $workingdir
96 | exit 1
97 | fi
98 |
99 | if ! [ "$gzfile" == "" ]; then
100 | echo "开始解压 gz 文件......"
101 | imgfile="rom.img"
102 | pv -f -F "%e %p" -i 1 "$gzfile" | gunzip -dc > "$imgfile"
103 | if [ -f "$imgfile" ]; then
104 | echo "gz 固件已解压至 $imgfile"
105 | rm $gzfile
106 | else
107 | echo "gz 固件解压失败"
108 | rm $gzfile
109 | cd /root
110 | rm -rf $workingdir
111 | exit 1
112 | fi
113 | fi
114 |
115 | lodev=$(losetup -f)
116 | echo "使用设备 $lodev 测试 ROM 文件"
117 |
118 | mkdir -p "$lomntpoint"
119 | losetup -o 100663296 $lodev "$imgfile"
120 | mount $lodev "$lomntpoint"
121 | if [ $? -ne 0 ]; then
122 | echo "img 文件挂载失败"
123 | losetup -d $lodev
124 | cd /root
125 | rm -rf $workingdir
126 | exit 1
127 | fi
128 |
129 | cd "$lomntpoint"
130 | imgbindir=$(ls | grep "bin")
131 | if [ "$imgbindir" == "" ]; then
132 | echo "img 文件错误"
133 | cd /root
134 | umount "$lomntpoint"
135 | losetup -d $lodev
136 | rm -rf $workingdir
137 | exit 1
138 | fi
139 |
140 | if [ "$2" == "nobackup" ]; then
141 | echo "不备份设置"
142 | else
143 | echo "开始备份设置"
144 | rm -f "$backupfile"
145 | sysupgrade -b "$backupfile"
146 | if ! [ -f "$backupfile" ]; then
147 | echo "生成备份文件失败"
148 | cd /root
149 | umount "$lomntpoint"
150 | losetup -d $lodev
151 | rm -rf $workingdir
152 | exit 1
153 | fi
154 | echo "开始写入备份到镜像文件"
155 | tar zxf "$backupfile"
156 | echo "备份文件已写入, 移除挂载"
157 | rm "$backupfile"
158 | fi
159 |
160 | cd /tmp
161 | umount "$lomntpoint"
162 | losetup -d $lodev
163 |
164 | finalfile="/root/$imgfile.gz"
165 | echo "开始压缩镜像至 $finalfile"
166 | rm -f $finalfile
167 | gzip "${workingdir}${imgfile}"
168 | mv "${workingdir}${imgfile}.gz" "$finalfile"
169 | rm -rf $workingdir
170 |
171 | if [ -f "$finalfile" ]; then
172 | echo "ROM 已准备好 $finalfile"
173 | else
174 | echo "压缩出错"
175 | exit 1
176 | fi
177 |
--------------------------------------------------------------------------------
/scripts/temp.chart.sh:
--------------------------------------------------------------------------------
1 | # shellcheck shell=bash
2 | # no need for shebang - this file is loaded from charts.d.plugin
3 | # SPDX-License-Identifier: GPL-3.0-or-later
4 |
5 | # netdata
6 | # real-time performance and health monitoring, done right!
7 | # (C) 2016 Costa Tsaousis
8 | #
9 |
10 | # if this chart is called X.chart.sh, then all functions and global variables
11 | # must start with X_
12 |
13 | # _update_every is a special variable - it holds the number of seconds
14 | # between the calls of the _update() function
15 | temp_update_every=
16 |
17 | # the priority is used to sort the charts on the dashboard
18 | # 1 = the first chart
19 | temp_priority=1
20 |
21 | # global variables to store our collected data
22 | # remember: they need to start with the module name example_
23 | temp_cpu=40
24 | temp_cpu_file=/sys/class/thermal/thermal_zone0/temp
25 |
26 | temp_get() {
27 | # do all the work to collect / calculate the values
28 | # for each dimension
29 | #
30 | # Remember:
31 | # 1. KEEP IT SIMPLE AND SHORT
32 | # 2. AVOID FORKS (avoid piping commands)
33 | # 3. AVOID CALLING TOO MANY EXTERNAL PROGRAMS
34 | # 4. USE LOCAL VARIABLES (global variables may overlap with other modules)
35 |
36 | if [ -f "$temp_cpu_file" ]; then
37 | temp_cpu=$(cat $temp_cpu_file)
38 | else
39 | return 1
40 | fi
41 |
42 | # this should return:
43 | # - 0 to send the data to netdata
44 | # - 1 to report a failure to collect the data
45 |
46 | return 0
47 | }
48 |
49 | # _check is called once, to find out if this chart should be enabled or not
50 | temp_check() {
51 | # this should return:
52 | # - 0 to enable the chart
53 | # - 1 to disable the chart
54 |
55 | # check something
56 |
57 | # check that we can collect data
58 | temp_get || return 1
59 |
60 | return 0
61 | }
62 |
63 | # _create is called once, to create the charts
64 | temp_create() {
65 | # create the chart with 3 dimensions
66 | cat << EOF
67 | CHART Gauge.Temperature 'Temperature' "CPU Temperature" "Celsius Degree" "Temperature" "" line $temp_priority $temp_update_every
68 | DIMENSION CPU '' absolute 1 1000
69 | EOF
70 |
71 | return 0
72 | }
73 |
74 | # _update is called continuously, to collect the values
75 | temp_update() {
76 | # the first argument to this function is the microseconds since last update
77 | # pass this parameter to the BEGIN statement (see bellow).
78 |
79 | temp_get || return 1
80 |
81 | # write the result of the work.
82 | cat << VALUESEOF
83 | BEGIN Gauge.Temperature $1
84 | SET CPU = $temp_cpu
85 | END
86 | VALUESEOF
87 |
88 | return 0
89 | }
--------------------------------------------------------------------------------
/set_repo_hash.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | name=$1
3 | if [ "$#" -gt 1 ]; then
4 | repo=$2
5 | echo "::set-env name=${name}Hash::$(git ls-remote ${repo} HEAD | awk '{ print $1}' | cut -c -7)"
6 | else
7 | git log --invert-grep --author="action@github.com" -n 1
8 | echo "::set-env name=${name}Hash::$(git log --invert-grep --author="action@github.com" -n 1 --pretty=format:%H | cut -c -7)"
9 | fi
10 |
--------------------------------------------------------------------------------