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.
Recently, however, the number of Manjaro packages installed from the AUR was getting unwieldy, 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 accommodated 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 repositories 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 three additional repositories:
void-repo-multilib-6_4
void-repo-multilib-nonfree-6_4
void-repo-nonfree-9_6
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
pipewire
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 /usr/lib/rofi/: 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: 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.
[Desktop Entry]
Version=1.0
Type=Application
Name=Enpass
GenericName=Enpass Password manager
Icon=io.enpass.Enpass
Terminal=false
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --filesystem=host --command=enpass --file-forwarding io.enpass.Enpass @@u %U @@
MimeType=x-scheme-handler/enpassauth;x-scheme-handler/enpasscard;x-scheme-handler/enpassstart;x-scheme-handler/enpass;x-scheme-handler/cloudkit-7adb8cc6tf.in.sinew.walletx;application/enpasscard;
Categories=Utility
X-Flatpak-Tags=proprietary;
X-Flatpak=io.enpass.Enpass
runit
Make sure the configured services are also in the default run level.
The directory to check is /etc/runit/runsvdir/default.
acpid ⇒ /etc/sv/acpid
agetty-tty1 ⇒ /etc/sv/agetty-tty1
agetty-tty2 ⇒ /etc/sv/agetty-tty2
agetty-tty3 ⇒ /etc/sv/agetty-tty3
agetty-tty4 ⇒ /etc/sv/agetty-tty4
agetty-tty5 ⇒ /etc/sv/agetty-tty5
agetty-tty6 ⇒ /etc/sv/agetty-tty6
cronie ⇒ /etc/sv/cronie/
dbus ⇒ /etc/sv/dbus
elogind ⇒ /etc/sv/elogind/
iwd ⇒ /etc/sv/iwd
libvirtd ⇒ /etc/sv/libvirtd
lxdm ⇒ /etc/sv/lxdm/
mpd ⇒ /etc/sv/mpd
netmount ⇒ /etc/sv/netmount/
NetworkManager ⇒ /etc/sv/NetworkManager
ntpd ⇒ /etc/sv/ntpd
polkitd ⇒ /etc/sv/polkitd
sshd ⇒ /etc/sv/sshd
tailscaled ⇒ /etc/sv/tailscaled
tlp ⇒ /etc/sv/tlp/
udevd ⇒ /etc/sv/udevd
virtlockd ⇒ /etc/sv/virtlockd
virtlogd ⇒ /etc/sv/virtlogd
Virtual Machines
sudo usermod -a -G libvirt,kvm karmst
Installed Packages List
After installing the base VOID OS, I installed the following packages.
brightnessctl-0.5.1_1
cifs-utils-6.15_1
cronie-1.7.2_1
curl-8.9.1_1
dejavu-fonts-ttf-2.37_2
dmenu-5.3_1
dunst-1.11.0_1
elogind-252.9_2
exa-0.19.1_1
eza-0.19.1_1
feh-3.10.3_1
firefox-129.0_1
flatpak-1.15.10_1
font-awesome-4.7.0_3
font-awesome5-5.15.4_2
font-hack-ttf-3.003_2
font-weather-icons-2.0.10_2
fonts-roboto-ttf-2.138_3
fzf-0.54.3_2
gdu-5.29.0_2
gnome-keyring-46.1_1
htop-3.3.0_1
i3-4.23_1
i3-gaps-4.23_1
i3lock-color-2.13.c.4_1
iwd-2.19_1
jgmenu-4.4.1_1
jq-1.7.1_1
kitty-0.36.1_1
libreoffice-24.2.5.1_1
lxdm-0.5.3_5
mc-4.8.31_1
mpc-0.35_1
mpd-0.23.15_3
mpv-0.38.0_3
nano-8.1_1
neofetch-7.1.0_2
nerd-fonts-ttf-3.2.1_1
network-manager-applet-1.36.0_1
NetworkManager-1.48.8_1
newsboat-2.36_1
nextcloud-client-3.13.1_1
noto-fonts-emoji-2.042_1
noto-fonts-ttf-24.8.1_2
noto-fonts-ttf-extra-24.8.1_2
ntfs-3g-2022.10.3_1
ntp-4.2.8p15_7
pass-1.7.4_3
pavucontrol-6.1_1
pcmanfm-1.3.2_2
picom-11.2_1
pinentry-1.3.1_1
pinentry-dmenu-0.2.3_1
pinentry-gtk-1.3.1_1
pipewire-1.2.2_1
plocate-1.1.22_1
polkit-124_1
polkit-qt5-0.200.0_1
polybar-3.7.2_1
protonmail-bridge-3.12.0_2
protonvpn-cli-2.2.12_1
pulseaudio-16.1_2
pulseaudio-utils-16.1_2
putty-0.81_1
pyradio-0.9.3.9_1
qalculate-5.2.0_1
qtpass-1.3.2_1
qemu-9.0.2_1
qutebrowser-3.2.1_1
rclone-1.67.0_2
rofi-1.7.5_1
rofi-calc-2.2.1_1
rofi-emoji-3.3.0_1
rofi-pass-2.0.2_1
rsync-3.3.0_1
screenkey-1.5_3
source-sans-pro-3.046_1
starship-1.20.1_1
tailscale-1.72.1_1
thunderbird-115.12.2_1
tilda-1.5.4_1
tint2-17.0.2_1
tlp-1.6.1_1
ttf-material-icons-4.0.0_2
ttf-opensans-3.001_1
ttf-ubuntu-font-family-0.83_3
unicode-emoji-14.0_1
unzip-6.0_15
virt-manager-4.1.0_3
void-repo-multilib-6_4
void-repo-multilib-nonfree-6_4
void-repo-nonfree-9_6
vscode-1.91.1_1
wget-1.24.5_1
wireplumber-0.5.5_1
xauth-1.1.3_1
xdotool-3.20211022.1_1
xorg-server-21.1.13_1
xorg-server-common-21.1.13_1
xournalpp-1.2.3_1
xwallpaper-0.7.4_1
yewtube-2.10.5_2
yt-dlp-2024.08.06_1
zip-3.0_6
zoxide
zsh-5.9_3
zsh-autosuggestions-0.7.0_1
zsh-completions-0.35.0_2
CRON for get_iplayer
*/15 * * * * /home/karmst/scripts/iPlayer/bbc_update.sh >/dev/null 2>&1