kiddin9 3 gadi atpakaļ
vecāks
revīzija
e6f7186fca
27 mainītis faili ar 242 papildinājumiem un 841 dzēšanām
  1. 23 8
      .github/workflows/Openwrt-AutoBuild.yml
  2. 2 31
      .github/workflows/repo-dispatcher.yml
  3. 1 9
      README.md
  4. 2 2
      devices/Rpi-4B/patches/imagebuilder.patch
  5. 4 2
      devices/common/diy.sh
  6. 7 0
      devices/common/diy/target/linux/rockchip/files/etc/init.d/fa-fancontrol
  7. 69 0
      devices/common/diy/target/linux/rockchip/files/usr/bin/fa-fancontrol.sh
  8. 44 0
      devices/common/diy/target/linux/rockchip/patches-5.10/991-arm64-dts-rockchip-add-more-cpu-operating-points-for.patch
  9. 46 0
      devices/common/diy/target/linux/rockchip/patches-5.10/992-rockchip-rk3399-overclock-to-2.2-1.8-GHz.patch
  10. 0 6
      devices/common/files/etc/config/frps
  11. 0 39
      devices/common/files/etc/config/mwan3
  12. 0 29
      devices/common/files/etc/config/nginx
  13. 0 4
      devices/common/files/etc/config/syncthing
  14. 0 240
      devices/common/files/etc/dnsmasq.d/bogus-nxdomain.china.conf
  15. 0 13
      devices/common/files/etc/nginx/conf.d/_lan.crt
  16. 0 6
      devices/common/files/etc/nginx/conf.d/_lan.key
  17. 0 70
      devices/common/files/etc/nginx/conf.d/shortcuts.conf
  18. 0 42
      devices/common/files/etc/nginx/conf.d/webdav.conf.sample
  19. 0 1
      devices/common/files/etc/nginx/htpasswd.conf
  20. 0 33
      devices/common/files/etc/nginx/uci.conf.template
  21. 0 278
      devices/common/files/usr/lib/lua/luci/view/admin_status/index/disc_status.htm
  22. 3 6
      devices/common/patches/imagebuilder.patch
  23. 21 0
      devices/common/preset_pkg.mk
  24. 0 1
      devices/nanopi-r2s/.config
  25. 9 15
      devices/nanopi-r2s/diy.sh
  26. 7 6
      devices/nanopi-r2s/patches/r2s_exchange_lan_wan.patch
  27. 4 0
      onekey/build.sh

+ 23 - 8
.github/workflows/Openwrt-AutoBuild.yml

@@ -182,6 +182,10 @@ jobs:
       run: |
         cd openwrt
         make defconfig
+        for i in $(make --file=preset_pkg.mk presetpkg); do
+          sed -i "\$a CONFIG_PACKAGE_$i=y" .config
+        done
+        make defconfig
         make download -j$(($(nproc)+1)) &
 
     - name: Cache
@@ -228,16 +232,27 @@ jobs:
     - name: Organize files
       id: organize
       run: |
-        mkdir -p firmware/${{matrix.target}} firmware/nanopi-r4s firmware/nanopi-r2c kmods
+        shopt -s extglob
+        mkdir -p firmware/${{matrix.target}} kmods
+        if [[ ${{matrix.target}} == "nanopi-r4s" || ${{matrix.target}} == "nanopi-r2c" ]]; then
+          rm -rf openwrt/bin/targets/*/*/!(*.gz)
+        fi
+        if [ -f openwrt/bin/targets/*/*/*r2s*sysupgrade* ]; then
+          mkdir firmware/nanopi-r4s
+          mv -f  openwrt/nanopi-r4s.config firmware/nanopi-r4s/ || true
+          cp -rf openwrt/bin/targets/*/*/*r4s*sysupgrade* ./firmware/nanopi-r4s/ || true
+          mkdir firmware/nanopi-r2c
+          mv -f  openwrt/nanopi-r2c.config firmware/nanopi-r2c/ || true
+          cp -rf openwrt/bin/targets/*/*/*r2c*sysupgrade* ./firmware/nanopi-r2c/ || true
+          cp -rf openwrt/bin/targets/*/*/*{combined,r2s*sysupgrade,rpi-4*sysupgrade}* ./firmware/${{matrix.target}}/ || true
+        else
+          cp -rf openwrt/bin/targets/*/*/*{combined,sysupgrade}* ./firmware/${{matrix.target}}/ || true
+        fi
         cp openwrt/${{matrix.target}}.config  ./firmware/${{matrix.target}}/${{matrix.target}}.config || true
-        mv -f openwrt/nanopi-r2c.config firmware/nanopi-r2c/ || true
-        mv -f  openwrt/nanopi-r4s.config firmware/nanopi-r4s/ || true
         cp openwrt/build_dir/target-*/linux-*/linux-*/.config ./firmware/${{matrix.target}}/${{matrix.target}}_kernel.config
         kernel_v="$(cat openwrt/include/kernel-5.10 | grep LINUX_KERNEL_HASH-5.10* | cut -f 2 -d - | cut -f 1 -d ' ')"
-        cp -rf openwrt/bin/targets/*/*/packages ./kmods/$kernel_v
+        cp -rf openwrt/bin/targets/*/*/packages ./kmods/$kernel_v || true
         rm -rf openwrt/bin/targets/*/*/packages/*.ipk
-        cp -rf openwrt/bin/targets/*/*/*r4s*sysupgrade* ./firmware/nanopi-r4s/ || true
-        cp -rf openwrt/bin/targets/*/*/*r2c*sysupgrade* ./firmware/nanopi-r2c/ || true
         cp -rf openwrt/bin/targets/*/*/*{combined,r2s*sysupgrade,rpi-4*sysupgrade}* ./firmware/${{matrix.target}}/ || true
         rename -v "s/openwrt-/${{ env.VERSION }}-openwrt-/" ./firmware/*/* || true
         rename -v "s/friendlyarm_//" ./firmware/*/*gz || true
@@ -256,7 +271,7 @@ jobs:
 
     - name: Deploy firmware to server
       uses: easingthemes/ssh-deploy@main
-      if: env.SSH_PRIVATE_KEY && ! contains(github.event.action, 'noser')
+      if: env.SSH_PRIVATE_KEY && contains(github.event.action, 'ser')
       with:
         SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
         ARGS: "-avzr --exclude="
@@ -278,7 +293,7 @@ jobs:
 
     - name: Deploy imagebuilder to server
       uses: easingthemes/ssh-deploy@main
-      if: env.SSH_PRIVATE_KEY && ! contains(github.event.action, 'noser') && env.MTARGET
+      if: env.SSH_PRIVATE_KEY && ! contains(github.event.action, 'noser')
       with:
         SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
         ARGS: "-avzr"

+ 2 - 31
.github/workflows/repo-dispatcher.yml

@@ -12,14 +12,10 @@ on:
   # push: 
   #   branches:
   #     - master
-  schedule:
-    - cron: 30 18 * * *
+  #schedule:
+  #  - cron: 30 18 * * *
   workflow_dispatch:
     inputs:
-      skip:
-        description: 'Skip version check'
-        required: false
-        default: 'true'
       version:
         description: 'Version'
         required: false
@@ -54,7 +50,6 @@ jobs:
     - name: Trigger Compile
       run: |
         sudo timedatectl set-timezone "$TZ"
-        if [[ "${{ github.event.inputs.skip }}" == 'true' ]]; then
           curl \
           -X POST https://api.github.com/repos/${{ github.repository }}/dispatches \
           -H "Accept: application/vnd.github.everest-preview+json" \
@@ -70,28 +65,4 @@ jobs:
           -H "Accept: application/vnd.github.everest-preview+json" \
           -H "Authorization: token ${{ secrets.REPO_TOKEN }}" \
           -d '{"event_type": "Rpi-4B ${{ github.event.inputs.version }}", "client_payload": {"target": "Rpi-4B"}}'
-        else
-          [ "$REPO_BRANCH" ] && exit 0;
-          REPO_BRANCH_r=$(curl -s https://op.supes.top/firmware/x86_64/version.txt | tr "\r\n" "," | cut -f 3 -d ,)
-          REPO_BRANCH="$((curl -gs -H 'Content-Type: application/json' \
-             -H "Authorization: Bearer ${{ secrets.REPO_TOKEN }}" \
-             -X POST -d '{ "query": "query {repository(owner: \"openwrt\", name: \"openwrt\") {refs(refPrefix: \"refs/tags/\", last: 4, orderBy: {field: TAG_COMMIT_DATE, direction: ASC}) {edges {node {name}}}}}"}' https://api.github.com/graphql) | jq -r '.data.repository.refs.edges[].node.name' | grep v21 | tail -n 1)"
-            if [ $REPO_BRANCH_r != $REPO_BRANCH ]; then
-              curl \
-              -X POST https://api.github.com/repos/${{ github.repository }}/dispatches \
-              -H "Accept: application/vnd.github.everest-preview+json" \
-              -H "Authorization: token ${{ secrets.REPO_TOKEN }}" \
-              -d '{"event_type": "x86_64", "client_payload": {"target": "x86_64"}}'
-              curl \
-              -X POST https://api.github.com/repos/${{ github.repository }}/dispatches \
-              -H "Accept: application/vnd.github.everest-preview+json" \
-              -H "Authorization: token ${{ secrets.REPO_TOKEN }}" \
-              -d '{"event_type": "nanopi-r2s", "client_payload": {"target": "nanopi-r2s"}}'
-              curl \
-              -X POST https://api.github.com/repos/${{ github.repository }}/dispatches \
-              -H "Accept: application/vnd.github.everest-preview+json" \
-              -H "Authorization: token ${{ secrets.REPO_TOKEN }}" \
-              -d '{"event_type": "Rpi-4B", "client_payload": {"target": "Rpi-4B"}}'
-            fi
-        fi
 

+ 1 - 9
README.md

@@ -130,18 +130,10 @@ Build OpenWrt using GitHub Actions
 ### Acknowledgments
 - [OpenWrt](https://github.com/openwrt/openwrt)
 - [Lean's OpenWrt](https://github.com/coolsnowwolf/lede)
-- [CTCGFW's Team](https://github.com/immortalwrt/immortalwrt)
-- [Lienol](https://github.com/Lienol/openwrt)
+- [FriendlyWrt](https://github.com/friendlyarm/friendlywrt)
 - [P3TERX](https://github.com/P3TERX/OpenWrt_x86-r2s-r4s/blob/master/LICENSE)
-- [upload-release-action](https://github.com/svenstaro/upload-release-action)
-- [Microsoft](https://www.microsoft.com)
-- [Microsoft Azure](https://azure.microsoft.com)
 - [GitHub](https://github.com)
 - [GitHub Actions](https://github.com/features/actions)
-- [tmate](https://github.com/tmate-io/tmate)
-- [mxschmitt/action-tmate](https://github.com/mxschmitt/action-tmate)
-- [csexton/debugger-action](https://github.com/csexton/debugger-action)
-- [Cisco](https://www.cisco.com/)
 
 ![](https://github.com/kiddin9/luci-theme-edge/raw/master/Screenshots/1.png)
 ![](https://github.com/kiddin9/luci-theme-edge/raw/master/Screenshots/2.png)

+ 2 - 2
devices/Rpi-4B/patches/imagebuilder.patch

@@ -1,5 +1,5 @@
---- a/target/imagebuilder/files/Makefile
-+++ b/target/imagebuilder/files/Makefile
+--- a/target/imagebuilder/Makefile
++++ b/target/imagebuilder/Makefile
 @@ -31,6 +31,7 @@ $(BIN_DIR)/$(IB_NAME).tar.xz: clean
  	-cp $(TOPDIR)/.config $(PKG_BUILD_DIR)/.config
  	$(SED) 's/^CONFIG_BINARY_FOLDER=.*/# CONFIG_BINARY_FOLDER is not set/' $(PKG_BUILD_DIR)/.config

+ 4 - 2
devices/common/diy.sh

@@ -42,13 +42,15 @@ cd feeds/kiddin9; git pull; cd -
 svn export --force https://github.com/coolsnowwolf/lede/trunk/tools/upx tools/upx
 svn export --force https://github.com/coolsnowwolf/lede/trunk/tools/ucl tools/ucl
 svn co https://github.com/coolsnowwolf/lede/trunk/target/linux/generic/hack-5.10 target/linux/generic/hack-5.10
-rm -rf target/linux/generic/hack-5.10/{220-gc_sections*,781-dsa-register*}
+rm -rf target/linux/generic/hack-5.10/{220-gc_sections*,781-dsa-register*,780-drivers-net*}
 ) &
 
+chmod +x files/usr/bin/* files/etc/init.d/*
+
 sed -i 's?zstd$?zstd ucl upx\n$(curdir)/upx/compile := $(curdir)/ucl/compile?g' tools/Makefile
 sed -i 's/\/cgi-bin\/\(luci\|cgi-\)/\/\1/g' `find package/feeds/kiddin9/luci-*/ -name "*.lua" -or -name "*.htm*" -or -name "*.js"` &
 sed -i 's/Os/O2/g' include/target.mk
-sed -i 's/$(TARGET_DIR)) install/$(TARGET_DIR)) install --force-overwrite/' package/Makefile
+sed -i 's/$(TARGET_DIR)) install/$(TARGET_DIR)) install --force-overwrite --force-maintainer/' package/Makefile
 sed -i "/mediaurlbase/d" package/feeds/*/luci-theme*/root/etc/uci-defaults/*
 sed -i '/root:/c\root:$1$tTPCBw1t$ldzfp37h5lSpO9VXk4uUE\/:18336:0:99999:7:::' package/feeds/kiddin9/base-files/files/etc/shadow
 sed -i 's/=bbr/=cubic/' package/kernel/linux/files/sysctl-tcp-bbr.conf

+ 7 - 0
devices/common/diy/target/linux/rockchip/files/etc/init.d/fa-fancontrol

@@ -0,0 +1,7 @@
+#!/bin/sh /etc/rc.common
+
+START=21
+start() {
+    /usr/bin/fa-fancontrol.sh &
+}
+

+ 69 - 0
devices/common/diy/target/linux/rockchip/files/usr/bin/fa-fancontrol.sh

@@ -0,0 +1,69 @@
+#!/bin/bash
+
+# determine fan controller
+if [ -d /sys/devices/platform/pwm-fan ]; then
+    echo "pls use /usr/bin/fa-fancontrol.sh."
+    exit 1
+fi
+
+if [ ! -d /sys/class/pwm/pwmchip0 ]; then
+    echo "this model does not support pwm."
+    exit 1
+fi
+if [ ! -d /sys/class/pwm/pwmchip0/pwm0 ]; then
+    echo 0 > /sys/class/pwm/pwmchip0/export
+fi
+sleep 1
+while [ ! -d /sys/class/pwm/pwmchip0/pwm0 ];
+do
+    sleep 1
+done
+ISENABLE=`cat /sys/class/pwm/pwmchip0/pwm0/enable`
+if [ $ISENABLE -eq 1 ]; then
+    echo 0 > /sys/class/pwm/pwmchip0/pwm0/enable
+fi
+echo 50000 > /sys/class/pwm/pwmchip0/pwm0/period
+echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
+
+# max speed run 5s
+echo 46990 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
+sleep 5
+echo 25000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
+
+# declare -a CpuTemps=(55000 43000 38000 32000)
+# declare -a PwmDutyCycles=(1000 20000 30000 45000)
+
+declare -a CpuTemps=(75000 63000 58000 52000)
+declare -a PwmDutyCycles=(25000 35000 45000 46990)
+
+declare -a Percents=(100 75 50 25)
+DefaultDuty=49990
+DefaultPercents=0
+
+while true
+do
+	temp=$(cat /sys/class/thermal/thermal_zone0/temp)
+	INDEX=0
+	FOUNDTEMP=0
+	DUTY=$DefaultDuty
+	PERCENT=$DefaultPercents
+	
+	for i in 0 1 2 3; do
+		if [ $temp -gt ${CpuTemps[$i]} ]; then
+			INDEX=$i
+			FOUNDTEMP=1
+			break
+		fi	
+	done
+	if [ ${FOUNDTEMP} == 1 ]; then
+		DUTY=${PwmDutyCycles[$i]}
+		PERCENT=${Percents[$i]}
+	fi
+
+	echo $DUTY > /sys/class/pwm/pwmchip0/pwm0/duty_cycle;
+
+        # echo "temp: $temp, duty: $DUTY, ${PERCENT}%"
+        # cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq
+
+	sleep 2s;
+done

+ 44 - 0
devices/common/diy/target/linux/rockchip/patches-5.10/991-arm64-dts-rockchip-add-more-cpu-operating-points-for.patch

@@ -0,0 +1,44 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Leonidas P. Papadakos <[email protected]>
+Date: Fri, 1 Mar 2019 21:55:53 +0200
+Subject: [PATCH v2] arm64: dts: rockchip: add more cpu operating points for
+ RK3328
+
+This allows for greater max frequency on rk3328 boards,
+increasing performance.
+
+It has been included in Armbian (a linux distibution for ARM boards)
+for a while now without any reported issues
+
+https://github.com/armbian/build/blob/master/patch/kernel/rockchip64-default/enable-1392mhz-opp.patch
+https://github.com/armbian/build/blob/master/patch/kernel/rockchip64-default/enable-1512mhz-opp.patch
+
+Signed-off-by: Leonidas P. Papadakos <[email protected]>
+---
+ arch/arm64/boot/dts/rockchip/rk3328.dtsi | 15 +++++++++++++++
+ 1 files changed, 15 insertions(+)
+
+--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+@@ -140,6 +140,21 @@
+ 			opp-microvolt = <1300000>;
+ 			clock-latency-ns = <40000>;
+ 		};
++		opp-1392000000 {
++			opp-hz = /bits/ 64 <1392000000>;
++			opp-microvolt = <1350000>;
++			clock-latency-ns = <40000>;
++		};
++		opp-1512000000 {
++			opp-hz = /bits/ 64 <1512000000>;
++			opp-microvolt = <1400000>;
++			clock-latency-ns = <40000>;
++		};
++		opp-1608000000 {
++			opp-hz = /bits/ 64 <1608000000>;
++			opp-microvolt = <1450000>;
++			clock-latency-ns = <40000>;
++		};
+ 	};
+ 
+ 	amba: bus {

+ 46 - 0
devices/common/diy/target/linux/rockchip/patches-5.10/992-rockchip-rk3399-overclock-to-2.2-1.8-GHz.patch

@@ -0,0 +1,46 @@
+From 04202df5cb497b1934c95211cf43784ef62245a4 Mon Sep 17 00:00:00 2001
+From: Tianling Shen <[email protected]>
+Date: Mon, 18 Oct 2021 12:47:30 +0800
+Subject: [PATCH] rockchip: rk3399: overclock to 2.2/1.8 GHz
+
+It's stable enough to overclock cpu frequency to 2.2/1.8 GHz,
+and for better performance.
+
+Co-development-by: gzelvis <[email protected]>
+Signed-off-by: Tianling Shen <[email protected]>
+---
+ arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+--- a/arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi
+@@ -33,6 +33,14 @@
+ 			opp-hz = /bits/ 64 <1416000000>;
+ 			opp-microvolt = <1125000>;
+ 		};
++		opp06 {
++			opp-hz = /bits/ 64 <1608000000>;
++			opp-microvolt = <1225000>;
++		};
++		opp07 {
++			opp-hz = /bits/ 64 <1800000000>;
++			opp-microvolt = <1275000>;
++		};
+ 	};
+ 
+ 	cluster1_opp: opp-table1 {
+@@ -72,6 +80,14 @@
+ 			opp-hz = /bits/ 64 <1800000000>;
+ 			opp-microvolt = <1200000>;
+ 		};
++		opp08 {
++			opp-hz = /bits/ 64 <2016000000>;
++			opp-microvolt = <1250000>;
++		};
++		opp09 {
++			opp-hz = /bits/ 64 <2208000000>;
++			opp-microvolt = <1325000>;
++		};
+ 	};
+ 
+ 	gpu_opp_table: opp-table2 {

+ 0 - 6
devices/common/files/etc/config/frps

@@ -1,6 +0,0 @@
-config frps 'main'
-	option enabled '0'
-	option server 'frps'
-	option client_file '/usr/bin/frps'
-	option bind_port '7000'
-	option tcp_mux 'true'

+ 0 - 39
devices/common/files/etc/config/mwan3

@@ -1,39 +0,0 @@
-
-config globals 'globals'
-	option mmx_mask '0x3F00'
-	option rtmon_interval '5'
-
-config interface 'wan'
-	option enabled '1'
-	list track_ip '114.114.114.114'
-	list track_ip '114.114.115.115'
-	option family 'ipv4'
-	option reliability '2'
-	option count '1'
-	option timeout '2'
-	option failure_latency '1000'
-	option recovery_latency '500'
-	option failure_loss '20'
-	option recovery_loss '5'
-	option interval '5'
-	option down '3'
-	option up '8'
-
-config member 'wan_m1_w3'
-	option interface 'wan'
-	option metric '1'
-	option weight '3'
-
-config policy 'balanced'
-	option last_resort 'unreachable'
-	list use_member 'wan_m1_w3'
-
-config rule 'https'
-	option sticky '1'
-	option dest_port '443'
-	option proto 'tcp'
-	option use_policy 'balanced'
-
-config rule 'default_rule'
-	option dest_ip '0.0.0.0/0'
-	option use_policy 'balanced'

+ 0 - 29
devices/common/files/etc/config/nginx

@@ -1,29 +0,0 @@
-
-config main global
-	option uci_enable 'true'
-
-config server '_lan'
-	list listen '80 default_server'
-	list listen '[::]:80 default_server'
-	option server_name 'op'
-	option index 'ng_index.html index.html index.htm'
-	list include 'conf.d/*.locations'
-	option access_log 'off; # logd openwrt'
-	
-config server '_ssl'
-	list listen '443 ssl'
-	list listen '[::]:443 ssl'
-	option server_name '_ssl'
-	option index 'ng_index.html index.html index.htm'
-	list include 'conf.d/*.locations'
-	option ssl_certificate '/etc/nginx/conf.d/_lan.crt'
-	option ssl_certificate_key '/etc/nginx/conf.d/_lan.key'
-	option ssl_session_cache 'shared:SSL:32k'
-	option ssl_session_timeout '64m'
-	option access_log 'off; # logd openwrt'
-
-config server '_redirect2ssl'
-	#list listen '80'
-	#list listen '[::]:80'
-	#option server_name '_redirect2ssl'
-	#option return '302 https://$host$request_uri'

+ 0 - 4
devices/common/files/etc/config/syncthing

@@ -1,4 +0,0 @@
-
-config setting 'config'
-	option enabled '0'
-	option port '8384'

+ 0 - 240
devices/common/files/etc/dnsmasq.d/bogus-nxdomain.china.conf

@@ -1,240 +0,0 @@
-## Public DNS
-
-# DNSPai
-bogus-nxdomain=123.125.81.12
-bogus-nxdomain=101.226.10.8
-
-# Level3
-bogus-nxdomain=198.105.254.11
-bogus-nxdomain=104.239.213.7
-
-
-## China Telecom
-
-# Anhui Telecom
-bogus-nxdomain=61.191.206.4
-
-# Beijing Telecom
-bogus-nxdomain=218.30.64.194
-
-# Chengdu Telecom
-bogus-nxdomain=61.139.8.101
-bogus-nxdomain=61.139.8.102
-bogus-nxdomain=61.139.8.103
-bogus-nxdomain=61.139.8.104
-
-# Fujian Telecom
-bogus-nxdomain=42.123.125.237
-
-# Gansu Telecom
-bogus-nxdomain=202.100.68.117
-
-# Guangxi Telecom
-bogus-nxdomain=113.12.83.4
-bogus-nxdomain=113.12.83.5
-
-# Hainan Telecom
-bogus-nxdomain=202.100.220.54
-
-# Hangzhou Telecom
-bogus-nxdomain=60.191.124.236
-bogus-nxdomain=60.191.124.252
-
-# Hebei Telecom
-bogus-nxdomain=222.221.5.204
-
-# Hunan Telecom
-bogus-nxdomain=124.232.132.94
-
-# Jiangsu Telecom
-bogus-nxdomain=202.102.110.204
-
-# Jiangxi Telecom
-bogus-nxdomain=61.131.208.210
-bogus-nxdomain=61.131.208.211
-
-# Nanjing Telecom
-bogus-nxdomain=202.102.110.203
-bogus-nxdomain=202.102.110.205
-
-# Shandong Telecom
-bogus-nxdomain=219.146.13.36
-
-# Shanghai Telecom
-bogus-nxdomain=180.168.41.175
-bogus-nxdomain=180.153.103.224
-
-# Wuhan Telecom
-bogus-nxdomain=111.175.221.58
-bogus-nxdomain=61.183.1.186
-
-# Xi'an Telecom
-bogus-nxdomain=125.76.239.244
-bogus-nxdomain=125.76.239.245
-
-# Yunnan Telecom
-bogus-nxdomain=222.221.5.252
-bogus-nxdomain=222.221.5.253
-bogus-nxdomain=220.165.8.172
-bogus-nxdomain=220.165.8.174
-
-
-## China Unicom
-
-# Anhui Unicom
-bogus-nxdomain=112.132.230.179
-
-# Beijing Unicom (bjdnserror1.wo.com.cn ~ bjdnserror5.wo.com.cn)
-bogus-nxdomain=202.106.199.34
-bogus-nxdomain=202.106.199.35
-bogus-nxdomain=202.106.199.36
-bogus-nxdomain=202.106.199.37
-bogus-nxdomain=202.106.199.38
-
-# Hebei Unicom (hbdnserror1.wo.com.cn ~ hbdnserror7.wo.com.cn)
-bogus-nxdomain=221.192.153.41
-bogus-nxdomain=221.192.153.42
-bogus-nxdomain=221.192.153.43
-bogus-nxdomain=221.192.153.44
-bogus-nxdomain=221.192.153.45
-bogus-nxdomain=221.192.153.46
-bogus-nxdomain=221.192.153.49
-
-# Heilongjiang Unicom (hljdnserror1.wo.com.cn ~ hljdnserror5.wo.com.cn)
-bogus-nxdomain=125.211.213.130
-bogus-nxdomain=125.211.213.131
-bogus-nxdomain=125.211.213.132
-bogus-nxdomain=125.211.213.133
-bogus-nxdomain=125.211.213.134
-
-# Henan Unicom (hndnserror1.wo.com.cn ~ hndnserror7.wo.com.cn)
-bogus-nxdomain=218.28.144.36
-bogus-nxdomain=218.28.144.37
-bogus-nxdomain=218.28.144.38
-bogus-nxdomain=218.28.144.39
-bogus-nxdomain=218.28.144.40
-bogus-nxdomain=218.28.144.41
-bogus-nxdomain=218.28.144.42
-
-# Jilin Unicom (jldnserror1.wo.com.cn ~ jldnserror5.wo.com.cn)
-bogus-nxdomain=202.98.24.121
-bogus-nxdomain=202.98.24.122
-bogus-nxdomain=202.98.24.123
-bogus-nxdomain=202.98.24.124
-bogus-nxdomain=202.98.24.125
-
-# Liaoning Unicom (lndnserror1.wo.com.cn ~ lndnserror7.wo.com.cn)
-bogus-nxdomain=60.19.29.21
-bogus-nxdomain=60.19.29.22
-bogus-nxdomain=60.19.29.23
-bogus-nxdomain=60.19.29.24
-bogus-nxdomain=60.19.29.25
-bogus-nxdomain=60.19.29.26
-bogus-nxdomain=60.19.29.27
-
-# Nanfang Unicom (nfdnserror1.wo.com.cn ~ nfdnserror17.wo.com.cn)
-bogus-nxdomain=220.250.64.18
-bogus-nxdomain=220.250.64.19
-bogus-nxdomain=220.250.64.20
-bogus-nxdomain=220.250.64.21
-bogus-nxdomain=220.250.64.22
-bogus-nxdomain=220.250.64.23
-bogus-nxdomain=220.250.64.24
-bogus-nxdomain=220.250.64.25
-bogus-nxdomain=220.250.64.26
-bogus-nxdomain=220.250.64.27
-bogus-nxdomain=220.250.64.28
-bogus-nxdomain=220.250.64.29
-bogus-nxdomain=220.250.64.30
-bogus-nxdomain=220.250.64.225
-bogus-nxdomain=220.250.64.226
-bogus-nxdomain=220.250.64.227
-bogus-nxdomain=220.250.64.228
-
-# Neimenggu Unicom (nmdnserror2.wo.com.cn ~ nmdnserror4.wo.com.cn)
-bogus-nxdomain=202.99.254.231
-bogus-nxdomain=202.99.254.232
-bogus-nxdomain=202.99.254.230
-
-# Shandong Unicom (sddnserror1.wo.com.cn ~ sddnserror9.wo.com.cn)
-bogus-nxdomain=123.129.254.11
-bogus-nxdomain=123.129.254.12
-bogus-nxdomain=123.129.254.13
-bogus-nxdomain=123.129.254.14
-bogus-nxdomain=123.129.254.15
-bogus-nxdomain=123.129.254.16
-bogus-nxdomain=123.129.254.17
-bogus-nxdomain=123.129.254.18
-bogus-nxdomain=123.129.254.19
-
-# Shanxi Unicom (sxdnserror1.wo.com.cn ~ sxdnserror6.wo.com.cn)
-bogus-nxdomain=221.204.244.36
-bogus-nxdomain=221.204.244.37
-bogus-nxdomain=221.204.244.38
-bogus-nxdomain=221.204.244.39
-bogus-nxdomain=221.204.244.40
-bogus-nxdomain=221.204.244.41
-
-# Tianjin Unicom (tjdnserror1.wo.com.cn ~ tjdnserror5.wo.com.cn)
-bogus-nxdomain=218.68.250.117
-bogus-nxdomain=218.68.250.118
-bogus-nxdomain=218.68.250.119
-bogus-nxdomain=218.68.250.120
-bogus-nxdomain=218.68.250.121
-
-
-## China Mobile
-
-# Anhui Mobile
-bogus-nxdomain=120.209.138.64
-
-# Guangdong Mobile
-bogus-nxdomain=211.139.136.73
-bogus-nxdomain=221.179.46.190
-bogus-nxdomain=221.179.46.194
-
-# Jiangsu Mobile
-bogus-nxdomain=183.207.232.253
-
-# Jiangxi Mobile
-bogus-nxdomain=223.82.248.117
-
-# Qinghai Mobile
-bogus-nxdomain=211.138.74.132
-
-# Shaanxi Mobile
-bogus-nxdomain=211.137.130.101
-
-# Shanghai Mobile
-bogus-nxdomain=211.136.113.1
-
-# Shanxi Mobile
-bogus-nxdomain=211.138.102.198
-
-# Shandong Mobile
-bogus-nxdomain=120.192.83.163
-
-# Sichuan Mobile
-bogus-nxdomain=183.221.242.172
-bogus-nxdomain=183.221.250.11
-
-# Xizang Mobile
-bogus-nxdomain=111.11.208.2
-
-# Yunnan Mobile
-bogus-nxdomain=183.224.40.24
-
-
-## China Tie Tong
-
-# Shandong TieTong
-bogus-nxdomain=211.98.70.226
-bogus-nxdomain=211.98.70.227
-bogus-nxdomain=211.98.71.195
-
-
-## GWBN
-
-# Wuhan GWBN
-bogus-nxdomain=114.112.163.232
-bogus-nxdomain=114.112.163.254

+ 0 - 13
devices/common/files/etc/nginx/conf.d/_lan.crt

@@ -1,13 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICBjCCAYugAwIBAgIUGK/jDVgfzEjdhGT3KL8IgfeaQSowCgYIKoZIzj0EAwIw
-ZDELMAkGA1UEBhMCWloxEjAQBgNVBAgMCVNvbWV3aGVyZTENMAsGA1UEBwwETm9u
-ZTEQMA4GA1UEAwwHT3BlbldydDEgMB4GA1UECgwXT3BlbldydEQyMEEyRUJGREM3
-QjM2MDMwHhcNMjEwODMwMDgwMTA3WhcNMjQxMTMwMDgwMTA3WjBkMQswCQYDVQQG
-EwJaWjESMBAGA1UECAwJU29tZXdoZXJlMQ0wCwYDVQQHDAROb25lMRAwDgYDVQQD
-DAdPcGVuV3J0MSAwHgYDVQQKDBdPcGVuV3J0RDIwQTJFQkZEQzdCMzYwMzB2MBAG
-ByqGSM49AgEGBSuBBAAiA2IABNw+4uMTosAzmSJ8o07mhGQlnV0MPLKAKoeFL3/f
-MKkNHV4GzqomRA3zx62n8GZhUDTPTyP4Ywso9ns2Z/OP0paC2yBj+EQrdGP5e1r/
-UV2mjNL4JR5OCyUSVjGnYDBVRzAKBggqhkjOPQQDAgNpADBmAjEAhcVcQmeBdTFG
-nykE8XDCt5NSzwawJms6i7PnTJ3I+c7u1vn6sVpoL+nxAZoCU59jAjEAnPzHfNbv
-xGOuPJO3z/BPPDm9rDTX3cTNrfqsWZKndoFxqDr+UdZtk0wXdYW5Ylww
------END CERTIFICATE-----

+ 0 - 6
devices/common/files/etc/nginx/conf.d/_lan.key

@@ -1,6 +0,0 @@
------BEGIN EC PRIVATE KEY-----
-MIGkAgEBBDD8iUe1wMW2VINd9hlJqH9Nc5J4MBSCEk3KeXsC4fBOR+ubHEM2K9+I
-aY+TWJsMfV6gBwYFK4EEACKhZANiAATcPuLjE6LAM5kifKNO5oRkJZ1dDDyygCqH
-hS9/3zCpDR1eBs6qJkQN88etp/BmYVA0z08j+GMLKPZ7Nmfzj9KWgtsgY/hEK3Rj
-+Xta/1FdpozS+CUeTgslElYxp2AwVUc=
------END EC PRIVATE KEY-----

+ 0 - 70
devices/common/files/etc/nginx/conf.d/shortcuts.conf

@@ -1,70 +0,0 @@
-# AdguardHome
-server {
-		listen 80;
-		listen [::]:80;
-		server_name adg;
-		location /{	
-			set $ip 10.0.0.1;
-			proxy_pass $scheme://$ip:3000;
-		}
-	}
-
-# PVE
-server {
-		listen 443 ssl;
-		listen [::]:443 ssl;
-		listen 80;
-		listen [::]:80;
-		server_name pve;
-		ssl_certificate /etc/nginx/conf.d/_lan.crt;
-		ssl_certificate_key /etc/nginx/conf.d/_lan.key;
-		location /{
-			proxy_pass $scheme://10.0.0.10:8006;
-			proxy_set_header Upgrade $http_upgrade;
-			proxy_set_header Connection "upgrade"; 
-		}
-		if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
-	}
-
-# 青龙
-server {
-		listen 80;
-		listen [::]:80;
-		server_name ql;
-		location /{
-			set $ip 10.0.0.1;
-			proxy_pass $scheme://$ip:5700;
-		}
-	}
-
-# Bypass
-server {
-		listen 80;
-		listen [::]:80;
-		server_name by;
-		return 301 $scheme://op/luci/admin/services/bypass;
-	}
-
-# Packages软件包
-server {
-		listen 80;
-		listen [::]:80;
-		server_name pk;
-        return 301 $scheme://op/luci/admin/system/opkg;
-	}
-
-# Upgrade在线固件更新
-server {
-		listen 80;
-		listen [::]:80;
-		server_name ug;
-        return 301 $scheme://op/luci/admin/services/gpsysupgrade;
-	}
-
-# AriaNg
-server {
-		listen 80;
-		listen [::]:80;
-		server_name ag;
-        return 301 $scheme://op/ariang;
-	}

+ 0 - 42
devices/common/files/etc/nginx/conf.d/webdav.conf.sample

@@ -1,42 +0,0 @@
-server
-    {
-        listen 8877;
-        #listen 443 ssl http2;
-        server_name _lan;
-        index index.html index.htm index.php default.html default.htm default.php;
-        root  /data;
-
-        # ssl_certificate /etc/acme/supes.top/fullchain.cer;
-        # ssl_certificate_key /etc/acme/supes.top/supes.top.key;
-	    # ssl_session_timeout '64m';
-	    # ssl_protocols TLSv1.2 TLSv1.3;
-        # ssl_prefer_server_ciphers on;
-        # ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
-	    # ssl_session_cache 'shared:SSL:10m';
-		
-		client_max_body_size 0;
-
-	        location / {
-
-            set $dest $http_destination;
-            if (-d $request_filename) {
-                rewrite ^(.*[^/])$ $1/;
-                set $dest $dest/;
-            }
-            if ($request_method ~ (MOVE|COPY)) {
-                more_set_input_headers 'Destination: $dest';
-            }
-
-            if ($request_method ~ MKCOL) {
-                rewrite ^(.*[^/])$ $1/ break;
-            }
-
-            dav_methods PUT DELETE MKCOL COPY MOVE;
-            dav_ext_methods PROPFIND OPTIONS;
-            dav_access user:rw group:rw all:r;
-            create_full_put_path  on;
-
-            auth_basic "Restricted access";
-            auth_basic_user_file /etc/nginx/htpasswd.conf;
-        }
-}

+ 0 - 1
devices/common/files/etc/nginx/htpasswd.conf

@@ -1 +0,0 @@
-root:fU70Nx.37Ofww

+ 0 - 33
devices/common/files/etc/nginx/uci.conf.template

@@ -1,33 +0,0 @@
-# Consider using UCI or creating files in /etc/nginx/conf.d/ for configuration.
-# Parsing UCI configuration is skipped if uci set nginx.global.uci_enable=false
-# For details see: https://openwrt.org/docs/guide-user/services/webserver/nginx
-
-worker_processes auto;
-
-user root;
-
-events {}
-
-http {
-	access_log off;
-	log_format openwrt
-		'$request_method $scheme://$host$request_uri => $status'
-		' (${body_bytes_sent}B in ${request_time}s) <- $http_referer';
-
-	include mime.types;
-	default_type application/octet-stream;
-	sendfile on;
-
-	client_max_body_size 128M;
-	client_header_buffer_size 512k;
-	large_client_header_buffers 4 512k;
-
-	gzip on;
-	gzip_vary on;
-	gzip_proxied any;
-
-	root /www;
-
-	#UCI_HTTP_CONFIG
-	include conf.d/*.conf;
-}

+ 0 - 278
devices/common/files/usr/lib/lua/luci/view/admin_status/index/disc_status.htm

@@ -1,278 +0,0 @@
-<% local raid = {}
-   local devs = {}
-   local devinfo = {}
-   local colors = { "c0c0ff", "fbbd00", "e97c30", "a0e0a0", "e0c0ff" }
-   local mounts = nixio.fs.readfile("/proc/mounts")
-   
-   local show_raid = 1
-   local show_disc = 1
-
-   if self then
-        if self.hide_raid then
-                show_raid = 0
-        end
-	if self.hide_disc then
-		show_disc = 0
-	end
-   end
-
-   function disp_size(s)
-	local units = { "kB", "MB", "GB", "TB" }
-	local i, unit
-	s = s / 2
-	for i, unit in ipairs(units) do
-		if (i == #units) or (s < 1024) then
-			return math.floor(s * 100) / 100 .. unit
-		end
-		s = s / 1024
-	end
-   end
-
-   function first_line(s)
-	local n = s:find("\n")
-	if n then
-		return s:sub(1, n-1)
-	end
-	return s
-   end
-
-   function get_fs(pname, status)
-  	for r,raid in ipairs(raid) do
-		for m,member in ipairs(raid.members) do
-			if member.name == pname then
-				return "(raid member)"
-			end
-		end
-	end
-
-	local mounted_fs = mounts:match("\n[a-z/]*" .. pname .. " [^ ]* ([^ ]*)")
-	if mounted_fs then
-		if status == "standby" then
-			return "(" .. mounted_fs .. ")"
-		end
-		local df = luci.sys.exec("df /dev/" .. pname):match(" ([0-9]+)%% ")
-		return "(" .. mounted_fs .. " " .. df .. "%)"
-	end
-
-	if status == "standby" then
-		return
-	end
-
-	local blkid = luci.sys.exec(" blkid -s TYPE /dev/" .. pname):match("TYPE=\"(.*)\"")
-	if blkid then
-		return "(" .. blkid .. ")"
-	end
-   end   
-
-   function get_status(raid)
-	for m,member in ipairs(raid.members) do
-		for d,dev in ipairs(devinfo) do
-			if member.name == dev.name then
-				return dev.status
-			end
-			for p,part in ipairs(dev.parts) do
-				if member.name == part.name then
-					return dev.status
-				end
-			end
-		end
-	end
-   end
-
-
-   function get_parts(dev,status,size)
-	local c = 1
-	local unused = size
-	local parts = {}
-
-	for part in nixio.fs.glob("/sys/block/" .. dev .."/" .. dev .. "*") do
-		local pname = nixio.fs.basename(part)
-		local psize = nixio.fs.readfile(part .. "/size")
-		table.insert(parts, {name=pname, size=psize, perc=math.floor(psize*100/size), fs=get_fs(pname,status), color=colors[c]})
-		c = c + 1
-		unused = unused - psize
-	end
-	if unused > 2048 then
-		table.insert(parts, { name="", fs=get_fs(dev,status), size=unused, color=colors[c] })
-	end
-	return parts
-   end
-
-   for dev in nixio.fs.glob("/sys/block/*") do
-	if nixio.fs.access(dev .. "/md") then
-		local name = nixio.fs.basename(dev)
-		local rlevel = first_line(nixio.fs.readfile(dev .. "/md/level"))
-		local ndisks = tonumber(nixio.fs.readfile(dev .. "/md/raid_disks"))
-		local size = tonumber(nixio.fs.readfile(dev .. "/size"))
-		local metav = nixio.fs.readfile(dev .. "/md/metadata_version")
-		local degr = tonumber(nixio.fs.readfile(dev .. "/md/degraded"))
-		local sync = first_line(nixio.fs.readfile(dev .. "/md/sync_action"))
-		local sync_speed = tonumber(nixio.fs.readfile(dev .. "/md/sync_speed"))
-		local sync_compl = nixio.fs.readfile(dev .. "/md/sync_completed")
-		local status = "active"
-		if sync ~= "idle" then
-			local progress, total = nixio.fs.readfile(dev .. "/md/sync_completed"):match("^([0-9]*)[^0-9]*([0-9]*)")
-			local rem = (total - progress) / sync_speed / 2
-			local rems = math.floor(rem % 60)
-			if rems < 10 then rems = "0" .. rems end
-			rem = math.floor(rem / 60)
-			local remm = math.floor(rem % 60)
-			if remm < 10 then remm = "0" .. remm end
-			local remh = math.floor(rem / 60)
-			local remstr = remh .. ":" .. remm .. ":" .. rems
-			status = sync .. " (" .. math.floor(sync_speed/1024) .. "MB/s, " .. math.floor(progress * 1000 / total) /10  .. "%, rem. " .. remstr .. ")"
-		elseif degr == 1 then
-			status = "degraded"
-		end
-
-		local members = {}
-		local c = 1
-		for member in nixio.fs.glob("/sys/block/" .. name .. "/md/dev-*") do
-			local dname = nixio.fs.basename(nixio.fs.readlink(member .. "/block"))
-			local dsize = disp_size(tonumber(nixio.fs.readfile(member .. "/block/size")))
-			local dstate = nixio.fs.readfile(member .. "/state"):gsub("_", " "):match "^%s*(.-)%s*$"
-			table.insert(members, { name = dname, size = dsize, state = dstate, color = colors[c] })
-			c = c + 1
-		end
-		table.insert(raid, {name=name, rlevel=rlevel, ndisks=ndisks, size=size, metav=metav, status=status, members=members })
-	end
-   end
-
-   if show_disc == 1 then
-   for dev in nixio.fs.glob("/sys/class/scsi_disk/*/device") do
-	local section
-	local model = nixio.fs.readfile(dev .. "/model")
-	local fw = nixio.fs.readfile(dev .. "/rev")
-	for bdev in nixio.fs.glob(dev .. "/block/*") do
-		local section
-		local name = nixio.fs.basename(bdev)
-		local size = tonumber(nixio.fs.readfile(bdev .. "/size"))
-		local unused = size
-		local status = "-"
-		local temp = "-"
-		local serial = "-"
-		local secsize = "-"
-
-		for _,line in ipairs(luci.util.execl("smartctl -A -i -n standby -f brief /dev/" .. name)) do
-			local attrib, val
-			if section == 1 then
-				attrib, val = line:match "^(.*):%s*(.*)"
-			elseif section == 2 then
-				attrib, val = line:match("^([0-9 ]*) [^ ]* * [POSRCK-]* *[0-9-]* *[0-9-]* *[0-9-]* *[0-9-]* *([0-9-]*)")
-			else
-				attrib = line:match "^=== START OF (.*) SECTION ==="
-				if attrib == "INFORMATION" then
-					section = 1
-				elseif attrib == "READ SMART DATA" then
-                                                section = 2
-                                        elseif status == "-" then
-                                                val = line:match "^Device is in (.*) mode"
-                                                if val then
-                                                        status = val:lower()
-                                                end
-                                        end
-                                end
-
-                                if not attrib then
-                                        if section ~= 2 then section = 0 end
-                                elseif (attrib == "Power mode is") or (attrib == "Power mode was") then
-                                        status = val:lower():match "(%S*)"
-                                elseif attrib == "Sector Sizes" then
-                                        secsize = val:match "([0-9]*) bytes physical"
-                                elseif attrib == "Sector Size" then
-                                        secsize = val:match "([0-9]*)"
-                                elseif attrib == "Serial Number" then
-                                        serial = val
-                                elseif attrib == "194" then
-                                        temp = val .. "&deg;C"
-                                end
-		end
-		table.insert(devinfo, {name=name, model=model, fw=fw, size=size, status=status, temp=temp, serial=serial, secsize=secsize, parts=get_parts(name,status,size) })
-	end
-   end
-
-   for r,dev in ipairs(raid) do
-	table.insert(devinfo, {name=dev.name, model="Linux RAID", size=dev.size, status=get_status(dev), secsize=secsize, parts=get_parts(dev.name,status,dev.size) })
-   end
-   end
-
-   if show_disc == 1 then %>
-<div class="cbi-section">
-	<h3><%:Disks%></h3>
-        <table class="cbi-section-table" style="white-space: nowrap">
-                <tr>
-                        <th width="5%">&nbsp;</th>
-                        <th width="30%"><%:Model%></th>
-                        <th width="15%"><%:Serial number%></th>
-                        <th width="10%"><%:Firmware%></th>
-                        <th width="10%"><%:Capacity%></th>
-                        <th width="5%"><%:Sector size%></th>
-                        <th width="5%"><%:Temperature%></th>
-                        <th width="20%"><%:Power state%></th>
-                </tr>
-<%	local style=true
-	for d,dev in ipairs(devinfo) do %>
-                <tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
-                        <td class="cbi-vluae-field" style="padding-bottom:0px; border-bottom-width:0px; vertical-align:middle" rowspan="4"><%=dev.name%></td>
-                        <td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.model%></td>
-                        <td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.serial%></td>
-                        <td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.fw%></td>
-                        <td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=disp_size(dev.size)%></td>
-                        <td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.secsize%></td>
-                        <td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.temp%></td>
-                        <td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.status%></td>
-                </tr>
-		<tr style="height:0px" />
-                <tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
-                        <td style="padding:0px; border-top-width:0px;" colspan="7" rowspan="2">
-                        <table style="border: 0pt; border-collapse:collapse; width:100%; padding:0px; margin:0px"><tr>
-                        <% for _,part in pairs(dev.parts) do %>
-                                <td style="text-align:center; padding: 0px 4px; border-radius: 3px; background-color:#<%=part.color%>" width="<%=part.perc%>%"><%=part.name%> <%=disp_size(part.size)%> <%=part.fs%></td>
-                        <% end %>
-                        </tr></table>
-                        </td>
-                </tr>
-                <tr style="height:0px" />
-<%              style = not style
-	end %>
-	</table>
-</div>
-<% end
-   if show_raid == 1 and #raid > 0 then %>
-<div class="cbi-section">
-	<h3><%:Raid arrays%></h3>
-	<table class="cbi-section-table" style="white-space:nowrap">
-		<tr>
-			<th width="5%">&nbsp;</th>
-			<th width="13%"><%:Level%></th>
-			<th width="13%"><%:# Disks%></th>
-			<th width="13%"><%:Capacity%></th>
-			<th width="13%"><%:Metadata%></th>
-			<th width="43%"><%:Status%></th>
-		</tr>
-<%	local style=true
-	for r,dev in ipairs(raid) do %> 
-		<tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
-			<td class="cbi-vluae-field" style="padding-bottom:0px; border-bottom-width:0px; vertical-align:middle" rowspan="4"><%=dev.name%></td>
-			<td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.rlevel%></td>
-			<td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.ndisks%></td>
-			<td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=disp_size(dev.size)%></td>
-			<td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.metav%></td>
-			<td class="cbi-value-field" style="padding-bottom:0px; border-bottom-width:0px" rowspan="2"><%=dev.status%></td>
-		</tr>
-		<tr style="height:0px" />
-		<tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
-			<td style="padding-top:0px; border-top-width:0px" colspan="6" rowspan="2">
-				<table style="border: 0pt; border-collapse:collapse; width:100%; padding:0px; margin:0px"><tr>
-					<% for _,member in pairs(dev.members) do %>
-					<td style="text-align:center; padding: 0px 4px; border-radius: 3px; background-color:#<%=member.color%>; white-space: nowrap"><%=member.name%> <%=member.size%> (<%=member.state%>)</td>
-					<% end %>
-				</tr></table>
-			</td>
-		</tr>
-		<tr style="height:0px" />
-<%		style = not style
-	end %>
-	</table>
-</div>
-<% end %>

+ 3 - 6
devices/common/patches/imagebuilder.patch

@@ -1,10 +1,7 @@
 --- a/target/imagebuilder/Makefile
 +++ b/target/imagebuilder/Makefile
-@@ -38,13 +38,12 @@ $(BIN_DIR)/$(IB_NAME).tar.xz: clean
- 		./files/repositories.conf \
- 		$(TMP_DIR)/.targetinfo \
+@@ -40,11 +40,9 @@ $(BIN_DIR)/$(IB_NAME).tar.xz: clean
  		$(TMP_DIR)/.packageinfo \
-+		$(TOPDIR)/files \
  		$(PKG_BUILD_DIR)/
  
 -ifeq ($(CONFIG_IB_STANDALONE),)
@@ -13,8 +10,8 @@
  	$(VERSION_SED_SCRIPT) $(PKG_BUILD_DIR)/repositories.conf
 -endif
  
- ifeq ($(CONFIG_BUILDBOT),)
  	$(INSTALL_DIR) $(PKG_BUILD_DIR)/packages
+ 	# create an empty package index so `opkg` doesn't report an error
 
 --- a/target/imagebuilder/files/Makefile
 +++ b/target/imagebuilder/files/Makefile
@@ -37,7 +34,7 @@
 +			packages="$$packages luci-i18n-`echo $$p | cut -d - -f 3-`-zh-cn"; \
 +		fi \
 +	done; \
-+	$(OPKG) install --force-overwrite --force-checksum --force-depends $$packages
++	$(OPKG) install --force-overwrite --force-checksum --force-depends --force-maintainer $$packages
  
  prepare_rootfs: FORCE
  	@echo

+ 21 - 0
devices/common/preset_pkg.mk

@@ -0,0 +1,21 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2007 OpenWrt.org
+
+TOPDIR:=${CURDIR}
+export OPENWRT_VERBOSE=s
+
+include rules.mk
+include $(INCLUDE_DIR)/target.mk
+-include .profiles.mk
+
+.profiles.mk: $(TMP_DIR)/.targetinfo
+	@$(SCRIPT_DIR)/target-metadata.pl profile_mk $< '$(BOARD)$(if $(SUBTARGET),/$(SUBTARGET))' > $@
+
+USER_PROFILE ?= $(firstword $(PROFILE_NAMES))
+BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $($(USER_PROFILE)_PACKAGES) kernel)
+# "-pkgname" in the package list means remove "pkgname" from the package list
+BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))
+
+presetpkg: FORCE
+	@echo "$(BUILD_PACKAGES)"

+ 0 - 1
devices/nanopi-r2s/.config

@@ -11,5 +11,4 @@ CONFIG_PACKAGE_luci-app-cpufreq=y
 
 # 其他需要安装的软件包:
 CONFIG_PACKAGE_my-autocore-arm=y
-CONFIG_PACKAGE_kmod-hwmon-pwmfan=y
 

+ 9 - 15
devices/nanopi-r2s/diy.sh

@@ -1,26 +1,18 @@
 #!/bin/bash
 
 shopt -s extglob
-rm -rf package/boot/uboot-rockchip
-svn export --force https://github.com/immortalwrt/immortalwrt/branches/master/package/boot/uboot-rockchip package/boot/uboot-rockchip
-svn export --force https://github.com/immortalwrt/immortalwrt/branches/master/package/boot/arm-trusted-firmware-rockchip-vendor package/boot/arm-trusted-firmware-rockchip-vendor
-rm -rf target/linux/rockchip/!(Makefile|patches-5.10)
-svn co https://github.com/immortalwrt/immortalwrt/branches/master/target/linux/rockchip target/linux/rockchip
-rm -rf target/linux/rockchip/{.svn,patches-5.10/.svn}
-svn co https://github.com/immortalwrt/immortalwrt/branches/master/target/linux/rockchip/patches-5.10 target/linux/rockchip/patches-5.10
-rm -Rf target/linux/rockchip/patches-5.10/{006-*-NanoPi-R,007-*-R4S}.patch
-curl -sfL https://raw.githubusercontent.com/immortalwrt/immortalwrt/master/package/kernel/linux/modules/video.mk -o package/kernel/linux/modules/video.mk
-
-curl -sfL https://raw.githubusercontent.com/friendlyarm/friendlywrt/master-v21.02/target/linux/rockchip/armv8/base-files/usr/bin/fa-fancontrol.sh --create-dirs -o files/usr/bin/fa-fancontrol.sh
-curl -sfL https://raw.githubusercontent.com/friendlyarm/friendlywrt/master-v21.02/target/linux/rockchip/armv8/base-files/usr/bin/fa-fancontrol-direct.sh --create-dirs -o files/usr/bin/fa-fancontrol-direct.sh
-curl -sfL https://raw.githubusercontent.com/friendlyarm/friendlywrt/master-v21.02/target/linux/rockchip/armv8/base-files/etc/init.d/fa-fancontrol --create-dirs -o files/etc/init.d/fa-fancontrol
-chmod +x files/usr/bin/fa-*.sh files/etc/init.d/fa-fancontrol
+rm -rf package/boot/uboot-rockchip target/linux/rockchip/patches-5.10/.svn
+svn export --force https://github.com/friendlyarm/friendlywrt/branches/master/package/boot/uboot-rockchip package/boot/uboot-rockchip
+svn export --force https://github.com/friendlyarm/friendlywrt/branches/master/target/linux/rockchip/armv8/base-files target/linux/rockchip/armv8/base-files
+curl -sfLo target/linux/rockchip/image/armv8.mk https://raw.githubusercontent.com/friendlyarm/friendlywrt/master/target/linux/rockchip/image/armv8.mk
+svn co https://github.com/friendlyarm/friendlywrt/branches/master/target/linux/rockchip/patches-5.10 target/linux/rockchip/patches-5.10
+rm -rf target/linux/rockchip/armv8/base-files/{etc/{uci-defaults/vendor.defaults,inittab,banner},root}
 
 sed -i 's,-mcpu=generic,-march=armv8-a+crypto+crc -mabi=lp64,g' include/target.mk
 
 sed -i '/;;/i\ethtool -K eth1 rx off tx off && logger -t disable-offloading "disabed rk3328 ethernet tcp/udp offloading tx/rx"' target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity
 
-sed -i 's/DEFAULT_PACKAGES +=/DEFAULT_PACKAGES += my-autocore-arm luci-app-cpufreq kmod-hwmon-pwmfan/' target/linux/rockchip/Makefile
+sed -i 's/DEFAULT_PACKAGES +=/DEFAULT_PACKAGES += my-autocore-arm luci-app-cpufreq/' target/linux/rockchip/Makefile
 
 echo '
 CONFIG_ARM64_CRYPTO=y
@@ -43,4 +35,6 @@ CONFIG_REALTEK_PHY=y
 CONFIG_CPU_FREQ_GOV_USERSPACE=y
 CONFIG_CPU_FREQ_GOV_ONDEMAND=y
 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_MOTORCOMM_PHY=y
+CONFIG_SENSORS_PWM_FAN=y
 ' >> ./target/linux/rockchip/armv8/config-5.10

+ 7 - 6
devices/nanopi-r2s/patches/r2s_exchange_lan_wan.patch

@@ -1,15 +1,16 @@
 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network
 +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network
-@@ -8,10 +8,11 @@ rockchip_setup_interfaces()
+@@ -8,10 +8,12 @@ rockchip_setup_interfaces()
  
  	case "$board" in
  	friendlyarm,nanopi-r2c|\
 -	friendlyarm,nanopi-r2s|\
- 	friendlyarm,nanopi-r4s|\
- 	xunlong,orangepi-r1-plus)
+ 	friendlyarm,nanopi-r4s)
  		ucidef_set_interfaces_lan_wan 'eth1' 'eth0'
+ 		;;
 +	friendlyarm,nanopi-r2s)
 +		ucidef_set_interfaces_lan_wan 'eth0' 'eth1'
- 		;;
- 	*)
- 		ucidef_set_interface_lan 'eth0'
++ 		;;
+ 	friendlyelec,nanopi-r2 | \
+ 	friendlyelec,nanopi-r4s)
+ 		ucidef_set_interface_wan 'eth0'

+ 4 - 0
onekey/build.sh

@@ -126,6 +126,10 @@ fi
 cp devices/common/.config .config
 echo >> .config
 cat devices/$firmware/.config >> .config
+make defconfig
+for i in $(make --file=preset_pkg.mk presetpkg); do
+	sed -i "\$a CONFIG_PACKAGE_$i=y" .config
+done
 make menuconfig
 echo
 echo