>>61063041
>current year
>using fan curves
#! /bin/bash
spd=1600
while true
do
manualspd=$(cat /tmp/manualfan.txt)
powersave=$(cat /tmp/powersave.txt)
temp0=$(cat /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_input)
temp1=$(cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_input)
temp2=$(cat /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input)
temp="$temp0""$temp1""$temp2"
temp=$(($temp / 1000))
if [ "$powersave" = 2 ] ; then
spd=$(($manualspd * 41))
sleep 1
else
cpu=$(top -bn 2 -d 1 | grep '^%Cpu' | tail -n 1 | gawk '{print $2+$4+$6}')
sqrt=$(echo "scale=5;sqrt($cpu)*40" | bc |sed 's/.\{6\}$//')
sqrt=$(($sqrt + 100))
batflow=$(cat /tmp/batterymon.txt)
if [ "$batflow" ] ; then
null
else
batflow=0
fi
Time=$(date +%k%M)
if [ "$batflow" -lt 0 ]; then
if [ "$Time" -lt 700 ] || [ "$Time" -gt 2300 ] ; then
if [ "$powersave" = 1 ] ; then
adj=$(($temp - 80))
else
adj=$(($temp - 72))
fi
else
if [ "$powersave" = 1 ] ; then
adj=$(($temp - 73))
else
adj=$(($temp - 65))
fi
fi
else
if [ "$Time" -lt 700 ] || [ "$Time" -gt 2300 ] ; then
if [ "$powersave" = 1 ] ; then
adj=$(($temp - 76))
else
adj=$(($temp - 67))
fi
else
if [ "$powersave" = 1 ] ; then
adj=$(($temp - 72))
else
adj=$(($temp - 62))
fi
fi
fi
if [ "$adj" -lt 0 ] ; then
addspd=$(($spd + 1000))
red=$((500 - $sqrt))
adj=$(($adj * 16 * $red * $addspd / 408000))
spd=$(($spd + $adj))
elif [ "$adj" -gt 0 ] ; then
negspd=$((5080 - $spd))
adj=$(($adj * $adj * $sqrt * $negspd / 200000))
spd=$(($spd + $adj))
fi
fi
if [ "$temp" -gt 87 ] ; then
spd=4080
fi
if [ "$spd" -lt 0 ] ; then
spd=0
fi
if [ "$spd" -gt 4080 ] ; then
spd=4080
fi
spd255=$(($spd / 16))
echo $spd255 > /sys/class/hwmon/hwmon0/pwm1
echo $spd255 > /sys/class/hwmon/hwmon1/pwm1
echo $spd255 > /sys/class/hwmon/hwmon2/pwm1
done