Friday, July 22, 2005

Cooling my Linux laptop (Updated ...)

I came up with a rule (ok.. now 3 rules) to keep my machine (HP NX9040, Centrino 1.6 GHz, 512MB RAM, 40GB Hard Drive) cool with 'cpufreqd' when on AC power. Usually what happens with the default configurtion is that 'cpufreqd' makes the machine stay cool (by reducing CPU frequency appropriately) and in power saving mode while on batteries and returns to full power + full CPU frequency mode on AC power.


This makes the machine heat up unnecessaryly even when it is idle.


By adding the rule below in the /etc/cpufreqd.conf file, right before the 'AC_on' rule, I managed to get my machine temp down by 10 degrees (yes... you read right) when it's idle :)


Add the new rule to 'cpufreqd' and restart the daemon. (/etc/init.d/cpufreqd restart)


What the rules do is, check the CPU utilization level and if it is below a certain percentge then send the machine to lo_boost/medium_boost/hi_boost profile, which brings the CPU frequency down to appropriate ranges as necessary.


Oh... make sure you turn off your fancy CPU hungry OPEN GL screen savers as well and revert to 'blank screen' to get the max temperature drop possible.


Laid back ....


------------------------------------------------------------

# power down when AC and idle (utilization 70% to 100%)
# Author: Tyrell Perera
[Rule]
name=AC_on_idle_3
ac=on # (on/off)
cpu_interval=70-100
profile=hi_boost

# power down when AC and idle (utilization 30% to 80%)
# Author: Tyrell Perera
[Rule]
name=AC_on_idle_2
ac=on # (on/off)
cpu_interval=30-80
profile=medium_boost

# power down when AC and idle (utilization 0% to 40%)
# Author: Tyrell Perera
[Rule]
name=AC_on_idle_1
ac=on # (on/off)
cpu_interval=0-40
profile=lo_boost

# originally the only AC on rule ... replaced by the three above
# full power when AC
#[Rule]
#name=AC_on
#ac=on # (on/off)
#profile=hi_boost

--------------------------------------------------------------