Monday, 7 September 2020

Evaluating Artix Linux with OpenRC, KDE Edition

In an article for Distrowatch in July I looked at Artix Cinnamon and Plasma editions with runit to start up and manage services. That indicated a problem in the sense that if reliant on software written for systemd that no ready-made runit service scripts are available for one will have to create their own. Specifically, I had a problem getting my VPN client to work. Let's see if this works any better with the OpenRC flavour of Artix.

This is really a follow-up but for those who haven't read the original review and not familiar with the distribution here's a quick recap.

Artix is a systemd-free fork of Arch Linux that grew out of the Arch-OpenRC and Manjaro-OpenRC projects joining forces to provide installable images with alternative init solutions to Arch users who were unhappy with the parent moving to systemd. In fact, Arch was one of the early adopters. While in the beginning only OpenRC might have been offered, Artix now also provides install images using the runit and s6 init software. There's a lot of choice on the download page, only the x86_64 architecture is supported. The project provides Artix basic images of 520MB, similar to a net-install or the Arch install images, and with Cinnamon, MATE, Plasma, Xfce, LXDE and LXQt also ISOs for every major desktop environment. They come in between 939MB and 1.1GB depending on your chosen flavour - not too big a download these days. The page makes it clear what to expect, i.e. only a basic set of applications is included to get the user started.
A file manager, a media player (MPV), a network manager, a document viewer, a web browser and the graphical installer. It is then up to the user to add applications and shape the system.

Every flavour is available for download with any of the three supported init systems. Official images seem to be respun now and then. Although there are weekly images, at the time of writing most stable images were dated from February 2020, with the Xfce ISO labelled 20200506 apparently released in May.

Artix boot screen
Overall the desktop experience with the OpenRC version was exactly the same and presented with the same issues, namely the installer shortcut not showing up on the desktop if any other language rather than English was chosen to localise the Live session. Or rather, it DID show up infrequently. The menu also presented with the same entries as the runit edition. I am still puzzled why two archive managers, Ark and Xarchiver, are included in the otherwise sparse collection. By all accounts the only difference is the chosen init system which many users won't even notice until they need to manually set up services to run at boot and shutdown.

Artix Plasma desktop  with link to the installer showing up this time
...and again not showing.
Service scripts are available in the Artix package manager for various cases and they need to be installed alongside the main package if we want to run it at boot. This is quite well explained in sections of the manual that shortcuts on the desktop point to. However, the team behind Artix can not possibly know of and make scripts available for all software and use cases out there so at a point you'll be on your own. This is something to seriously consider when choosing which init system to go with as most services these days seem to be configured to automatically work with and start with systemd only without any further user intervention.

Installation

I covered this in the previous review. Artix uses the Calamares installer and it's a straight walk through with the usual steps, but be careful to read the summary squeezed in at the bottom before committing to disk.

The Calamares installer - steps on the left and summary at the bottom

I already had an existing install which I updated to the latest Linux 5.8.4 kernel and Plasma 5.19.5 in the Arch/Artix repositories. The jump from Plasma 5.17 went well but left me with some theming issues to be sorted out.

After this and with the Kodi media center, the Brave browser and the Octopi package manager added the system consumed a little over 6 GB disk space. I believe the 1.1 GB ISO initially extracted to somewhere around 5.6 GB for a fresh install.

With Octopi running KDE 5 Plasma used 491 MB Ram in the following screenshot so it will be slightly less for a new install.
 
Artix KDE does not come with many onboard applications and no favorites defined for us in the menu either. MPV is on board for video files, Okular is the only application in the office section (and probably only here to enable us to open and read the documentation linked on the desktop to help us get started) and Falkon is the web browser in the Plasma edition.

Like before Kodi was added from the repositories and the Brave browser from AUR. The install and operation of Octopi was flawless in the Plasma environment - as opposed to Cinnamon where it had caused a problem with authentication. Pamac had shown to be the better solution there for graphical package management and it also allows us to enable the AUR and install from there, a function that Octopi seems to be lacking.

A pristine Plasma 5.19 desktop after the upgrade from 5.17.

In general, large system updates are better done with pacman at the command line and graphical package managers used to look for and install specific packages.

Now, what about my VPN service?

One could just run with the browser plugin installed to circumvent any problems but this will only isolate your browser traffic.
The other possibility is to use the generic openvpn client and the networkmanager openvpn addon. This might be the easier solution. In this case the Artix team already provide a openvpn-openrc package which basically just installs the script so the service is started by openrc. Ideally this is what you want for all clients and services you want to start. But I'm not looking forward to importing about two dozen ovpn configuration files and using networkmanager doesn't quite cut it.

If you're running any sort of VPN service except your own you really want to use the client offered by your chosen provider to take advantage of additional services like killswitch, list of locations and being able to quickly change between different protocols.

My client is in the Arch User Repository. Like many slackbuilds for other package formats, what the build script does is actually just a repacking of the Debian binary so it can be installed on Arch Linux systems. This also works on Artix as a derivative but the repack does nothing about start up and shutdown scripts as Arch just like Debian is using systemd so this part doesn't work on Artix.
To execute the repack and add the package from AUR I had to install binutils, otherwise you get this:

"==> ERROR: Cannot find the strip binary required for object file stripping."

Once this is done the package installs fine. Running the usual command to connect results in an error message that the service is not running and prompts us to start it with a systemd command. However, I found we can start it with  "sudo /usr/bin/binary start".
Now typing  "myvpnservice connect" works and prompts for the login credentials. Thinking of the Slackbuilds repository earlier gave me another idea and I was able to adapt the start/stop entries for the /etc/rc.d/rc.local file from there so that from now on the service will start at boot time.

CPU usage with the service running is once again in the 2% to 4% range on each core, quite the difference compared to my attempts with runit.

Conclusion

Trying to get my VPN service working under the runit edition was quite a challenge and resulted in high CPU usage of about 25% as the init service was new to me and obviously too different. I had been unable to properly work out the calls and write my own init scripts to get the service up and running as intended.

OpenRC on the other hand did not pose such a problem and I was able to get it to work with a bit of input from the Slackbuilds site. This is because the two init systems are not too dissimilar and OpenRC works on top of traditional init systems like the one used in Slackware.

The Plasma install with only a few additions and clock widget. Enough to be hooked to the old TV via VGA.

This is definitely important to take into consideration when trying to move away from systemd to one of the many alternative init systems, including the older SysV, while having to run services at startup reliant on init scripts that are not provided by your chosen software packages. If startup scripts are not provided by your chosen distribution nor by the supplier of the package do you have the skills to work out where to put them and write them yourself? May the distribution maintainers make it available for you on request? Do not forget to look at other distributions for inspiration.

For now OpenRC is the better solution for me because I seem to understand it better as it is more like the SysV and BSD init systems I am used to.

No comments:

Post a comment

Please leave your comment here. Spam will be deleted.

Labels

12.04 LTS (1) 1280x1024 (2) 14.1 (1) absolute (6) accessibility (6) ad-blocking (1) administration (2) afterstep (1) android (3) announcements (14) anonymity (5) anonymous (1) anonymous browsing (1) anti-malware (1) anti-virus (1) antiX (2) applications (1) arch (11) archbang (11) archone (1) artix (2) authentication (1) backports (1) base (1) bash (2) bittorrent (2) block-this (1) bluestar (1) bodhi (1) books (1) brave (1) brave-browser (1) browsers (8) browsing (1) bsd (4) bug (2) bugs (3) calculate (1) centos (1) certification (1) chakra (2) changelog (22) chat (1) chatzilla (1) chromebook (1) chromium (2) click (1) commodore 64 (1) critique (1) crunchbang (5) crux (1) ctkarch (1) cyber war (1) debian (28) desktop (60) devuan (4) digital certificates (1) digital memories (1) distributions (74) documentaries (1) documentation (2) dr. web (1) drivers (1) duo (1) e17 (1) email (1) encryption (3) enlightenment (1) events (1) exit nodes (1) ext4 (1) fake (1) fallout (1) fallout 4 (1) fedora (6) file server (2) file systems (1) firefox (3) flash (1) flush (1) fluxbox (6) fluxflux (1) FPS (2) free software (3) frugalware (1) FSF (1) ftp (2) furybsd (1) fusion (1) fvwm (1) fvwm-crystal (1) games (11) gaming (10) gentoo (2) gnome (9) gnome shell (4) gnu/linux (4) google (2) google-chrome (3) graphics (1) grml (1) gtk+ (1) hangouts (1) hardcore punk (1) hardware (3) how-to (22) humor (2) i3 (1) icewm (5) init (3) init freedom (5) interview (1) introduction (1) jibbed (1) jwm (2) kanotix (4) kde (19) KDE neon (1) kde3 (2) kernel (6) knoppix (1) kodi (2) kongoni (2) kubuntu (3) LAS (1) libtorrent-rasterbar (1) linux (19) linux light (16) Linux Mint (4) live (45) live medium (22) live system (10) liveslak (3) LMDE 4 (3) localisation (1) LTS (1) lxde (12) lxqt (1) mageia (1) mandriva (2) manjaro (1) marine life (1) mate (1) media center (6) mepis (2) mint (5) mobile (2) mobile security (1) movies (6) mozilla (3) music (1) netbook (2) netrunner (1) networking (4) news (3) nvidia (1) open source (1) openbox (15) openSUSE (3) opinion (13) other (5) overclockix (1) packages (1) pclinuxos (2) perl (1) plasma (1) poll (2) porteus (3) privacy (5) privoxy (1) programming (1) proxy (2) puppy (3) qbittorrent (1) qt (1) quick look (10) ratpoison (1) red hat (7) relax (1) release (1) reviews (53) rhythmbox (1) rolling (1) RPG (2) rpm (1) sabayon (5) salix (15) scientific (7) screenshots (2) scripts (3) seamonkey (1) security (3) semplice (1) server (4) shell (1) shooter (4) siduction (1) slackel (1) slackware (66) slackware 14.2 (2) slackware 15.0 (6) slackware-current (33) slax (7) slitaz (1) smart phones (2) sms (1) south africa (2) specialist (1) spoof (1) ssh (1) surfing (1) systemd (2) table mountain (1) TDE (1) tegra k1 (1) The Walking Dead (1) themes (1) tinyme (2) tips (1) tor (3) torrenting (1) torrents (1) traffic analysis (2) trinity (2) trisquel (1) TV shows (1) TWD (1) ubuntu (6) unity (2) unity linux (4) unix (1) upgrade (6) vector (2) video (4) vinux (2) virtualbsd (1) visual impairment (5) voip (1) vpn (2) VSIDO (1) wallpapers (3) window maker (4) window managers (1) wireless (10) xfce (16) youtube (1) zenwalk (3) zoo (1)