garypang13 4 years ago
parent
commit
4ca7e80087

+ 3 - 0
devices/nanopi-r2s/diy.sh

@@ -1,5 +1,8 @@
 #!/bin/bash
 
+rm -rf ./package/boot/uboot-rockchip
+svn co https://github.com/project-openwrt/openwrt/branches/master/package/boot/uboot-rockchip package/boot/uboot-rockchip
+
 find target/linux/rockchip/* -maxdepth 0 ! -path '*/patches-5.4' -exec rm -Rf '{}' \;
 echo -e "\q" | svn co https://github.com/coolsnowwolf/lede/trunk/target/linux/rockchip target/linux/rockchip
 rm -Rf target/linux/rockchip/.svn

+ 75 - 0
devices/nanopi-r4s/.config

@@ -0,0 +1,75 @@
+# 设置固件大小:
+CONFIG_TARGET_KERNEL_PARTSIZE=20
+CONFIG_TARGET_ROOTFS_PARTSIZE=1000
+
+CONFIG_TARGET_rockchip=y
+CONFIG_TARGET_rockchip_armv8=y
+CONFIG_TARGET_rockchip_armv8_DEVICE_friendlyarm_nanopi-r4s=y
+
+# Applications
+CONFIG_PACKAGE_luci-app-cpufreq=y
+CONFIG_PACKAGE_luci-app-zerotier=n
+
+# docker
+CONFIG_PACKAGE_docker-ce=m
+CONFIG_PACKAGE_kmod-fs-btrfs=y
+CONFIG_PACKAGE_kmod-dm=y
+CONFIG_PACKAGE_kmod-br-netfilter=y
+CONFIG_PACKAGE_kmod-ikconfig=y
+CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y
+CONFIG_PACKAGE_kmod-nf-ipvs=y
+CONFIG_PACKAGE_kmod-veth=y
+CONFIG_PACKAGE_kmod-dummy=y
+
+CONFIG_PACKAGE_luci-app-turboacc=y
+CONFIG_PACKAGE_luci-app-turboacc_INCLUDE_flow-offload=n
+CONFIG_PACKAGE_luci-app-turboacc_INCLUDE_shortcut-fe=y
+
+# 其他需要安装的软件包:
+CONFIG_PACKAGE_autocore=n
+CONFIG_PACKAGE_autocore-arm=y
+
+# Wireless
+CONFIG_PACKAGE_wpad-basic-wolfssl=y
+
+# USB3.0支持:
+CONFIG_PACKAGE_kmod-usb2=y
+CONFIG_PACKAGE_kmod-usb2-pci=y
+CONFIG_PACKAGE_kmod-usb3=y
+CONFIG_PACKAGE_kmod-usb-audio=y
+CONFIG_PACKAGE_kmod-usb-printer=y
+CONFIG_PACKAGE_automount=y
+CONFIG_PACKAGE_autosamba=y
+CONFIG_PACKAGE_autosamba-ksmbd=y
+#ksmbd
+CONFIG_PACKAGE_kmod-fs-ksmbd=y
+#nfs
+CONFIG_PACKAGE_kmod-fs-nfsd=y
+CONFIG_PACKAGE_kmod-fs-nfs=y
+CONFIG_PACKAGE_kmod-fs-nfs-v4=y
+#3G/4G Support
+CONFIG_PACKAGE_kmod-usb-serial=y
+CONFIG_PACKAGE_kmod-usb-serial-option=y
+CONFIG_PACKAGE_kmod-usb-serial-wwan=y
+CONFIG_PACKAGE_kmod-mii=y
+CONFIG_PACKAGE_kmod-usb-acm=y
+#Sound Support
+CONFIG_PACKAGE_kmod-sound-core=y
+CONFIG_PACKAGE_kmod-sound-hda-codec-realtek=y
+CONFIG_PACKAGE_kmod-sound-hda-intel=y
+CONFIG_PACKAGE_kmod-sound-hda-codec-hdmi=y
+
+#USB net driver
+CONFIG_PACKAGE_kmod-rtlwifi=y
+CONFIG_PACKAGE_kmod-rtlwifi-btcoexist=y
+CONFIG_PACKAGE_kmod-rtlwifi-usb=y
+CONFIG_PACKAGE_usb-modeswitch=y
+CONFIG_PACKAGE_kmod-rtl8192cu=y
+CONFIG_PACKAGE_kmod-rtl8821cu=y
+CONFIG_PACKAGE_kmod-mt76x2u=y
+CONFIG_PACKAGE_kmod-usb-net-asix=y
+CONFIG_PACKAGE_kmod-usb-net-asix-ax88179=y
+CONFIG_PACKAGE_kmod-usb-net-rtl8152-vendor=y
+CONFIG_PACKAGE_kmod-mt7601u=y
+CONFIG_PACKAGE_kmod-usb-net-rndis=y
+CONFIG_PACKAGE_kmod-usb-net-cdc-ether=y

+ 19 - 0
devices/nanopi-r4s/default-settings

@@ -0,0 +1,19 @@
+if [ ! -f /etc/config/placeholder ]; then
+	uci del turboacc.config.sw_flow
+	uci commit turboacc
+
+	uci set system.@system[0].zram_size_mb='100'
+	uci set system.@system[0].zram_comp_algo='lz4'
+	uci commit system
+fi
+touch /etc/config/placeholder
+
+sed -i '$a src/gz openwrt_packages2 https://op.supes.top/19.07.5/packages/aarch64_generic/packages' /etc/opkg/distfeeds.conf
+sed -i '$a src/gz openwrt_base2 https://op.supes.top/19.07.5/packages/aarch64_generic/base' /etc/opkg/distfeeds.conf
+sed -i '$a src/gz openwrt_custom https://op.supes.top/packages/aarch64' /etc/opkg/distfeeds.conf
+
+#HW-RNG
+uci set system.@rngd[0].enabled="1"
+uci set system.@rngd[0].device="/dev/hwrng"
+
+exit 0

+ 39 - 0
devices/nanopi-r4s/diy.sh

@@ -0,0 +1,39 @@
+#!/bin/bash
+
+rm -rf ./package/boot/uboot-rockchip
+svn co https://github.com/project-openwrt/openwrt/branches/master/package/boot/uboot-rockchip package/boot/uboot-rockchip
+
+find target/linux/rockchip/* -maxdepth 0 ! -path '*/patches-5.4' -exec rm -Rf '{}' \;
+echo -e "\q" | svn co https://github.com/coolsnowwolf/lede/trunk/target/linux/rockchip target/linux/rockchip
+rm -Rf target/linux/rockchip/.svn
+echo -e "\q" | svn co https://github.com/coolsnowwolf/lede/trunk/target/linux/rockchip/patches-5.4 target/linux/rockchip/patches-5.4
+rm -Rf target/linux/rockchip/patches-5.4/{006-*-etherne,007-*-name,008-*-OF,009-*-documentation}.patch
+
+sed -i '/set_interface_core 20 "eth1"/a\set_interface_core 8 "ff3c0000" "ff3c0000.i2c"' target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity
+
+echo '
+CONFIG_ARM64_CRYPTO=y
+CONFIG_CRYPTO_AES_ARM64=y
+CONFIG_CRYPTO_AES_ARM64_BS=y
+CONFIG_CRYPTO_AES_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y
+CONFIG_CRYPTO_CRYPTD=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA256_ARM64=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA512_ARM64=y
+CONFIG_CRYPTO_SIMD=y
+CONFIG_REALTEK_PHY=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CRYPTO_DEV_ROCKCHIP=y
+CONFIG_HW_RANDOM_ROCKCHIP=y
+' >> ./target/linux/rockchip/armv8/config-5.4
+
+

+ 180 - 0
devices/nanopi-r4s/diy/target/linux/rockchip/patches-5.4/991-rockchip-rk3399-overclock-to-2.2-1.8-GHz-for-NanoPi4.patch

@@ -0,0 +1,180 @@
+From 04202df5cb497b1934c95211cf43784ef62245a4 Mon Sep 17 00:00:00 2001
+From: Tianling Shen <[email protected]>
+Date: Sat, 19 Dec 2020 12:42:27 +0000
+Subject: [PATCH] rockchip: rk3399: overclock to 2.2/1.8 GHz for NanoPi4 devices
+
+It's stable enough to overclock cpu frequency to 2.2/1.8 GHz,
+and for better performance.
+
+Signed-off-by: Tianling Shen <[email protected]>
+Co-authored-by: gzelvis <[email protected]>
+---
+ .../boot/dts/rockchip/rk3399-nanopi4-opp.dtsi | 149 ++++++++++++++++++
+ .../boot/dts/rockchip/rk3399-nanopi4.dtsi     |   2 +-
+ 2 files changed, 150 insertions(+), 1 deletion(-)
+ create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-nanopi4-opp.dtsi
+
+--- /dev/null
++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4-opp.dtsi
+@@ -0,0 +1,149 @@
++// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
++/*
++ * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
++ */
++
++/ {
++	cluster0_opp: opp-table0 {
++		compatible = "operating-points-v2";
++		opp-shared;
++
++		opp00 {
++			opp-hz = /bits/ 64 <408000000>;
++			opp-microvolt = <800000>;
++			clock-latency-ns = <40000>;
++		};
++		opp01 {
++			opp-hz = /bits/ 64 <600000000>;
++			opp-microvolt = <800000>;
++		};
++		opp02 {
++			opp-hz = /bits/ 64 <816000000>;
++			opp-microvolt = <850000>;
++		};
++		opp03 {
++			opp-hz = /bits/ 64 <1008000000>;
++			opp-microvolt = <925000>;
++		};
++		opp04 {
++			opp-hz = /bits/ 64 <1200000000>;
++			opp-microvolt = <1000000>;
++		};
++		opp05 {
++			opp-hz = /bits/ 64 <1416000000>;
++			opp-microvolt = <1125000>;
++		};
++		opp06 {
++			opp-hz = /bits/ 64 <1608000000>;
++			opp-microvolt = <1200000>;
++		};
++		opp07 {
++			opp-hz = /bits/ 64 <1800000000>;
++			opp-microvolt = <1250000>;
++		};
++	};
++
++	cluster1_opp: opp-table1 {
++		compatible = "operating-points-v2";
++		opp-shared;
++
++		opp00 {
++			opp-hz = /bits/ 64 <408000000>;
++			opp-microvolt = <800000>;
++			clock-latency-ns = <40000>;
++		};
++		opp01 {
++			opp-hz = /bits/ 64 <600000000>;
++			opp-microvolt = <800000>;
++		};
++		opp02 {
++			opp-hz = /bits/ 64 <816000000>;
++			opp-microvolt = <825000>;
++		};
++		opp03 {
++			opp-hz = /bits/ 64 <1008000000>;
++			opp-microvolt = <875000>;
++		};
++		opp04 {
++			opp-hz = /bits/ 64 <1200000000>;
++			opp-microvolt = <950000>;
++		};
++		opp05 {
++			opp-hz = /bits/ 64 <1416000000>;
++			opp-microvolt = <1025000>;
++		};
++		opp06 {
++			opp-hz = /bits/ 64 <1608000000>;
++			opp-microvolt = <1100000>;
++		};
++		opp07 {
++			opp-hz = /bits/ 64 <1800000000>;
++			opp-microvolt = <1175000>;
++		};
++		opp08 {
++			opp-hz = /bits/ 64 <2016000000>;
++			opp-microvolt = <1250000>;
++		};
++		opp09 {
++			opp-hz = /bits/ 64 <2208000000>;
++			opp-microvolt = <1275000>;
++		};
++	};
++
++	gpu_opp_table: opp-table2 {
++		compatible = "operating-points-v2";
++
++		opp00 {
++			opp-hz = /bits/ 64 <200000000>;
++			opp-microvolt = <800000>;
++		};
++		opp01 {
++			opp-hz = /bits/ 64 <297000000>;
++			opp-microvolt = <800000>;
++		};
++		opp02 {
++			opp-hz = /bits/ 64 <400000000>;
++			opp-microvolt = <825000>;
++		};
++		opp03 {
++			opp-hz = /bits/ 64 <500000000>;
++			opp-microvolt = <875000>;
++		};
++		opp04 {
++			opp-hz = /bits/ 64 <600000000>;
++			opp-microvolt = <925000>;
++		};
++		opp05 {
++			opp-hz = /bits/ 64 <800000000>;
++			opp-microvolt = <1100000>;
++		};
++	};
++};
++
++&cpu_l0 {
++	operating-points-v2 = <&cluster0_opp>;
++};
++
++&cpu_l1 {
++	operating-points-v2 = <&cluster0_opp>;
++};
++
++&cpu_l2 {
++	operating-points-v2 = <&cluster0_opp>;
++};
++
++&cpu_l3 {
++	operating-points-v2 = <&cluster0_opp>;
++};
++
++&cpu_b0 {
++	operating-points-v2 = <&cluster1_opp>;
++};
++
++&cpu_b1 {
++	operating-points-v2 = <&cluster1_opp>;
++};
++
++&gpu {
++	operating-points-v2 = <&gpu_opp_table>;
++};
+--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
+@@ -14,7 +14,7 @@
+ /dts-v1/;
+ #include <dt-bindings/input/linux-event-codes.h>
+ #include "rk3399.dtsi"
+-#include "rk3399-opp.dtsi"
++#include "rk3399-nanopi4-opp.dtsi"
+ 
+ / {
+ 	chosen {
+

+ 6 - 0
devices/nanopi-r4s/files/etc/config/cpufreq

@@ -0,0 +1,6 @@
+config settings 'cpufreq'
+	option governor0 'schedutil'
+	option minfreq0 '816000'
+	option maxfreq0 '1608000'
+ 	option upthreshold0 '50'
+ 	option factor0 '10'

+ 27 - 0
devices/nanopi-r4s/patches/kernel_crypto-add-rk3328-crypto-support.patch

@@ -0,0 +1,27 @@
+From 7662626ba699090aa3ec98e9d406e7b056703438 Mon Sep 17 00:00:00 2001
+From: CN_SZTL <[email protected]>
+Date: Sun, 19 Jul 2020 18:02:52 +0800
+Subject: [PATCH] kernel/crypto: add rk3328 crypto support
+
+Signed-off-by: CN_SZTL <[email protected]>
+---
+ package/kernel/linux/modules/crypto.mk | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
+index 48777764a8..2e71bb3e75 100644
+--- a/package/kernel/linux/modules/crypto.mk
++++ b/package/kernel/linux/modules/crypto.mk
+@@ -840,2 +840,12 @@
+ $(eval $(call KernelPackage,crypto-xts))
+ 
++define KernelPackage/crypto-rk3328
++  TITLE:=Rockchip RK3328 CryptoAPI module
++  DEPENDS:=@TARGET_rockchip kmod-crypto-des kmod-crypto-md5 kmod-crypto-sha1 kmod-crypto-sha256
++  KCONFIG:=CONFIG_CRYPTO_DEV_ROCKCHIP
++  FILES:=$(LINUX_DIR)/drivers/crypto/rockchip/rk_crypto.ko
++  AUTOLOAD:=$(call AutoLoad,09,rk_crypto)
++  $(call AddDepends/crypto)
++endef
++
++$(eval $(call KernelPackage,crypto-rk3328))

+ 8 - 0
devices/nanopi-r4s/patches/status.patch

@@ -0,0 +1,8 @@
+--- a/package/feeds/luci/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js
++++ b/package/feeds/luci/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js
+@@ -61,5 +61,4 @@
+ 			_('Hostname'),         boardinfo.hostname,
+ 			_('Model'),            boardinfo.model + ' ' + cpuinfo.cpumark,
+-			_('Architecture'),     boardinfo.system,
+ 			_('Firmware Version'), (L.isObject(boardinfo.release) ? boardinfo.release.description + ' / ' : '') + (luciversion || ''),
+ 			_('Kernel Version'),   boardinfo.kernel,