
Fix HP ProdDesk 600 Proxmox network issues
Every once in a while my HP Prodesk LAN will thow this error over and over. Seems it is an issue with the Intel e1000e NICs
host1 kernel: e1000e 0000:00:1f.6 nic0: Detected Hardware Unit Hang
I did the following to fix it
Added the 2 lines in red:
root@host1:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface nic0 inet manual
post-up /sbin/ethtool -K nic0 tso off gso off gro off rx off tx off || true
post-up /sbin/ethtool --set-eee nic0 eee off || true
auto vmbr0
iface vmbr0 inet static
address 192.168.1.225/24
gateway 192.168.1.1
bridge-ports nic0
bridge-stp off
bridge-fd 0
iface nic1 inet manual
Appended the red line to my grub:
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=( . /etc/os-release && echo ${NAME} )
GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_iommu=on pcie_aspm=off e1000e.SmartPowerDownEnable=0“
GRUB_CMDLINE_LINUX=””
Then ran:
update-grub
ethtool -k nic0 | grep tcp-segmentation-offload
Confirm it is working. This must return “tcp-segmentation-offload: off“
ethtool -k nic0 | grep tcp-segmentation-offload
What this all means and why it happens
If you run Proxmox VE on HP ProDesk or EliteDesk mini PCs, you might eventually encounter a sudden host freeze where the network drops, but the machine stays powered on.
Inspecting journalctl -b -1 typically reveals hundreds of lines repeating the same error:
kernel: e1000e 0000:00:1f.6 nic0: Detected Hardware Unit Hang:
What Causes the Crash?
The issue stems from a conflict between Linux kernel power management and the Intel e1000e driver powering onboard NICs (like the Intel I219-LM / I217-LM).
To save power, the network card uses two main mechanisms:
- Hardware Offloading (TSO/GSO/GRO): The OS offloads large packet processing directly to the network card’s hardware buffer instead of using the CPU.
- Aggressive Power States (ASPM & EEE): When network traffic briefly dips (even for a fraction of a second), the driver drops the PCIe bus and Ethernet link into low-power sleep modes.
When running virtualized workloads, Docker bridges, or persistent WebSockets (e.g., Home Assistant or OpenClaw), rapid micro-bursts of traffic occur. The Intel NIC hardware buffer freezes while attempting to wake up from a low-power state while handling offloaded packets, causing a ring buffer lockup. The driver repeatedly tries to reset the unit (Detected Hardware Unit Hang) until the kernel network stack completely fails.
The Fix: What Each Line Actually Does
To permanently stabilize the interface, we disable the hardware offloading features and prevent the driver from putting the physical interface to sleep.
1. Disabling Hardware Offload (/etc/network/interfaces)
Adding post-up directives ensures these flags apply as soon as nic0 initializes on boot:
Plaintext
iface nic0 inet manual
post-up /sbin/ethtool -K nic0 tso off gso off gro off rx off tx off || true
post-up /sbin/ethtool --set-eee nic0 eee off || true
tso off(TCP Segmentation Offload): Forces the CPU to handle breaking TCP data into network frames rather than passing huge chunks to the network card’s buggy ring buffer.gso off&gro off(Generic Segmentation / Receive Offload): Disables software-level packet aggregation at the network driver layer, stopping packet queue buildup.rx off&tx off: Disables hardware checksumming calculations on incoming and outgoing packets.eee off(Energy Efficient Ethernet): Disables IEEE 802.3az, preventing the physical Ethernet port from negotiating low-power idle states with your switch.|| true: Prevents network initialization from failing ifethtoolreturns a non-zero exit code on an unsupported feature flag.
2. Disabling PCIe Power Management (/etc/default/grub)
Updating the kernel boot parameters stops the operating system from throttling power to the PCIe slot:
Plaintext
GRUB_CMDLINE_LINUX_DEFAULT="... pcie_aspm=off e1000e.SmartPowerDownEnable=0"
pcie_aspm=off: Disables Active State Power Management across the PCIe bus globally, keeping the network card’s PCIe interface in an active, low-latency power state.e1000e.SmartPowerDownEnable=0: A specific flag for the Intel driver that prevents the PHY chip from powering down when it detects no link or an idling connection.