37 lines
859 B
Bash
37 lines
859 B
Bash
#!/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
|