Hi All,
I have noticed that since installing Ubuntu 24.10 my CPU (all cores) which never went over 72c are now running 91c to 100c, but fans are still slow. Given this is a 13th gen CPU, I’m concerned about killing the CPU.
As an example, I could build and install Blender alpha on 24.04 which normally hit 72c to 76c. Doing the same on 24.10 I hit 98c to 100c.
Has anyone else seen this? If so, any ideas on how to address the issue
I just installed Ubuntu 24.10 on my Dell XPS laptop (13th gen i7-1360p). This machine was purchased with Ubuntu.
Thank you,
Dan
Have you tried with a fresh install (live boot) to see if your CPU still gets that hot? It could be some cruft that was taken over from 24.04 to 24.10 via the upgrade. 13th gen intel is notorious for killing itself, so you might actually be one of the unlucky one to experience the silicon lottery (and lose) and this might not be an OS thing (just aggravated hardware degradation).
Hi,
This was a fresh install. I am going to reinstall with 24.04 and see if the temps revert to normal. My heat test case is building Blender alpha from source. It never went over 72c on 24.04, but hits 98c to 100c on 24.10.
Other than the high temps (and a bug I’m helping test in LinUtils that munges the os) I haven’t had any odd issues with the system (also it’s the laptop version of the cpu).
Dan
One more thing I was thinking about… is btop reliable for tracking cpu temps?
I never used btop. I have my own script for tracking CPU temps, which is part of my sway status bar config.
You should have a folder /sys/class/thermal/
, which contains different thermal zones. For my CPU, it’s the file /sys/class/thermal/thermal_zone1/temp
, which you can cat at certain intervals (I do so every second) and convert the results.
To get the temperature in Celsius, you divide by 1000, add a coma / dot, then append a 1000 percentage divided by 10.
CPUTMPVAR=$(cat /sys/class/thermal/thermal_zone1/temp)
CPUTEMP=$((${CPUTMPVAR}/1000)).$(((${CPUTMPVAR}%1000)/10))
echo ${CPUTEMP}
To get it in Fahrenheit, you just do the normal math (I use qalc
for that - for some reason, I can’t get shell math expressions to work when using floating numbers).
CPUFTEMP=$(qalc -t "${CPUTEMP}*1.8+32")
echo ${CPUFTEMP}
I ended up writing this script based on the folders in “/thermal” (I’ll optimize it later). This struck me as odd since “/thermal” had only 10 “/thermal_zone” folders and my system has 8 cores and 16 threads.
#!/usr/bin/env bash
CTEMPS=("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
for CPUT in "${CTEMPS[@]}"
do
CPUTMPVAR1="/sys/class/thermal/thermal_zone"
CPUTMPVAR2=$CPUT
CPUTMPVAR3="/temp"
CPUTMPVAR4="$CPUTMPVAR1$CPUTMPVAR2$CPUTMPVAR3"
CPUTMPVAR=$(cat $CPUTMPVAR4)
CPUTEMP=$((${CPUTMPVAR}/1000)).$(((${CPUTMPVAR}%1000)/10))
echo ${CPUT} ":" ${CPUTEMP}
done
The output:
./t.sh
0 : 20.0
1 : 45.5
2 : 48.5
3 : 48.5
4 : 49.5
5 : 36.5
6 : 33.5
7 : 65.5
8 : 72.0
9 : 38.0
Dan
Under stress I get these temps…
./t.sh
0 : 20.0
1 : 53.5
2 : 65.5
3 : 68.5
4 : 61.5
5 : 37.5
6 : 34.5
7 : 99.5
8 : 100.0
9 : 38.0
I’m starting to suspect that the 10 values don’t equate to the CPU cores/threads but something else (temps in different locations on the CPU or locations in my system?). I’ll have to do some research on this.
Dan
I found this too:
sensors | grep "Core"
Core 0: +64.0°C (high = +100.0°C, crit = +100.0°C)
Core 4: +64.0°C (high = +100.0°C, crit = +100.0°C)
Core 8: +61.0°C (high = +100.0°C, crit = +100.0°C)
Core 12: +64.0°C (high = +100.0°C, crit = +100.0°C)
Core 16: +68.0°C (high = +100.0°C, crit = +100.0°C)
Core 17: +68.0°C (high = +100.0°C, crit = +100.0°C)
Core 18: +68.0°C (high = +100.0°C, crit = +100.0°C)
Core 19: +68.0°C (high = +100.0°C, crit = +100.0°C)
Core 20: +68.0°C (high = +100.0°C, crit = +100.0°C)
Core 21: +68.0°C (high = +100.0°C, crit = +100.0°C)
Core 22: +68.0°C (high = +100.0°C, crit = +100.0°C)
Core 23: +69.0°C (high = +100.0°C, crit = +100.0°C)
Dan
1 Like
I did some research, it appears the values are driver defined and can vary from distro to distro. For example, my Linux Mint Cinnamon laptop has 6 values and my Ubuntu 24.10 laptop has 10. I’m still investigating what driver or drivers define these. A lot of the opinions seem to feel thermal-zone2 is the “package” temp (CPU, heat spreader, etc.).
It also looks like the application “sensors” can give you current temps. I reduced this to ‘sensors | grep “Core”’ to limit things a bit.
Thanks!
Dan