Solus 4.1 Fortitude Review [Plasma Edition] Supplement: Fixes and Enhancements

Feb. 28, 2020, 6 p.m.

Solus, while a good distribution for the casual user, especially those who favor the Budgie Desktop, requires fixes and enhancements even for these users. This article describes the fixes and enhancements I made during my trial of the distribution documented in Solus 4.1 Fortitude Review [Plasma Edition].

Introduction

The most important fix necessary to even be able to use Solus on my primary laptop, an upgraded Dell G5 with an Intel Core i7-8750H, an integrated Intel UHD Graphics 630, and a discrete NVIDIA GTX-1050 Ti was to disable the Nouveau driver kernel module permanently. Without this fix the system exhibited erratic behavior related to the window manager.

For users who may need to edit kernel command line options, or those who dual boot with Windows, or those who have more than one OS installed which use systemd-boot it is necessary to alter the default behavior of Solus booting. In my initial use of this edition of Solus, before I permanently disabled the Nouveau kernel module, I needed to disable the Nouveau driver on each boot, but to do this I had to alter the default behavior of Solus booting to display the systemd-boot menu.

After disabling Nouveau and since I use rEFInd -- which is capable of finding anything bootable, whether it is GRUB boot loaders of the installed systems, systemd-boot or even appropriately compiled kernels of the installed system -- altering the default behavior wasn't really necessary long term.

I also enabled the Solus build system and familiarized myself with how it works and how to use it by following the tutorial documentation. I used this starting point to package Kile, place it in a local repository, and installed it using the system package manager. To see what this experience was like and my evaluation of the Solus build system, read Building a Package on Solus for Installation by eopkg from a Local Repository.

The only fix I was not able to effect was to configure switching between the low power integrated graphics processor and the discrete graphics processor, although the Solus proprietary driver installer Doflicky allows the installation of the proprietary NVIDIA driver it does not configure switching.

Fixes

Fixes for Live Environment

Blacklisting Nouveau

When the live environment is booted on an EFI system a systemd-boot menu is displayed, unlike in the installed system. Pressing the e will allow editing the kernel command line parameters. Appending

nouveau.modeset=0 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau

to the line that has the line "linux" will add block the Nouveau driver from being loaded.

Fixes and Enhancements for Installed System

The Solus article Boot Management describes how to alter the default behavior of booting with systemd-boot and how to add options to the kernel command line. The second of these would normally be added to /etc/default/grub in systems that use GRUB.

Blacklisting Nouveau

Blacklisting the Nouveau driver kernel module, like in typical systems that use GRUB involves adding options to the kernel command line. Instead of just adding the options to the appropriate line in /etc/default/grub and updating GRUB in those systems, Solus uses a tool created for Clear Linux, clr-boot-manager to read files that contain command line options, process them, and add them to the systemd-boot configuration.

The files are located in /etc/kernel/cmdline.d or an additional file can be created at /etc/kernel/cmdline for the user's additions. I created the file /etc/kernel/cmdline as instructed by the Solus Help Center page and added the following line to prevent Nouveau from being loaded at boot:

nouveau.modeset=0 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau

I did this using the one-liner provided in the Solus Help Center which creates the needed file and inserts the necessary text with a one line command, although nowhere in the Help Center are the specific relevant kernel options are provided.

echo 'nouveau.modeset=0 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau' | sudo tee /etc/kernel/cmdline

Blacklisting Nouveau Module Through Command Line Options
Click on any of the thumbnails to view a slideshow of the images.

Configuring systemd-boot

Solus's default configuration of systemd-boot starts the system without displaying a boot menu. The Solus article Boot Management states that "[b]y hitting space bar (repeatedly) during boot, the boot menu will appear (it may take a couple of goes to get the timing right)" in order to display the boot menu for the current system start. When the boot menu is displayed and a boot option is selected the kernel command line options can be modified for the current boot.

Unfortunately I was never able to get the timing right so I decided to display a boot menu. The same Solus help indicates the way to do this is to use the clr-boot-manager command set-timeout with the duration the menu is to be displayed as an argument. Then to use the clr-boot-manager command update to enable the new configuration.

So to display the menu for 30 seconds, one would use:

brook@g5-solus ~ $ sudo clr-boot-manager set-timeout 30

The command with its output is:

brook@g5-solus ~ $ sudo clr-boot-manager set-timeout 30
New timeout value is: 30

Configuring GPU Switching

The Solus developers have completely neglected any kind of support for laptops that have recent hybrid Intel/NVIDIA graphics hardware. Not even in the form of documentation that users can follow to configure such a system. This is only important to me for preserving battery life by ensuring that the discrete NVIDIA processor is powered off.

Those with recent NVIDIA cards will have to find some way to do this without the support of the Solus developers. One tool exists by a Solus user but it only supports systems configured to use LightDM. bbswitch is available in the repository but the Solus project doesn't provide any guidance on configuring it.

Installing openssh

openssh is an essential program for users who need to connect to remote computers. This software is not installed in Solus 4.1 Fortitude by default, at least not in the Plasma Edition.

openssh Is Not Installed by Default

It can be installed with:

sudo eopkg it openssh

`

Enhancements

The most common issue that potential users will have with Solus is the lack of software. In my case I chose to overcome this limitation of Solus and use its unique build system to package one of the programs I rely on -- Kile, a LaTeX editor similar to TeXStudio, the Solus developers' single choice to provide LaTeX editing capability. I use it instead of TeXStudio because it is more capable in terms of its live preview feature and it uses KDE components from Okular, Konsole, and Kate text editor, providing the advanced features of these programs and appearance integration with the Plasma desktop. Unfortunately, more than a year ago the Solus developers declined a request from a user to package this software. Now even though the basis for the decision not to include Kile is not valid at this time -- although there may be other reasons now, such as Kile developers not advancing the version number, a problem other distributions, and I myself worked around -- it is still not included in the Solus repositories.

To learn more about this "user enhancement", see Building a Package on Solus for Installation by eopkg from a Local Repository