#!/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