1
1
Fork 0
scripts/hc4_fancontrol.sh

56 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
#
# Odroid HC4 fan control script
#
# Information (don't touch unless you're me)
AUTHOR="david@socialnerds.org"
VERSION="0.2.0"
LICENSE="GPLv3"
# Configuration
THRESHOLD=42000
DISTANCE=2000
INTERVAL=30
STEPS=(120 160 210 255)
FAN="/sys/class/hwmon/hwmon2/pwm1"
function get_temp() {
local TEMP=($(cat /sys/devices/virtual/thermal/thermal_zone*/temp))
for I in ${TEMP[@]}; do
echo "temp: $I"
done
}
# 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