Difference between revisions of "Code/fan-enable-extended"
 (Undo corruption)  | 
				 (Script in <pre> block)  | 
				||
| Line 1: | Line 1: | ||
| + | <pre>  | ||
#!/bin/sh  | #!/bin/sh  | ||
| Line 50: | Line 51: | ||
      done    |       done    | ||
   done  |    done  | ||
| + | </pre>  | ||
Latest revision as of 08:23, 11 April 2025
#!/bin/sh
# fan control-script
#
# based upon ibm-acpi 0.11 (experimental=1 !)
#
# eliminates anoying "fan always on" in battery mode
# works with hysteresis (DELTA) so that always-turn-on/turn-off is avoided
# fan acivates at MAXTEMP and cools down CPU, GPU etc. to MAXTEMP-DELTA than the fan is turned off
# furthermore detects if AC is on and gives back fan control to default behaviour than
#
# one can change MAXTEMP and DELTA to individual values
# but take care of your THINKPAD don`t melt it!
#
# have fun!
# mk 05.05.05
MAXTEMP=51
DELTA=4
SWITCHTEMP=$MAXTEMP
#make sure the script doesn't leave the fan off on error
trap "echo enable > /proc/acpi/ibm/fan" EXIT
while [ 1 ];
do
  for ac in `sed s/state:// < /proc/acpi/ac_adapter/AC/state`
    do
     if [ "$ac" = "off-line" ]; then
         fan=no
         for temp in `sed s/temperatures:// < /proc/acpi/ibm/thermal`
           do
             test $temp -gt $SWITCHTEMP && fan=yes
           done
         if [ "$fan" = "yes" ]; then
           command='enable'
           SWITCHTEMP=`expr $MAXTEMP - $DELTA`
         else
           SWITCHTEMP=$MAXTEMP
           command='disable'
         fi
        else # ac-adapter on -> set fan control to standard behaviour
         command='enable'
       fi
       echo $command > /proc/acpi/ibm/fan
       sleep 15
     done 
  done