Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Mar 2005 15:33:26 -0500
From:      Jesse Guardiani <jesse@wingnet.net>
To:        freebsd-mobile@freebsd.org
Subject:   Re: Thinkpad Thermals
Message-ID:  <d12899$jub$1@sea.gmane.org>
References:  <d0am07$78l$1@sea.gmane.org> <20050304223630.1CCD15D07@ptavv.es.net> <d0i07u$b7e$1@sea.gmane.org> <d0i8q7$948$1@sea.gmane.org> <1110335408.881.24.camel@RabbitsDen>

next in thread | previous in thread | raw e-mail | index | archive | help
Alexandre "Sunny" Kovalenko wrote:

> On Mon, 2005-03-07 at 02:18 -0500, Jesse Guardiani wrote:
>> Jesse Guardiani wrote:
>> 
>> > Kevin Oberman wrote:
>> 
>> [...]
>> 
>> >>> Is 66C acceptable temp for a laptop? It's definitely a better temp,
>> >>> but It would really stink if my 1.2ghz had to be run at just 800mhz
>> >>> all the time to avoid cooking things.
>> >> 
>> >> Once again, I can't define "acceptable". It is not so hot as to be
>> >> frightening, but it does sound like it's running warmer than I would
>> >> expect. Dust? Blocked air intake/outlet?
>> > 
>> > Absolutely not. I just replaced the motherboard myself. It took 2
>> > hours. I was very careful to examine the heatsink for blockage or
>> > excessive dust. It's clean, and the fan spins freely.
>> > 
>> > 
>> >> Those can real impact thermals. And, of course, fan problems can be
>> >> a big issue.
>> > 
>> > I'm starting to think that my fan should be running, but isn't. The
>> > whole purpose of this post is to see if I can figure out what went
>> > wrong last year when my GPU cooked. If the fan should be running, but
>> > isn't, then that certainly gives me a place to start.
>> 
>> OK, I can't find any fan speed settings in the BIOS. I have LCD settings,
>> CPU settings, and performance profiles, but nothing for fan speed. I
>> think the fan is running, as I can hear a faint humming from the vent
>> port, even when the HDD is sleeping. I can't feel any air on my hand
>> though.
>> 
>> Where should I start looking to tweak this thing via ACPI?
>> 
> 
> First, you might want to see if your ASL defines any thermal levels and
> what the values are. Since I am unfamiliar with Linux way of doing these
> things (and this is FreeBSD mailing list ;), I would use FreeBSD way and
> you will have to do the mapping.
> 
> On my laptop (with hacked ASL) output of
> 
> sysctl hw.acpi.thermal
> 
> is as follows
> 
> hw.acpi.thermal.min_runtime: 10
> hw.acpi.thermal.polling_rate: 10
> hw.acpi.thermal.tz0.temperature: 48.0C
> hw.acpi.thermal.tz0.active: -1
> hw.acpi.thermal.tz0.thermal_flags: 0
> hw.acpi.thermal.tz0._PSV: 90.0C
> hw.acpi.thermal.tz0._HOT: -1
> hw.acpi.thermal.tz0._CRT: 110.0C
> hw.acpi.thermal.tz0._ACx: 75.0C 70.0C 55.0C -1 -1 -1 -1 -1 -1 -1
> 
> Important to your research is '_ACx' line above. It states temperatures
> that would trigger change in the cooling levels. In my case, they simply
> change speed of both fans simultaneously.

I have only one fan. I've learned today that my laptop is indeed in "passive"
mode 99% of the time. This is great when it's on battery, but I'd really
prefer the fan to be 'active' when I'm on A/C so I can run my CPU at full
speed. Here's the linux equivalent of the above sysctl's:

# cat /proc/acpi/thermal_zone/THM0/cooling_mode
<setting not supported>
cooling mode:   passive

# cat /proc/acpi/thermal_zone/THM0/trip_points
critical (S5):           97 C
passive:                 92 C: tc1=5 tc2=4 tsp=600 devices=0xd7f6e580

Notice that 'active' isn't mentioned! Using the advice at the bottom of
the acpi.sf.net page, found here:

http://acpi.sourceforge.net/documentation/thermal.html

I did this:

# sh -c 'echo -n "90:0:40:40:0" > /proc/acpi/thermal_zone/THM0/trip_points'
# cat /proc/acpi/thermal_zone/THM0/trip_points
critical (S5):           90 C
passive:                 40 C: tc1=5 tc2=4 tsp=600 devices=0xd7f6e580

This makes absolutely no difference though. The fan still doesn't come on
until it hits 80C, and it's all passive.


> If such line has some sensible values in it and you would like to change
> them one way or another, you will have to extract your ASL (see ACPI
> section of the handbook), find something that looks like
> 
> Method(_AC0) { Return (KELV(0x4B)) }

I don't have anything like that.

cat /proc/acpi/dsdt > dsdt.aml
./iasl -d dsdt.aml
# grep -i _AC dsdt.dsl
Exit 1

Oh well, thanks for the suggestions. I'm going to try posting on the
linux acpi list and maybe read up on the dsdt spec. The A30p dsdt
compiles with a few errors and warnings too, so it couldn't hurt to
fix those while I'm at it.

Thanks!

-- 
Jesse Guardiani, Systems Administrator
WingNET Internet Services,
P.O. Box 2605 // Cleveland, TN 37320-2605
423-559-LINK (v)  423-559-5145 (f)
http://www.wingnet.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d12899$jub$1>