The openSUSE project produces two of the best distributions in the Linux world -- the rolling Tumbleweed and the regular release Leap. It has been my favorite distribution for many years because, in my opinion, it is a technically superior distribution with a mature and extensive infrastructure where rationality is evident in many areas of its design and operation. It is flexible, powerful, and provides the most comprehensive system administration utility of any distribution in the form of YaST. Unfortunately, it lacks one very important capability: the ability to explicitly install multiple versions of the kernel on the system -- a capability Manjaro has had since the beginning of its existence. Due to this, I replaced my installation of openSUSE Tumbleweed -- which I had intended to be one of the two permanent distributions on the Acer Nitro -- with Manjaro.
My Use Case
For many Linux users, not being able to explicitly install multiple versions of the kernel may not be an issue, but for me it is. This stems from how I run the few programs that are only available for Windows, on the rare occasions that I need to run them. Instead of booting into Windows where I can't multi-task using the essential tools tools provided by GNU/Linux, I choose to run my free copy of Windows 10 Professional, obtained in the early days of the Windows Insider program, as a guest OS in VMWare Workstation Player -- the virtualization platform on which I initially prepared the virtual disk for the Windows VM. When I made my decision to switch to Manjaro, openSUSE was on version 4.9.x of the kernel; at the time, VMWare only supported versions of the kernel up to 4.8.x. No older versions of the various kernel flavors are available in the openSUSE repositories at any time, and who knows whether the tools necessary to build kernel modules, including GCC, dkms, or anything else that may be necessary are available in the appropriate versions for an older kernel.
Manjaro, on the other hand has truly supported multiple kernels since its very beginning. As some of the slides later in this article show, many versions of the basic kernel are available in the core Manjaro repository as well as a different flavor.
Current State of Multi-Kernel Support in openSUSE
In fact, technically, openSUSE does support multiple kernels -- it is possible to install multiple kernel versions and choose one to boot into from the boot manager menu. All that is required to activate this capability is a simple edit to the
/etc/zypp/zypp.conf configuration file to ensure that multiple kernel versions may be installed. According to openSUSE documentation insuring that the line
multiversion = provides:multiversion(kernel)
appears uncommented in the zypper configuration file
/etc/zypp/zypp.conf is all that is necessery to allow multiple kernels to be installed on the system.
In practice, however, openSUSE does not truly support the installation of multiple versions of the kernel in the sense that one can simply search for a kernel with, for example
zypper search kernel-default,
see which versions one may want to install from the search results, and run
zypper install kernel-default-4.4.12-1.
The extent to which multiple kernel versions may be installed currently in openSUSE is limited to keeping existing versions of kernels during update. The versions of kernels to be kept can be specified in
/etc/zypp/zypp.conf with, among other possible entries to the multiversion setting,
multiversion.kernels = latest,latest-1,latest-2,latest-3,latest-5,latest-10,running
. This practical limitation is due to:
- the default repository only having the current version of each of the various kernel flavors
- the default repository only having packages of helper tools needed to build kernel version specific modules at versions that are compatible only with the current kernel version available in the repository
Anyone with some experience with the openSUSE infrastructure knows that there are many optional extra repositories that one can use with openSUSE, so even though the default openSUSE repository for Free and Open Source Software -- the source of kernel packages -- only includes one version of the kernel, other sources of different kernel versions are available.
One such source is the kernel sub-repository for Leap 42.3. Unfortunately, there doesn't seem to be anything specifically named for Tumbleweed, though the Leap repository could be used to get kernel 4.4.x for Tumbleweed. In addition to the desired older kernel, sources for associated kernel specific packages at appropriate versions for such things as GCC, dkms, and Bumblebee compatible versions of Nvidia drivers would also have to be added to the system. Putting all of these together would make an overly complex system that would most likely break soon after these additions.
Manjaro Multi-Kernel Support
As previously mentioned, Manjaro on the other hand supports multiple versions of the basic kernel and some custom kernels in its core repository, as well as various custom kernels in its community or extra repository.
The process of installing any of these kernels is no different when using the command line tool pacman or its graphical front-ends such as Pamac. In addition to the these basic tools, the Kernel module of Manjaro Settings Manager can also manage kernels on the system. Users can use this tool to view available kernels, use the built-in kernel change log viewer to read the extensive description of each available kernel, and install the chosen additional kernel.
There were no problems with Nvidia driver kernel modules working with kernel versions other than the one originally installed with the system. The appropriate versions of the module were always available. If my memory serves me correctly openSUSE didn't have any problems in this regard either.
As I have expressed many times in various pages on this site, openSUSE is an excellent distribution with many strengths. But it is missing this very useful capability that I think would benefit its users and supporters. It may especially improve the experience of Tumbleweed users to have the option of a little conservatism with the kernel version when necessary, as in my case, while maintaining the bleeding edge with other software. This was exactly the reason I decided to replace Tumbleweed with Manjaro as one of my two main distributions for the time being.
Considering the extensive openSUSE infrastructure, there may be some optional repository that has older kernel versions that could be used to install these older kernel versions, but I haven't come across it. Even if there is, other repositories may be necessary for appropriate versions of tools like GCC or dkms. This path for getting an older kernel version is further complicated if driver modules for proprietary graphics are necessary. So this path would not be true multi-version kernel support as in Manjaro.
This is one of the added benefits of Manjaro that differentiates it from Arch and other Arch derivatives such as Antergos. Arch and other derivatives allow installing custom kernels but do not support multiple versions of the same kernel apart from an LTS version.