Date Modified Tags Linux / Solus

Solus Linux

The folks at Jupiter Broadcasting on their Linux Unplugged and other shows have been fans of Solus Linux Project and their work. I was about to install Linux on another laptop and asked myself, what version of Linux should I install? Given that it is an older laptop, I considered Ubuntu Mate and Fedora, mainly, but I thought it might be a nice opportunity to try out Solus since the installation was kind of a short-term test of Linux on the laptop.

What is Solus Linux? From what I understand, it is a version of Linux not based on any other distribution (such as Debian, Fedora, Ubuntu, etc.), but it is a relatively new distribution designed for desktop computing. The project lists developers, home users, office users, developers, content creators, and gamers as some of their target users. Solus can be installed with the Budgie, GNOME, or MATE desktops.

Further, Solus follows a rolling release model for update distribution, meaning that the software is not locked to a certain version for a given version of the distribution but it rolls forward with each update of the software. As a rolling release, changes enter the distribution through the unstable repository for the distribution. The Solus developers sync the unstable repository with the shannon repository weekly. Solus installations sync with the shannon repository for updates. This is my first experience actually running a rolling distribution, so it will be interesting.

Installation

The install process went fine, especially, considering that this was the first time I have installed Solus. Since I haven't used Budgie, I thought I would give it a try. The installer was easy to use, though, it would have been more streamlined if the Linux kernel had supported my wireless card out of the box, which it doesn't. Specifically, I am trying Solus out on a old Dell XPS M1530 with a Broadcom BCM4312 wireless network card--a wireless network card that frequently takes a little extra work to get working with Linux (to be clear, this is not specifically a problem with Solus). If I had been connected to the network (say via Ethernet), Solus would have autodetected things like my time zone and other things, but it wasn't required for installation.

As it turns out, this lack of a network connection while installing Solus and some proprietary drivers did cause me to run into some interesting glitches as a result. The first glitch occurred when I tried to install the proprietary nVidia drivers for the discrete graphics chip in the laptop without a network connection. One way you install the proprietary drivers is using the Hardware Drivers tools under the System Settings menu, which is quite nice and simple. Unfortunately, the Hardware Drivers tool tried to install the drivers (which it couldn't get to without a network connection) but it didn't let me know that it has actually failed. When I tried to reboot to get the drivers working, the booting process hung. In retrospect, this is probably because the the Hardware Drivers tool configured something (possibly) when actually installing the drivers, but the drivers weren't actually installed. This might have been a recoverable situation, but since I didn't have any important data to lose, I started up the Solus installer again to reinstall Solus.

During the second installation, when the installer went to create the LVM volumes, though, it couldn't. I had selected the use of LVM volumes during installation instead of the legacy primary partition approach. In this state, I couldn't get the Solus installer to actually prepare the hard drive for installation, so I blew away the old partitions and restarted the installer. This time, the installer was successful.

Installing Proprietary Drivers

Suspecting that the proprietary drivers needed to come over a network connection for installation, I connected the laptop to the network via Ethernet before trying to install the proprietary drivers for the wireless card and the nVidia graphics device with the Hardware Drivers tool. That made the difference. In fact, I could see that the drivers were being downloaded and installed this time. I first installed the wireless LAN drivers and rebooted. When I rebooted, Linux still couldn't see the wireless LAN drivers--odd. It wasn't until I installed the proprietary nVidia drivers and rebooted that I saw both the wireless network card and the nVidia proprietary drivers working. After those few hiccups, everything went pretty well.

Solus Software Center

Once the hardware drivers had been taking care of, I used the Solus Software Center to update the existing software. It took a while, but there were quite a few updates to install. I have also explored the Software Center some to see what applications I could find. A lot of the standard applications were there, but so where several third-party applications like Android Studio, Google Chrome, GitKraken, Enpass, Skype, Slack, and a number of others. In addition to these proprietary tools, there were open-source tools like for developers like Visual Studio Code, Atom, Go, Python, Ruby, R, Rust, and a number of other languages and tools. While they may not have as many packages as Debian or Fedora, the selection does seem to be very good for popular packages.

Solus Software Packages

This also reminds me, though, that Solus does not use Debian (.deb) or RPM packages. This might make using Solus challenging in cases where Solus doesn't have a particular piece of software already available and packaged. With that said, for many users, a lot of popular software packages are already available and might not care.

One way that Solus mitigates the lack of sharing a traditional packaging format with other distributions is that it supports Snap packages, the "universal" Linux packaging standard started by Canonical as a result of some of their work on Ubuntu phones. In fact, I needed to install the most recent version of Go, but the new version was not available in the Solus Software Center. It turns out that Go is packaged as a "Snap", so I tried it out. I ran:

snap install go --classic

and Go 1.10 was installed--nice considering that Solus only was providing Go 1.9 at the time.

Solus for Go Development

With Go installed, I installed Visual Studio Code and the Go language plugin and tried to compile a basic "hello, world" application. One of the nice things about Visual Studio Code (VSCode) and the Go plugin is that they automatically download and build the necessary Go tools that they use to support Go development. I noticed a few of the packages failed to install. With a little investigation, I realized that GCC and other standard development tools were not installed. I installed GCC/G++ by hand, but then GCC couldn't find stdlib.h when the Go compiler was building some of the Go support tools for VSCode--odd. After a little poking around on the Internet, it turns out that one reasonable way to address the problem was discussed on the Solus forums. Effectively you use

sudo eopkg it -c system.devel

to install some base developer tools. After that, VSCode was able to successfully install the Go support programs.

Initial Impressions

In general, despite some small glitches and a magic incantation to get the base developer tools to be installed, it seems like Solus has been very reasonable. I have been using it on and off for several days on the laptop and the experience has been generally very good. Budgie is pretty straight forward and works well. The Software Center works pretty well and is reasonably organized. I can see how gamers might like Solus, with their direct effort to support Steam. The GTK theming in Budgie even made Emacs look a little nicer than I have seen with other versions of Linux. Another nice touch that I noticed was that the installed fonts already supported powerline statusline utility.

I'll write an update if anything interesting arises.