I've been testing the following work around:
1) Set the thinkpad_acpi module to allow manual fan control (put the following in /etc/rc.local and run as root):
rmmod thinkpad_acpi
modprobe thinkpad_acpi fan_control=1
2) Run a script from cron every five mins to set the fan to disengaged if temp exceeds 80C
cat /usr/local/bin/temp_mon.sh
#!/bin/bash
temp=`grep temp /proc/acpi/ibm/thermal | awk '{print $2}'`
if [ ! -f /var/run/temp_mon.state ] ; then
echo auto > /var/run/temp_mon.state
fi
state=`cat /var/run/temp_mon.state`
if [ $temp -gt 80 ]; then
echo -n 'level disengaged' > /proc/acpi/ibm/fan
if [ $state != "disengaged" ]; then
logger "Fan state changed to disengaged"
echo disengaged > /var/run/temp_mon.state
fi
else
echo -n 'level auto' > /proc/acpi/ibm/fan
if [ $state != "auto" ]; then
logger "Fan state changed to auto"
echo auto > /var/run/temp_mon.state
fi
fi
3) put the following in /etc/cron.d/temp_mon
*/5 * * * * root /var/run/temp_mon.state
4) Test with something like yes > /dev/null and watch for temparature/fan changes.
This isn't ideal, but it does allow a compromise between fans always spinning and thermal shutdown. Let me know if you see any issues with the script (code at https://github.com/theothertom/thinkpad-temp_mon)
I've been testing the following work around: bin/temp_ mon.sh ibm/thermal | awk '{print $2}'` temp_mon. state ] ; then temp_mon. state temp_mon. state` temp_mon. state temp_mon. state
1) Set the thinkpad_acpi module to allow manual fan control (put the following in /etc/rc.local and run as root):
rmmod thinkpad_acpi
modprobe thinkpad_acpi fan_control=1
2) Run a script from cron every five mins to set the fan to disengaged if temp exceeds 80C
cat /usr/local/
#!/bin/bash
temp=`grep temp /proc/acpi/
if [ ! -f /var/run/
echo auto > /var/run/
fi
state=`cat /var/run/
if [ $temp -gt 80 ]; then
echo -n 'level disengaged' > /proc/acpi/ibm/fan
if [ $state != "disengaged" ]; then
logger "Fan state changed to disengaged"
echo disengaged > /var/run/
fi
else
echo -n 'level auto' > /proc/acpi/ibm/fan
if [ $state != "auto" ]; then
logger "Fan state changed to auto"
echo auto > /var/run/
fi
fi
3) put the following in /etc/cron. d/temp_ mon temp_mon. state
*/5 * * * * root /var/run/
4) Test with something like yes > /dev/null and watch for temparature/fan changes.
This isn't ideal, but it does allow a compromise between fans always spinning and thermal shutdown. Let me know if you see any issues with the script (code at https:/ /github. com/theothertom /thinkpad- temp_mon)