I try to understand the structure of the ubuntu kernel-ppa since I need to upgrade my vanilla kernel. Given the MainlineBuild manual, there exist three packages for installation (e.g. in 4.15.18):
linux-headers-*-generic-*-all
linux-headers-*-generic-*-<arch>
linux-image-*-generic-*-<arch>
But that is not true for all builds (e.g. 4.14.39 has four packages):
linux-headers-*-generic-*-all
linux-headers-*-generic-*-<arch>
linux-image-unsigned-*-generic-*-<arch>
linux-modules-*-generic-*-<arch>
What's the deal behind this structure, since it is not explained in the MainlineBuild manual?
Are all modules in unsigned kernels build out-of-tree?
What is the benefit and how to install these unsigned
kernels properly?
Okay so I run mainline Kernels and just hit this snag.
First off, if you do this regularly, I highly recommend using this script Ubuntu Mainline Kernel Updater. These changes actually broke the script, but I have an open PR that fixes it and you can pull from my repo. This will automatically install new kernels and has an assortment of flags to grab the one you want.
Second, this is stemming from an effort to, as far as I can tell, rebrand security. Previously if you wanted a signed kernel from Canonical you grabbed the linux-signed-image package. Now they want kernels signed by default, so stable kernels are just linux-image (signed) and intermediate kernels are linux-image-unsigned. Because Canonical doesn't guarantee they are stable, they are not signed. Modules are also separated but I'm not sure why yet. I haven't found anything in the Kernel Team archives, but admittedly I haven't looked that deeply yet. For now, it seems the changes are mostly cosmetic as far as we are concerned, but I still feel ignorant as the wider implications.
My Similar Ask Ubuntu Thread (one the of Ubuntu Kernel has a brief response).
TLDR
Download all four and run dpkg -i *.deb. It's the new workflow as far as I can tell.