Can't get the right CPUcore temperature (Acpi chip)

Solution 1:

As Oli says, you only need the coretemp module to read Intel CPU core temperature.

I have a similar problem with my w83667hg hardware monitor driver. The workaround is to add acpi_enforce_resources=lax to the kernel command line. To that end

  1. edit /etc/default/grub and insert acpi_enforce_resources=lax into the parameter string of GRUB_CMDLINE_LINUX, e. g.

    GRUB_CMDLINE_LINUX='acpi_enforce_resources=lax'
    
  2. then run update-grub and reboot.

Solution 2:

I'd skip lm-sensors and just read from /sys/class/thermal/thermal_zone0/temp. This should be automatically registered for an ACPI chip. The unit is millidegrees Celsius.

$ cat /sys/class/thermal/thermal_zone0/temp 
47000

There may be many thermal_zoneN devices. In my experience, the CPU is usually the first (and one for each core) but I'm not sure I'd depend on that always being the case.

For other devices that aren't registered through the thermal sysfs API, you would need lm-sensors or something similar.