If you’re running Ubuntu LTS and hitting hardware bugs — USB devices crashing, missing driver support, Wi-Fi not working — your first instinct might be to upgrade to the latest Ubuntu release. But there’s a better option that keeps the stability of LTS while giving you a much newer kernel: the HWE (Hardware Enablement) stack.
I run Ubuntu 24.04 LTS on my daily-driver workstation. It shipped with kernel 6.8. After upgrading to the HWE kernel (6.17), two USB bugs I’d been fighting for months — one cosmetic, one that required hard reboots — were fixed without changing anything else about my system.
What Is the HWE Kernel?
Every Ubuntu LTS release ships with a GA (General Availability) kernel — the version that was current when the release was finalized. For Ubuntu 24.04 LTS, that’s kernel 6.8. This kernel receives security patches for the full 5-year LTS lifecycle, but it doesn’t get new features, new drivers, or improvements to existing subsystems.
The HWE kernel is a newer kernel backported from a later Ubuntu release, packaged and tested for your LTS version. Canonical rolls these out roughly every 6 months, following each interim Ubuntu release. You get:
- New and updated hardware drivers
- Kernel subsystem improvements (USB, GPU, networking, storage)
- Bug fixes that haven’t been backported to the GA kernel
- The same LTS userspace — your libraries, init system, package repos, and everything else stays on 24.04
Think of it as upgrading the engine in your car without changing anything else. Same dashboard, same seats, same fuel system — just a newer engine that handles the road better.
How to Install It
One command:
sudo apt install linux-generic-hwe-24.04Then reboot. That’s it. Verify with:
$ uname -r
6.17.0-19-genericThe GA kernel stays installed as a fallback — you can select it from the GRUB menu (“Advanced options for Ubuntu”) if the HWE kernel causes any issues. To go back permanently:
sudo apt install linux-generic
sudo apt remove linux-generic-hwe-24.04What It Fixed for Me
I wrote about the full investigation in The USB Bug Trilogy. Here’s the short version of what the HWE kernel resolved.
Razer Kiyo Pro xHCI Death Spiral — Fixed
My Razer Kiyo Pro webcam (1532:0e05) had a firmware bug that would crash the entire xHCI USB host controller, disconnecting every USB device — keyboard, mouse, audio, everything. The only recovery was a hard reboot.
On kernel 6.8, a stress test crashed the controller consistently around round 25. I wrote three kernel patches and a userspace watchdog to work around it.
On kernel 6.17, the same stress test passes 50/50 rounds with 0ms delay — completely stock, no patches or workarounds applied. The kernel now does two things the older version didn’t:
- Automatic LPM disable — When the Kiyo responds slowly to Link Power Management transitions, the kernel dynamically disables U1 LPM instead of cascading to controller death:
Hub-initiated U1 disabled due to long timeout 16800us - Improved xHCI error recovery — Endpoint stalls no longer escalate into controller resets. The error is contained to the device.
The kernel is now doing at runtime what my USB_QUIRK_NO_LPM patch was trying to do statically — detecting that the device can’t handle LPM and disabling it automatically.
Phantom I/O Wait Counter Leak — Improved
A USB card reader (Genesys Logic 05e3:0751) was causing the kernel’s procs_blocked counter to leak during the boot-time async SCSI scan, making every monitoring tool report 40-60% iowait when there was actually zero disk I/O happening. On 6.8, the leaked count was 4-6. On 6.17, it dropped to 4 — partial improvement, but the bug is still present. I’ve filed it as Ubuntu bug #2146707.
When to Use HWE vs. GA
Use HWE when:
- You have hardware that’s newer than your LTS release (bought a laptop or GPU after the release date)
- You’re hitting driver bugs or missing hardware support
- You need kernel subsystem improvements (USB, Bluetooth, Wi-Fi, GPU)
- You’re running a desktop or workstation (Ubuntu Desktop installs HWE by default since 20.04)
Stick with GA when:
- You’re running a production server where maximum stability matters more than hardware support
- Your hardware works perfectly on the GA kernel
- You rely on out-of-tree kernel modules (DKMS modules) that might not build against newer kernels
- You’re in a regulated environment that requires a specific kernel version
Note: Ubuntu Desktop has shipped with the HWE kernel by default since 20.04. If you installed from the desktop ISO, you might already be on HWE. Check with dpkg -l | grep linux-generic-hwe.
HWE Lifecycle
The HWE kernel follows a rolling update model within the LTS lifecycle:
| Ubuntu 24.04 LTS | GA Kernel | HWE Kernel |
|---|---|---|
| Release (Apr 2024) | 6.8 | 6.8 |
| 24.04.1 (Aug 2024) | 6.8 | 6.8 |
| 24.04.2 (Feb 2025) | 6.8 | 6.11+ |
| 24.04.3 (Aug 2025) | 6.8 | 6.14+ |
| 24.04.4 (Feb 2026) | 6.8 | 6.17+ |
The GA kernel stays at 6.8 for the entire 5-year support period. The HWE kernel steps forward every ~6 months, pulling from the next interim release. Both receive security patches.
The Tradeoff
There’s always a tradeoff between newer kernels and stability. A newer kernel means newer code paths that have had less production exposure. In my case, the tradeoff was obvious — a kernel that crashes my entire USB bus on a stock webcam isn’t “stable” in any meaningful sense. The HWE kernel was strictly better.
But your situation might be different. If your hardware works fine on the GA kernel, there’s no reason to chase a newer one. The best kernel is the one that runs your hardware without problems.
For me, sudo apt install linux-generic-hwe-24.04 turned a webcam that required three kernel patches and a watchdog daemon into one that just works. Sometimes the fix really is that simple.
