2025-12-18--Linux-on-Small-Devices.jpg

so, this was, once again, quite a trip; an odyssey if you will.

An Odyssey You Say?

well, let me describe the trip in a few words: some time ago i figured out that Umfeld runs ( and installs ) quite smoothly on Raspberry Pi OS ( including 32-bit OS on a Raspberry Pi 1 Mod. B ). the process was rather simple and quite similar to big devices i.e:

  1. installing the operating system (OS)
  2. add required packages ( SDL3, ffmpeg, … ) to the system with package manager ( apt )
  3. compile and run umfeld applications

if you understand linux basics this process is VERY straight forward.

next step, i bought one of these small gameboy-handheld-style emulator devices for a VERY small price: R36S. after reading a bit i found out that it is built around an ARM-based System on Chip (SoC) called Rockship RK3326, that it ships with a custom, lightweight variant of Ubuntu 19.10 (for ARM) called ArkOS. it took about an hour or two to SSH into the device ( after having learned that it, despite the print on the package, does not feature WiFi … and a USB WiFi dongle was required ) to fix up the shipped OS and to compile on the device and run a first Umfeld application. also, having learned from working with Raspberry Pi OS i found that it was very easy to just create a copy of the entire, fixed up ArkOS and distribute it as an image to be directly burned onto an SD Card ( e.g with Raspberry Pi Image ). this makes the handheld VERY accessible for developing and running Umfeld applications within minutes and without any requirements for downloading or fixing up anything. i was pleasently surprised by how easy everything was.

insprired by that experience i proceeded to buy another handheld: Anbernic RG40XXV. that was some time in october and that’s where the odyssey began …

Two Different Kinds of Linux Distributions

through a bit of research and even more trial and error i found out that …

  1. Anbernic stock OS ( closed source, maintained by Anbernic, and shipped with the device ) does not allow the installation of additional packages ( i.e no compiler, no SDL3, no ffmpeg )
  2. ArkOS does NOT work on the RG40XXV because RG40XXV is built around a different SoC ( Allwinner H700 ) that is not supported by ArkOS
  3. there a two different kinds of linux distributions: mutable and immutable ones

that last point i did not expect! so, there are some distributions that just do not allow to be changed from within ( i.e immutable ), while other distributions allow the installation of packages and modifications to the system ( i.e mutable ). i did some more research on common handheld OSes and found out that most of them are actually immutable:

OS NAME IM/MUTABLE
RPI OS MUTABLE
ArkOS MUTABLE
Anbernic Stock OS IMMUTABLE
GarlicOS IMMUTABLE
OnionOS IMMUTABLE
MustardOS IMMUTABLE
Knulli IMMUTABLE
ROCKNIX IMMUTABLE
  • MUTABLE :: traditional Linux filesystem, user can modify system freely, pros: flexibility, full control, easier hacking, cons: easier to break, updates can cause issues
  • IMMUTABLE :: read-only base system, updates are image-based, system files not meant to be edited, pros: stability, easy updates, harder to break, cons: no on device compilation, less flexibility, customization via overlays or containers

after some more research i found out that there is NO viable linux distribution that supports the RG40XXV ( i.e Allwinner H700 SoC ). that was quite a setback: especially, because i started liking the Anbernic devices for their build quality and i REALLY wanted Umfeld to run on many different devices.

so what this means in essence: if you want to work with a device that allows you to run a linux that you can modify to your liking and where you can compile applications on the device, go with a Rapsberry Pi or a R36S ( and its variations ).

so i felt that i had to dig into immutable linux distributions …

How to Work with an Immutable Linux Distribution

after even more research i found out that ROCKNIX is the best and most versatile option for Umfeld. mainly because it supports a wide range of SoC, seemed to be developer friendly with a vivid community, and supported all the necessary hardware and packages.

along the way i learned that most of the small device linux distributions mentioned above are built on rather old linux distributions. while i did not mind that personally, it turned out that the most central framework to Umfeld, SDL3, abandoned the legacy display backend fbdev ( a low-level system that actually presents pixels to the display ) in favour of Wayland, KMSDRM, and X11, which are not consistently available on older Linux distributions.

digging through the ROCKNIX documentation and other resources i learned that the working with immutable distributions usually involves two separate steps:

  1. create a custom system image with all required modifications and install it on the target device
  2. set up a workflow on a host machine ( e.g a big computer ) to compile applications for the target device and distribute them onto it

compiling binaries on a host machine for a different target device, architecture, or platform is referred to as cross compiling.

TBC …


see Umfeld / Small Devices for more VERY indepth documentations.