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
Finally, if you are interested in developing or testing the newest kernel technologies, look at the Ubuntu Hardware Debugging web site.
Do you happen to know if there's a more current link describing the different kernel flavors? Currently a bit stumped between linux-generic, linux-current-generic, linux-generic-lts- in precise lts
Did this stop before Ubuntu 18.04? Ubuntu 18.04 contains transitional package linux-generic-hwe-16.04 which just depends on linux-generic.
How do I see or choose which kernel is actually being used in my system? uname -r simply results: 4.15.0-24-generic
@StéphaneGourichon If you are using the 16.04 HWE stack, the kernel will keep rolling until the next LTS, which in this case is 18.04. After that, you will stay with the LTS kernel until 16.04 reaches EOL.
@w-sky You can check the `BOOT_IMAGE` parameter in `/proc/cmdline`. Run this command to find out the package name: `sed 's/^BOOT_IMAGE=\([^ ]*\) .*/\1/' /proc/cmdline | sed 's/.efi.signed//' | xargs dpkg -S`.
Thanks for this! I was just trying to set up a LAMP stack to install zoneminder, and have it be ran wireless. Come to find out that I couldnt setup my new server install with wireless for some reason, but following your answer did the trick! Although, I do find that the Subiquity installer is better, other than the wireless thing! Thanks again!