Skip to content
James Brooks // thatnerdknows
all writing
// writing

Fixing random N100 & N5105 mini-PC freezes

March 20, 2026 · #proxmox #hardware #troubleshooting

The symptom: a cheap Intel N5105 / N100 / N305 (Jasper/Alder-N) mini-PC or NUC — the darlings of budget homelabs — hard-freezes at random, usually while idle. No SSH, no ping, needs a physical power cycle. When you check afterward: the logs just stop dead mid-idleno kernel panic, no oops, no MCE/machine-check, no thermal event (cores were cool). A silent hard lockup.

The cause: it’s the well-known deep-C-state hang on these low-power Intel chips. When the CPU tries to drop into a deep idle C-state, it never wakes. Stock kernels ship with no mitigation for it.

The fix (one kernel parameter): cap the idle C-state.


Fix it (GRUB — most Proxmox/Debian installs)

# add the param to the default cmdline
nano /etc/default/grub
#   GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_idle.max_cstate=1"
update-grub
reboot

If your box boots via systemd-boot (ZFS-root Proxmox), edit /etc/kernel/cmdline instead and run proxmox-boot-tool refresh.

Verify after reboot:

cat /proc/cmdline                                   # shows intel_idle.max_cstate=1
cat /sys/module/intel_idle/parameters/max_cstate    # -> 1

That’s it — the box stays up. In our case an N5105 that was hard-locking on idle has been rock-solid since.


If it still freezes (escalation ladder)

Apply the next one only if the previous didn’t hold:

  1. processor.max_cstate=1 — belt-and-suspenders alongside intel_idle.max_cstate=1.
  2. pcie_aspm=off — some of these boards freeze on PCIe Active-State Power Management, not just CPU C-states.
  3. BIOS update — many of these generic boards (e.g. “U59”/JTKT-series) shipped buggy early firmware; vendor updates often fix idle stability directly.
  4. memtest86+ — if you bought a used unit or added your own RAM, rule out bad memory before blaming C-states.

How to tell it was a C-state hang (vs. something else)

  • journalctl -k -b -1 (or --since) around the freeze time → logs simply stop, no panic/oops.
  • journalctl -k | grep -i mce and ras-mc-ctl --summaryzero machine-check errors (rules out bad RAM/CPU).
  • sensors history → cores well under Tjmax (rules out thermal). Cool + silent + log-stops-dead = C-state hang.

Trade-off (tiny)

Capping C-states raises idle power a little (a couple of watts) and blocks the deepest sleep. On a 24/7 homelab node that’s a rounding error — and infinitely better than random lockups. It does not hurt performance.


TL;DR: budget Intel N-series mini-PC freezing at idle with no panic in the logs? Add intel_idle.max_cstate=1 to the kernel cmdline, update-grub, reboot. Done.

Written from a real fix: a used N5105 board (“U59”, BIOS JTKT001) hard-froze while idle with a clean log tail — no panic, no MCE, ~62 °C — the classic Jasper Lake deep-C-state hang. intel_idle.max_cstate=1 cured it.


Written by James Brooks — I run ThatNerdKnows (IT support + websites for small businesses). This is the deep end; if you’d rather just have it handled, that’s the day job.