56 lines
1.2 KiB
Bash
Executable File
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
|