Bug 14991 - Constant 26.8C CPU temperature - Acer AOD250 netbook, Atom N280
Summary: Constant 26.8C CPU temperature - Acer AOD250 netbook, Atom N280
Status: CLOSED DOCUMENTED
Alias: None
Product: ACPI
Classification: Unclassified
Component: Power-Thermal (show other bugs)
Hardware: All Linux
: P3 normal
Assignee: Jean Delvare
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-05 18:36 UTC by vajorie
Modified: 2010-04-04 00:58 UTC (History)
4 users (show)

See Also:
Kernel Version: 2.6.32
Subsystem:
Regression: No
Bisected commit-id:


Attachments
ver_linux output (1.77 KB, text/plain)
2010-01-05 18:36 UTC, vajorie
Details
sensors output (300 bytes, text/plain)
2010-01-05 18:39 UTC, vajorie
Details
acpidump output (142.49 KB, text/plain)
2010-01-05 18:40 UTC, vajorie
Details
dmesg (grep acpi) output (5.10 KB, text/plain)
2010-01-05 18:43 UTC, vajorie
Details
lsmod output (4.03 KB, text/plain)
2010-01-05 18:45 UTC, vajorie
Details
cpuinfo (1.43 KB, text/plain)
2010-01-05 18:47 UTC, vajorie
Details
lspci -vvv output (23.66 KB, text/plain)
2010-01-05 18:49 UTC, vajorie
Details
hwmonitor and speedfan screenshot from windows (94.72 KB, image/jpeg)
2010-01-07 20:51 UTC, vajorie
Details

Description vajorie 2010-01-05 18:36:29 UTC
Created attachment 24448 [details]
ver_linux output

This is an Acer Aspire One D250-1613 (Android+Windows) with Intel Atom N280 cpu on a Intel 945GME chipset. I don't know about the motherboard. 

The problem: 

There are two ways to get CPU temperature on this laptop. (1) "acpi -V" (/sys/class/thermal/thermal_zone0/temp) reports 26.8C fixed; this never changes. (2) sensors use the coretemp module to report a temperature around 35-45C, however if one checks using hwmonitor in Windows, this temperature range turns out to be the one for the hard disk. 

In sum, there is no way to get a CPU temperature reading on Linux. On Windows, software like hwmonitor can correctly report CPU temperature, which is around 50-60C usually. 

I will attach ver_linux output, sensors output, acpidump, dmesg output that might be relevant, lsmod, cpuinfo, and lspci -vvv. Thanks in advance.
Comment 1 vajorie 2010-01-05 18:39:45 UTC
Created attachment 24449 [details]
sensors output
Comment 2 vajorie 2010-01-05 18:40:48 UTC
Created attachment 24450 [details]
acpidump output
Comment 3 vajorie 2010-01-05 18:43:14 UTC
Created attachment 24451 [details]
dmesg (grep acpi) output
Comment 4 vajorie 2010-01-05 18:45:09 UTC
Created attachment 24452 [details]
lsmod output
Comment 5 vajorie 2010-01-05 18:47:24 UTC
Created attachment 24453 [details]
cpuinfo
Comment 6 vajorie 2010-01-05 18:49:13 UTC
Created attachment 24454 [details]
lspci -vvv output
Comment 7 Jonathan 2010-01-07 00:17:57 UTC
My readings are similar on an Acer Aspire One D150-1577, with an Atom N270.  The CPU appears to range from 35-45C when idle or under a small load (right now, e.g., it registers 37C).  I'd be curious to know if this is indeed the hard drive temperature.

I can provide debugging info as well if needed.
Comment 8 Jean Delvare 2010-01-07 13:04:11 UTC
Please attach the "output" (screenshot) of hwmonitor for reference.

Anyway, the coretemp driver reports your CPU temperature and not your HDD temperature, no matter what you think. Use hddtemp or smartmontools for your HDD temperature.
Comment 9 vajorie 2010-01-07 20:51:32 UTC
Created attachment 24478 [details]
hwmonitor and speedfan screenshot from windows
Comment 10 vajorie 2010-01-07 20:58:11 UTC
Here's my hddtemp & sensors output. My cpu is as hot/cold as my hdd? 

~$ sudo hddtemp /dev/sda && sensors
Password: 
/dev/sda: WDC WD1600BEVT-22ZCT0: 38°C
coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +38.0°C  (crit = +90.0°C)                  

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +38.0°C  (crit = +90.0°C)                  

acpitz-virtual-0
Adapter: Virtual device
temp1:       +26.8°C  (crit = +100.0°C)                  

Also, in my previous screenshot: 
I left the cpu alone for 5-6 minutes, then took the screenshot. In 5-6 minute idling, sensors (coretemp) in linux usually report (as above) 35-38C. Speedfan and hwmonitor find different temps at the same time for the cpu. Speedfan reported consistently around 47-48C while hwmonitor reported consistently around 52-53C. Both values increased as I stressed the cpu just a little bit. 

In linux, when sensors report something around 48C, my fans speed up. This did not occur in Windows, but I'm not sure if Windows can control the fans or not. 

Thanks for your interest.
Comment 11 vajorie 2010-01-07 21:05:54 UTC
After I heard about cpuburn (http://pages.sbcglobal.net/redelm/cpuburn_1_4_tar.gz), I did another test. as you said, it's not hdd's temp, I guess it's just wrongly reported: 

(after running cpuburn for a while): 
~$ sensors && sudo hddtemp /dev/sda
coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +52.0°C  (crit = +90.0°C)                  

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +52.0°C  (crit = +90.0°C)                  

acpitz-virtual-0
Adapter: Virtual device
temp1:       +26.8°C  (crit = +100.0°C)                  

/dev/sda: WDC WD1600BEVT-22ZCT0: 40°C

At 52C, the fans sounded a bit panicky :)
Comment 12 Jean Delvare 2010-01-08 08:40:37 UTC
Both Speedfan and HWmonitor under Windows show the same ACPI thermal zone value of 27°C. So this has to be a BIOS issue. Check for an updated BIOS for your machine. If there is none or it doesn't help, complain to Acer.

Fan speed control: I would guess that it is handled by the BIOS. So, unless you have an Acer-provided tweaking application under Windows, Windows should do the same. But due to the difference in reported temperatures between Linux and Windows, the fan would kick in when Speedfan reports 58°C and HWmonitor reports 63°C.

At this point I have no reason to believe that the coretemp driver
isn't reporting the temperature correctly for your system.
Comment 13 Len Brown 2010-04-04 00:58:13 UTC
Linux is reporting what ACPI's AML says to report:

       ThermalZone (THRM)
        {
            Method (_TMP, 0, Serialized)
            {
                If (DTSE)
                {
                    If (LGreaterEqual (DTS1, DTS2))
                    {
                        Return (Add (0x0AAC, Multiply (DTS1, 0x0A)))
                    }

                    Return (Add (0x0AAC, Multiply (DTS2, 0x0A)))
                }

                Return (0x0BB8)
            }

0xBB8 = 3000 deciK = (3000 - 2732)/10 = 26.8 C

Presumably DTSE is false, leading to 26.8 C always being reported.

DTSE is an "MBOX"
    OperationRegion (MBOX, SystemMemory, 0x7F6BEE10, 0x00000113)
    Field (MBOX, AnyAcc, NoLock, Preserve)
...
        DTSE,   8,

which presumably some system driver is supposed to use to
communicate with the BIOS.  Apparently neither the build
of Linux nor the build of Windows being run have such
platform-specific support.

Note You need to log in before you can comment on or make changes to this bug.