We’re happy to announce the rollout of clr-boot-manager in our stable repository. clr-boot-manager, from the Clear Linux Project For Intel Architecture, enables a more bulletproof update experience by handling the maintenance and garbage collection of kernels, as well as configuration of the bootloader itself (i.e. GRUB2 for Legacy Boot, goofiboot
for UEFI boot on Solus). Furthermore, it enables us to retain older, known-working kernels, so in the event a kernel upgrade results in the inability to boot, you’ll still be able to roll back to the last good kernel.
The importance of bulletproof boot management
clr-boot-manager also addresses the issue of modules of the currently running kernel being removed from the disk during an update. The Linux kernel loads modules at runtime from uniquely namespaced trees, as each tree is specific for each kernel. Prior to clr-boot-manager, those unique module paths would be removed, meaning if the module wasn’t previously loaded, it can’t load. This would result in USB devices not functioning, like a headset or mounting an external drive. Similarly,this would also result in failing to load the NTFS filesystem module, thus not being able to mount an NTFS disk. This would result in Windows disappearing during GRUB, since it could no longer “see” it. From a developer perspective, this offers a far simpler approach to kernel maintenance - we do not need dozens of meta packages to offer this experience.
Kernel configuration
On the configuration front, clr-boot-manager enables easier management and use of custom cmdline arguments, such as the common i8042.nomux=1
or resume=/dev/somePartition
.
You can add your required kernel arguments to /etc/kernel/cmdline
or /etc/kernel/cmdline/*.conf
, and clr-boot-manager will merge those as appropriate into the final command line for each kernel. This is merged with the vendor cmdline, part of the kernel package, and any automatic cmdline that may be generated by clr-boot-manager itself (such as the root=
or rd.luks.uuid=
parameters). Once done, just run sudo clr-boot-manager update
to commit the changes.
Future Considerations
As of now, all Solus users are on the linux-lts
package by default. This now ensures that we no longer “branch jump” existing users onto a mainline kernel. Prior to this change, we had a single kernel
package within Solus, meaning we’d follow the most stable in our consideration.
In future, we’d like to expand our supported kernels, with plans for a linux-mainline
package, and allow our users to pick the most appropriate kernel for their needs, whilst retaining stability for the majority.
Upgrading to the new system
This change is entirely automated. Once you’ve updated and rebooted your system, you’ll now be using a clr-boot-manager managed system, and the new linux-lts
package. No user intervention is necessary here.