What is hardware enablement (HWE)?

Brand new hardware devices are released to the public always more frequently. And we want such hardware to be always working on Ubuntu, even if it has been released after an Ubuntu release. Six months (the time it takes for a new Ubuntu release to be made) is a very long period in the IT field. Hardware Enablement (HWE) is about that: catching up with the newest hardware technologies.

Now, how does Ubuntu want to reach the goal of Hardware Enablement? Using rolling releases for the kernel: as soon as a new kernel is released, it is packaged for Ubuntu, tested (via the proposed pocket and special Q/A methodologies), and made available to Ubuntu users. This method has of course some disadvantages: releasing a new kernel too quickly may introduce some bugs and issues, and may not be suitable for the enterprise.

The solution? Offering different kernels for different users. Therefore Ubuntu will offer at least two kernels: the General Availability (GA) kernel, i.e. the most stable kernel, which does not get updated to point releases; and the Hardware Enablement (HWE) kernel, i.e. the most recent kernel released. This is why you are seeing both the linux-generic and the linux-hwe-generic packages.

Finally, if you are interested in developing or testing the newest kernel technologies, look at the Ubuntu Hardware Debugging web site.

References:

  • https://wiki.ubuntu.com/Kernel/LTSEnablementStack
  • https://wiki.ubuntu.com/Kernel/RollingLTSEnablementStack

Ubuntu 16.04 and later

The 18.04.2 and newer point releases will ship with an updated kernel and X stack by default for the desktop. Server installations will default to the General Availability (GA) kernel and provide the enablement kernel as optional.

The 18.04 HWE Stacks will follow a new Rolling Update Model as documented at Ubuntu Rolling LTS Enablement Stack wiki.

Installing the HWE stack is simple.

20.04/20.10

sudo apt install --install-recommends linux-generic-hwe-20.04

16.04/18.04

Desktop

sudo apt install --install-recommends linux-generic-hwe-"`lsb_release -r -s`" xserver-xorg-hwe-"`lsb_release -r -s`" 

Server

sudo apt install --install-recommends linux-generic-hwe-"`lsb_release -r -s`" 

Source: revised from Ubuntu LTS Enablemen Stack wiki