From 4aac2fca72851e7c4cab2edce11a8703b7751876 Mon Sep 17 00:00:00 2001 From: Oleg Date: Sat, 18 Feb 2023 00:51:02 +0300 Subject: [PATCH] add fan-control station m3 (#4837) --- .../families/include/rockchip64_common.inc | 6 +++ packages/blobs/station/firefly-fan-init | 47 ++++++++++++++++++ packages/blobs/station/firefly-fan.service | 9 ++++ packages/blobs/station/firefly_fan_control | Bin 0 -> 37904 bytes 4 files changed, 62 insertions(+) create mode 100755 packages/blobs/station/firefly-fan-init create mode 100755 packages/blobs/station/firefly-fan.service create mode 100755 packages/blobs/station/firefly_fan_control diff --git a/config/sources/families/include/rockchip64_common.inc b/config/sources/families/include/rockchip64_common.inc index 24ef86152e..e3b5433042 100644 --- a/config/sources/families/include/rockchip64_common.inc +++ b/config/sources/families/include/rockchip64_common.inc @@ -332,6 +332,12 @@ family_tweaks() { echo "su -c '/usr/bin/rtk_hciattach -n -s 115200 /dev/ttyS2 rtk_h5 &'" >> $SDCARD/etc/rc.local echo "exit 0" >> $SDCARD/etc/rc.local fi + if [[ $BRANCH == legacy && ($BOARD == station-m3) ]]; then + install -m 755 $SRC/packages/blobs/station/firefly_fan_control $SDCARD/usr/bin/firefly_fan_control + install -m 755 $SRC/packages/blobs/station/firefly-fan-init $SDCARD/usr/bin/firefly-fan-init + install -m 755 $SRC/packages/blobs/station/firefly-fan.service $SDCARD/usr/lib/systemd/system/firefly-fan.service + chroot $SDCARD /bin/bash -c "systemctl --no-reload enable firefly-fan.service >/dev/null 2>&1" + fi fi diff --git a/packages/blobs/station/firefly-fan-init b/packages/blobs/station/firefly-fan-init new file mode 100755 index 0000000000..0bd867d60a --- /dev/null +++ b/packages/blobs/station/firefly-fan-init @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +BOARD_VERSION=`cat /sys/firmware/devicetree/base/model | awk -F ' ' {'print $1'}` + +RK3588_BOARD_VERSION=`cat /sys/firmware/devicetree/base/model | awk -F ' ' {'print $2'}` + +sleep 3 + +if [ "$BOARD_VERSION" == "CS-R2-3399JD4-MAIN" ]; then + #usb_net power on + echo 1 > /sys/class/leds/HUB30_PWR_EN/brightness + + /usr/bin/firefly_fan_control CS-R2-3399JD4-MAIN > /dev/null 2>&1 & + +elif [ "$BOARD_VERSION" == "CS-R1-3399JD4-MAIN" ]; then + echo 0 > /sys/class/pwm/pwmchip0/export + /usr/bin/firefly_fan_control CS-R1-3399JD4-MAIN > /dev/null 2>&1 & + + while true + do + if [ `cat /sys/class/pwm/pwmchip0/pwm0/enable` == "0" ]; then + sleep 2 + echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable + elif [ `cat /sys/class/pwm/pwmchip0/pwm0/enable` == "1" ]; then + break + fi + done + +elif [ "$RK3588_BOARD_VERSION" == "ROC-RK3588S-PC" ]; then + /usr/bin/firefly_fan_control ROC-RK3588S-PC > /dev/null 2>&1 & + +elif [ "$RK3588_BOARD_VERSION" == "ITX-3588J" ]; then + /usr/bin/firefly_fan_control ITX-3588J > /dev/null 2>&1 & + +elif [ "$RK3588_BOARD_VERSION" == "ROC-RK3588-PC" ]; then + /usr/bin/firefly_fan_control ROC-RK3588-PC > /dev/null 2>&1 & + +else + exit 0 +fi + +while true +do + sleep 0.5 +done + +exit 0 diff --git a/packages/blobs/station/firefly-fan.service b/packages/blobs/station/firefly-fan.service new file mode 100755 index 0000000000..eaa1256e7d --- /dev/null +++ b/packages/blobs/station/firefly-fan.service @@ -0,0 +1,9 @@ +[Unit] +Description=start firefly-fan service + +[Service] +Type=simple +ExecStart=/usr/bin/firefly-fan-init + +[Install] +WantedBy=local-fs.target diff --git a/packages/blobs/station/firefly_fan_control b/packages/blobs/station/firefly_fan_control new file mode 100755 index 0000000000000000000000000000000000000000..c550f3eb6607881b6aa1ba378f578de406f73697 GIT binary patch literal 37904 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 literal 0 HcmV?d00001