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.
Created attachment 24449 [details] sensors output
Created attachment 24450 [details] acpidump output
Created attachment 24451 [details] dmesg (grep acpi) output
Created attachment 24452 [details] lsmod output
Created attachment 24453 [details] cpuinfo
Created attachment 24454 [details] lspci -vvv output
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.
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.
Created attachment 24478 [details] hwmonitor and speedfan screenshot from windows
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.
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 :)
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.
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.