Management of Thermal

Mel fbsd.mobile at rachie.is-a-geek.net
Wed Oct 10 05:59:08 PDT 2007


On Monday 08 October 2007 11:16:01 Lars Engels wrote:
> Quoting Norberto Meijome <freebsd at meijome.net>:
> > On Mon, 8 Oct 2007 17:27:56 +1000
> > Norberto Meijome <freebsd at meijome.net> wrote:
> >
> > Powerd is enabled.
> >
> > I am currently doing not much at all (listening to music stream,
> > load of  0.24, 0.45, 0.69) and tz0  = 78C. it drops down a lot more
> > when running on batteries only
>
> Hi Norberto,
>
> your temperature values are a little bit too high. On my Notebook
> (model name      : Intel(R) Pentium(R) M processor 1.73GHz) the CPU is
> at between 50°C - 60°C when I use normal desktop applications and up
> to 80°C when I compile something.
> You could open your case and look if there's dust in the airflow so
> the fans cannot blow out all the hot air.
> I only use the powerd with "-a adaptive -b adaptive" flags. There
> should be no need for the cpufreq module.

Experience with a HP laptop shows this to be not true. It currently is working 
perfectly with a laptop cooling pad and not going anywhere near critical 
values, but before that, we had to use the following in /etc/sysctl.conf to 
prevent the computer from locking up (I suspect that the Intel CPU shuts 
itself down before burning out):
hw.acpi.thermal.user_override=1
hw.acpi.thermal.tz0._PSV="75C"
hw.acpi.thermal.tz0._CRT="80C"

These values are 5C lower then detected values. I started with 10C lower and 
reached critical too early. 5C works perfectly. Logging the temp[1] each 
minute I could see the effect of the cooling fans once it reached 75C.

[1]
# cat /usr/local/sbin/tempd
#!/bin/sh

FACILITY=kern.notice
SLEEP=60

while true; do
        MSG=$(sysctl -n hw.acpi.thermal.tz0.temperature)
        /usr/bin/logger -p ${FACILITY} -i -t tempd "CPU temp: ${MSG}"
        sleep ${SLEEP}
done

# cat /usr/local/etc/rc.d/tempd
#!/bin/sh
# vim: ts=4 sw=4 syn=sh noet nobackup
# REQUIRE: syslog
# PROVIDE: tempd
# KEYWORD: FreeBSD

. /etc/rc.subr

name=tempd
rcvar=`set_rcvar`
command="/usr/local/sbin/${name}"
pidfile="/var/run/${name}.pid"
start_cmd=${name}_start

tempd_start()
{
        /usr/sbin/daemon -f -p ${pidfile} -c ${command}
}
load_rc_config $name
run_rc_command "$1"

-- 
Mel


More information about the freebsd-mobile mailing list