Technical

Detected Hardware Unit Hang: fix the NIC firmware and ASPM on Proxmox

Detected Hardware Unit Hang: fix the NIC firmware and ASPM on Proxmox

Detected Hardware Unit Hang is the kernel telling you a PCIe device stopped responding, and on Proxmox hosts it’s almost always the network card. Update the NIC firmware, disable ASPM, and reseat the card — that clears it most of the time.

A detailed view of a vintage circuit board showcasing intricate electronic connections.

What the error actually says

The full message in dmesg looks like this:

igb 0000:04:00.0: Detected Hardware Unit Hang:
  TDH                  <value>
  TDT                  <value>
  next_to_use          <value>
  next_to_clean        <value>

That’s the igb driver for Intel gigabit NICs. The card’s transmit ring stopped advancing — the hardware hung. Sometimes it recovers, sometimes the link drops until reboot.

Check the NIC first

Run lspci -nnk | grep -A3 Ethernet to see what you’re dealing with. If it’s an Intel I350 or similar, you’re in the right place. The fix order I’d follow:

  1. Update the NIC firmware. Intel’s bootutil or the OEM’s update tool. Old firmware on I350 cards is a known cause.
  2. Disable ASPM. Add pcie_aspm=off to the kernel command line in /etc/default/grub, then update-grub and reboot.
  3. Reseat the card or move it to a different PCIe slot. A marginal connection can trigger this.
  4. Check the BIOS for PCIe power management settings — disable anything that sounds like “ASPM”, “L0s”, or “L1”.

If it’s a different driver — say e1000e or r8169 — the same steps apply. The hang is in the hardware, not the driver logic.

Detailed view of a red circuit board with various electronic components and microchip.

Why ASPM matters

Active State Power Management lets the PCIe link drop to low power states. Some NICs and motherboards don’t wake up cleanly, and the kernel sees a hung unit. Disabling it costs a watt or two but stops the hangs.

When it’s not the NIC

Rarely, the hang comes from a SATA controller or a USB controller. The same diagnostic applies: dmesg | grep -i hang shows the device and driver. Update firmware, disable ASPM, reseat.

I’ve seen this on a node with freezing VMs — the NIC hang was one symptom of a deeper power management issue.

If you’d rather pay for this

A new Intel X550-T2 or an OEM-branded I350 card costs around $50-100 and usually ships with current firmware. If you’ve spent more than an hour on firmware updates and BIOS tweaks, swapping the card is faster and ends the problem for good. For a homelab, that’s the point where I’d just buy the new NIC.

Leave a comment

Comments are reviewed before they appear. Your email is never published.