Welcoming Void Linux to my Raspberry Pi
Last week a package update broke WiFi connection on my Arch. I've thought it's as good time as any to try Void Linux.
I have nothing against Arch and this was the first time that an update broke anything for me. Arch runs well on Raspberry Pi 3B+. But if I have to come up with reasons why somebody may choose Void Linux, it would be these:
- Even though there is a 64-bit ARMv8 Arch for RPi 3B+, somehow the instructions give a strong impression that you're better off with 32-bit ARMv7 version. But then you notice it has "LEGACY" in the name. I'm not sure what's this about and I've never felt that it's less maintained in any way. But overall ARM versions of Arch seem to be separately maintained by some person apart from Arch core team? On the other hand, ARM versions of Void Linux are right beside the x86 versions.
- Void Linux is very vocal about the bloat of systemd and that runit is lighter and simpler. I don't have any problems with systemd, but if runit is faster or uses less memory I'm all for it.
Those are not strong reasons at all. Please don't let this discourage you from using Arch, okay? Okay, let's move on then. I've decided that the theme of this distro switch will be less bloat and newer software, even if it may be less stable. (I recognize the irony, unstable bleeding edge package update lead to this whole transition in the first place.)
Software choices
Considering the theme, I ended up with the following setup:
- aarch64 musl version of Void Linux
- Wayland
- Sway tiling window manager
- Foot terminal
- Fuzzel application launcher
- qutebrowser
- Everything else is in the terminal: Neovim, Amfora, nnn
Setting up Void Linux went without much trouble, although I peeked back in the Arch setup instructions to help formatting SD card correctly. I'm so grateful for Arch Wiki, it's really indispensable whether you use Arch or not.
Void Linux loads very fast, 2s or so to login prompt! Maybe there is some truth to the systemd criticism.
Unfortunately I needed to enable 'vc4-fkms-v3d' driver which adds 4s of blank time before Void Linux even starts to boot. The "f" in its name stands for "fake", but the real 'vc4-kms-v3d' never worked for me and always results in permanent blank screen. It seems that Wayland won't run without one of them being enabled, so have to use the fake one.
Foot terminal
I've never heard of Foot, but it shows up when you search for "native" Wayland terminals.
It is very light and starts quite a bit faster than Alacritty. But that's not all. It has a server/client mode in which you start a server daemon that preloads glyphs and other stuff and then you can connect multiple clients. The clients start pretty much instantaneously!
I was surprised by this feature as I've never thought that this kind of convoluted way of running a simple desktop application actually makes a lot of sense for reducing resource usage, given that you use many instances of the application. Thank you, Foot!
Less bloat results in better performance?
This certainly has been true for Void Linux startup time.
How about Wayland, which is a modern and "de-bloated" replacement for Xorg? Sway seems to take the same amount of time to start as i3. Qutebrowser however consistently starts 1.5x slower than it did on Arch with Xorg. It takes 35s on the first start. Quite a challenge for one's patience.
And then there is Foot, which introduces the "bloat" of server/client modes, which helps it achieve an incredible performance.
So the relationship between the size of a codebase and performance of a piece of software is not as simple.
Parting thoughts
I rarely go back to my previous choices, so I'm very likely going to stay on Void Linux. I also don't have any other distros on my mind to try (except maybe Alpine, but not for the desktop.) So I'm looking forward to long and fulfilling stay on Void Linux!
2022-02-03 | #raspberrypi #voidlinux
Agent Parsley