I’m Kayla. I tinker on Linux a lot. I also baby my CPUs, because hot chips crash work. I’ve tried a bunch of tools to check temps. Some were smooth. Some were weird. Here’s what I use, what I see on my machines, and a few small gotchas I wish someone told me sooner.
Why I even cared
It started in July. My ThinkPad fan sounded like a tiny jet. The laptop felt toasty near the F-keys. My desktop did fine, but builds ran long and hot. You know what? Heat sneaks up on you.
So I began checking temps often. Not in a fussy way—just quick peeks. I like simple.
The quick way: lm-sensors
On Ubuntu and Fedora, this is home base for me. For deeper documentation, the comprehensive lm_sensors: Hardware Monitoring for Linux wiki walks through every sensor class and kernel module in detail.
- Install it:
- Ubuntu/Debian:
sudo apt install lm-sensors - Fedora:
sudo dnf install lm_sensors
- Ubuntu/Debian:
- Detect chips:
sudo sensors-detect(hit Enter for the defaults)
- Then check temps:
sensors
If you're hungry for an even deeper, distro-agnostic walkthrough, Freedom Penguin has an excellent primer that complements what I cover here.
That primer sits alongside my own annotated deep-dive with screenshots—you can find it right here.
On my AMD desktop (Ryzen 5600), here’s a real sample I see when idle with a case fan curve set:
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: +42.4°C
Tdie: +37.8°C
Tccd1: +35.5°C
nvme-pci-0100
Composite: +39.0°C
nct6775-isa-0290
fan1: 780 RPM
fan2: 640 RPM
On my Intel work NUC, it looks like this under a light load:
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +67.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +61.0°C
Core 1: +62.0°C
Core 2: +59.0°C
Core 3: +60.0°C
- Tdie or Core is close to the true die temp.
- Tctl can read a bit higher on AMD. It’s by design. Don’t panic.
If I want a live ticker in the terminal, I do:
watch -n 1 sensors
One-second updates. Easy.
A small digression: when “sensors” shows nothing
It happens. On some boxes I had to load the right module:
- Intel:
sudo modprobe coretemp - AMD:
sudo modprobe k10temp - Many desktops: Super I/O chips like
nct6775load on their own now, but I’ve had to add them to/etc/moduleson older boards.
Then I run sensors-detect again. If a prompt feels scary, I leave the risky scans off. Safer that way.
GUI that doesn’t get in my way: Psensor
Sometimes I want a tray icon and a graph. Psensor is my pick. For an overview of features, screenshots and source code, the Psensor: A Graphical Hardware Temperature Monitor for Linux homepage is worth bookmarking.
- Install:
- Ubuntu:
sudo apt install psensor
- Ubuntu:
- It shows CPU, GPU (if supported), and drive temps.
- I set alerts. If any core hits 90°C, it pops a notice and plays a tiny sound.
My ThinkPad T14 (AMD 6850U) while in a Zoom call plus 12 Chrome tabs:
- Baseline idle: 39–45°C
- Typical call: 65–75°C
- Short compile spike: 88–92°C (fan roars, then drops)
Psensor’s graph makes it obvious when a tab or app misbehaves. That’s how I caught a rogue Electron app once.
If you’re on GNOME, the “Freon” extension is nice for a quick panel readout. KDE folks: “Thermal Monitor” widget is clean.
If you're shopping for a Linux-friendly travel rig that also behaves well under Kali, these are the laptops I actually use.
Plain file reads, when I’m feeling nerdy
Sometimes I skip tools and read the kernel values:
cat /sys/class/thermal/thermal_zone0/temp
It prints in millidegrees. So 52000 means 52.0°C. It’s barebones, but script friendly.
On embedded gear where I’m wired in over UART, poking around sensors from a serial console is the norm—if you’re wrangling serial ports on Linux, here’s what actually worked for me.
Case study 1: My ThinkPad T14 AMD (work travel buddy)
Stock Ubuntu 24.04. Power-profiles-daemon on “Balanced.”
- Idle in a cafe: 42–48°C
- VS Code + Docker build: 75–85°C
- Long Rust build: peaks 92°C for a minute, then 80–85°C
- Fan curve is quick to ramp; not quiet, but safe
Things that helped me:
- Clean the vents. A simple puff of air drops a few degrees. It’s boring. Still works.
- “Balanced” profile most days; “Power Saver” while writing.
thermaldhelps a bit on Intel. On AMD, firmware does most of the job.
Result: fewer spikes, and the fan doesn’t hunt up and down as much.
Case study 2: My Ryzen 5600 desktop (home build box)
Parts: stock cooler first, then a be quiet! Pure Rock later. Fractal case. Two intake fans. One exhaust.
- With the stock cooler:
- Idle: 38–44°C
- Linux kernel build: 84–88°C peak; fans loud at 100%
- With a mid-range tower cooler:
- Idle: 33–38°C
- Kernel build: 72–77°C peak; fan noise drops a lot
I tuned the fan curve in BIOS. I set a gentle ramp up to 70°C, then sharper after. That cut “whoosh” bursts during short tasks.
Bonus: Raspberry Pi 4 temps
On my Pi 4, this is my quick check:
vcgencmd measure_temp
No fan, just a low profile heatsink.
- Idle: 45–50°C
- Node build: 70–75°C
- It throttles near 80–85°C. A tiny fan helps a lot. I use the Pimoroni one.
When I need deeper detail (and when I don’t)
turbostat(Intel only) shows per-core speeds, temps, and C-states:sudo turbostat --Summary --quiet --interval 1- Great for tuning, but I use it rarely.
powertopcan hint at power hogs. It’s not a temp tool, but it helps lower heat.- GPUs are separate:
- NVIDIA:
nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader - AMD GPU:
sensors | grep -i edgeoften shows it, or userocm-smion supported cards.
- NVIDIA:
Side note: excessive network retries can quietly warm a NIC and spike CPU soft-irq time; when I’m tracking that down I lean on the terminal classic mtr to reveal where packets are stalling. If you ever need to spoof your Wi-Fi card’s identity to dodge captive portals or MAC-based quotas, the workflow in my guide to changing a MAC address on Linux is painless and safe.
Alerts and sanity checks I actually keep
- Psensor alert at 90°C for laptops, 85°C for desktops
- A quick
watch -n 1 sensorsduring big builds - If temps climb for no reason, I check:
- Dust in vents
- High background CPU (htop helps)
- Old thermal paste (over 3 years? I refresh it)
- Case airflow (one more intake fan fixed a lot for me)
For heat issues rooted in runaway processes, I sometimes discover the culprit is a service spewing file-handle leaks; when that crops up, the fixes I outlined in my hands-on take on the “too many open files” error come in handy.
