Manjaro Linux has been the default Linux install on the Belkast laptops and, over the last few years, it has been a very stable operating system. It has very rarely had an issue, with OS and package updates always working as intended. Many packages have been installed via the AUR (Arch User Repository), and these have worked well too.
However recently, the number of Manjaro packages installed from the AUR was getting unweildy, and I am never really 100% comfortable installing packages that are not fully supported by the OS maintainer.
Over the last few weeks I have been watching YouTube videos about VOID linux, and it got me thinking. Could I also switch to VOID Linux?
VOID Linux uses runit for managing system services and, after watching all those videos, it certainly appears that it is a system that is easier to understand. Additionally, because systemd is not used, VOID Linux appears to use less system resources. VOID Linux would be perfect for my Acer Chromebook, I thought, and therefore I started with that laptop. Described below is my experience so far.
Prepare to Install
I downloaded the x64 glibc base ISO image from the VOID website.Once the ISO had finished downloading, I wrote the image to a USB stick, which I then proceeded to boot my laptop from.
At the initial command prompt, I entered a username of root and a password of voidlinux.
Installation
The installation is ncurses based and, except for the partitioning section, it is easy to understand and follow. To run the installer, I entered void-installer at the command prompt, and pressed enter.Partitioning
If you decide to do a UEFI install, make sure the efi partition has at least 256MB. This will be mounted at /boot/efi.I made the boot partition 1GB on my Dell 7490 so it can hold a few kernel revisions. The partition on my Chromebook is a bit small; my mistake!
The partition scheme I chose was the GUID Partition Table GPT. The only thing you need to ensure, when using this partition table type, is that the first partition has the bios_grub flag.
I decided to set the size of the /boot partition to 350 MB, as this partition will hold the system Linux kernels. A size of 350 MB ensures that three kernels can be accomodated comfortably.
The configuration for the first two VOID Linux partitions in a GPT scheme are shown in the table below.
Size | Filesystem | Flag | Mount |
5 MB | BIOS boot or ef02 | bios_grub | None |
350 MB | vfat | None | /boot |
Setup
Change default repository
The VOID Linux respositories contain the majority of packages that you would ever want (or need) to install. For everything else, there is flatpak. One of the first things I did was to change the location of the default repository, since the repository that is configured during installation is located in Germany. Therefore I changed the repository to mirror.clarkson.edu/voidlinux/current/, which is located in the United States.
Add the nonfree repository.
System Services
The first thing I did was to install the system services that I would need. On the Acer laptop, I found that wpa_supplicant was not stable at all. I therefore installed iwd, which proved to be very stable. I removed wpa_supplicant and configured iwd to start at system boot using sudo ln -s /etc/sv/iwd /var/services/. On a MacBook, wpa_supplicant worked very well, so this configuration step was not required.
I ran in to an issue with the NetworkManager service on a Dell 7490, so make sure the default services match those starting in /var/service.
Linked Location: /etc/sv/cronie/
Package to Install: cronie
Linked Location: /etc/sv/elogind/
Package to Install: elogind
Linked Location: /etc/sv/iwd/
Package to Install: iwd
Linked Location: /etc/sv/lxdm/
Package to Install: lxdm
Linked Location: /etc/sv/netmount/
Package to Install: sv-netmount
Linked Location: /etc/sv/ntpd/
Package to Install: ntp
Linked Location: /etc/sv/pipewire/
Package to Install: pipewire
Linked Location: /etc/sv/pipewire-pulse/
Package to Install: pipewire-pulse
pipewire
To get pipewire working, I installed pipewire and enabled both the pipewire service and the pipewire-pulse service.
Packages
The list below shows some of the additional packages that I installed on the VOID Linux system. Of course not everything is available, Proton Bridge is one application that I could not install, but I think I can do without reading email on every single laptop that I own (in addition to my phone).
Repository: VOID
Type: Core Tools
Repository: VOID
Type: Core Tools
Repository: VOID
Description: The sv-netmount application allows you to install the netmount service which enables you to mount network filesystems on system boot, and I use this to mount two samba shares on my WDCloud NAS drive. One I use for music, and one I use for backing up my data.
Repository: VOID
Description: I use mpd to handle pyradio and local music, with the local music being accessed via a LAN symbolic link in my Music directory. The Acer Chromebook does not have a very powerful GPU, and therefore it cannot handle 4k video downloaded from YouTube. To watch my YouTube subscriptions, I have written a BASH script that uses yt-dlp to stream the video from YouTube. My ~/.config/mpv/mpv.conf file is shown below.
ao=pulse
ytdl-format="bestvideo[height<=?1080]+bestaudio/best"
[pyradio]
volume=100
Repository: VOID
Description: i3-gaps is a Desktop Environment, and lxdm is a display login manager
Repository: VOID
Description: Image and PDF processing
Repository: VOID
Type: Terminal Apps
Repository: VOID
Type: System Tools
Repository: Not in a repository
Description: An extension for rofi which consists of two files that should be copied in to the rofi extension directory: blezz.la and blezz.so
Repository: VOID
Description: Add some bling to your VOID Linux desktop with fancy icons
Repository: VOID
Type: I use nextcloud as my cloud backup provider, and the files are stored on a Belkast server hosted by Contabo.
Repository: VOID
Type: Office Application
Repository: VOID
Type: Web Browser
Repository: Flatpak
Type: Business Application
Repository: Flatpak
Type: Web Browser
Repository: Flatpak
Type: Business Application
Repository: Flatpak
Type: Password Manager
Other things
MacBook
I had to add the following lines to the /etc/rc.local file:
modprobe -r usbmouse modprobe -r bcm5974 modprobe bcm5974
Enpass
To use enpass, you need to install it as a flatpak and then edit the flatpak config file to allow access to the local filesystem; otherwise it will not save any of the configured vaults.
PGP
Import the PGP keys from cloud share.
runit
Make sure the services starting are also in the default run level. The directory to check is /etc/runit/runsvdir/default.