diff --git a/hc4_fancontrol.sh b/hc4_fancontrol.sh new file mode 100644 index 0000000..56c7261 --- /dev/null +++ b/hc4_fancontrol.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +THRESHOLD=42000 +INTERVAL=30 +FAN="/sys/class/hwmon/hwmon2/pwm1" + +# set fan mode to manual +echo "disabled" | tee /sys/class/thermal/thermal_zone{0,1}/mode > /dev/null + +# set fan speed to max if either cpu or ram is above $THRESHOLD +while true; do + TOOHOT=0 + FANSPEED=$(cat $FAN) + TEMP=($(cat /sys/devices/virtual/thermal/thermal_zone{0,1}/temp)) + for i in ${TEMP[@]}; do + if [ $i -gt $THRESHOLD ]; then + TOOHOT=255 + fi + done + if [ $TOOHOT -eq 0 ]; then + if [ $FANSPEED -ne $TOOHOT ]; then + echo 170 > $FAN; sleep 2 + echo 120 > $FAN; sleep 2 + echo $TOOHOT > $FAN + fi + else + if [ $FANSPEED -ne $TOOHOT ]; then + echo 120 > $FAN; sleep 2 + echo 170 > $FAN; sleep 2 + echo $TOOHOT > $FAN + fi + fi + # debug output + #echo "temp=${TEMP[@]},speed=$FANSPEED, toohot=$TOOHOT" + sleep $INTERVAL +done