When I started RoPieee I never could have predicted that it would become so widely used. I had a simple idea: build a piece of software that enables non-geeks to use a Raspberry Pi as a Roon endpoint.
Over the years RoPieee became rather populair. I added stuff, refactored stuff, fine tuned stuff, and repeated all that several times. But some things are so fundamental that you can’t change them easily.
One of those things that started to work against me (up until a certain point) is the fact that RoPieee, running on Linux, uses a Linux distribution (ArchLinux specifically) as its base OS. The clear advantage of that is that I didn’t need to create this base OS (which is a huge task) myself. But there are disadvantages too: I needed to deal with engineering decisions being made that didn’t suit me particularly well. And it required me to set up this big ‘shadow infrastructure’ to create a stable OS release as ArchLinux is a so-called rolling release.
But the thing that caused me the biggest challenge was the fact that ArchLinux is a typical standard package-based distribution: software is deployed in a package and an update can contain several packages. Which makes an update a complex matter: there’s a ton of stuff that can go wrong.
So last summer I made the decision to start from scratch and this time literally: create a Linux OS from nothing, without using a distribution as a base. That turned out to be a huge task (bigger than I originally anticipated) but after the summer I had something which already looked very promising: RoPieee being an appliance, only containing the absolute bare minimum and highly optimized for its single task: running Roon Bridge.
But I still needed to figure out what to do with updates. And I wanted something better than what I had. So I started experimenting with an image-based approach: an update is nothing more than an image that is being streamed to a disk. So it either succeeds or fails, nothing in between. Add to this a so-called ‘active/passive’ partition setup and you have a state-of-the-art update mechanism: the update is being installed on the passive partition and when the system reboots it boots from this updated partition. The system gets corrupted? No worries, it can still boot the previous version on the passive partition. And it does this all automagically. Joy!
“Thanks for all this nerd stuff, but what does it bring me as a user?”
The same old rock-solid performance and easy setup. I’m pretty sure that most users won’t even notice the difference. And a platform that makes maintenance easier and thus gives me more time to spend on features and improvements.
So without further ado… here’s RoPieee’s first release of this year: 2022.02!
Functionality-wise it brings the same, but there are a few small changes that you might notice:
-
You need to reflash: you cannot upgrade from existing RoPieee installs
-
There are separate images for the Pi 3 and Pi 4 families
-
support for the 2 family is gone
-
support for the Zero W 2
-
You cannot upgrade to XL: starting with this release XL is provided as a separate image.
-
This release is RoPieee-only: the separate provided XL image is still based on the previous version (but that will change soon).
-
The ‘enable SSH’ option is gone
Finally, I want to give a big shout-out to all (patient) beta testers and @Nathan_Wilkes who rewrote the excellent RoPieee Beginners Guide.
So download the new version from here and enjoy the music as always!
Warm regards,
Harry