Clockwork uConsole · Volume 5
Operating Systems
OS decision matrix, install paths, first-30-minutes checklists, and migration
Contents
1. About this Volume
This is the OS-choice volume. The Linux ecosystem has dozens of distributions; about a dozen are credible choices for the uConsole; three or four cover 90% of users. This volume tells you which is which.
The reader of this volume has read Volumes 2 and 3 (so they know what hardware they have), Volume 4 (so they know what booting from each storage type entails), and Volume 6 (so they know which kernel comes with which image). What’s left is which user-space distribution runs on top.
A small philosophical point before we start: distribution choice matters less than people think for the uConsole. Every OS in this chapter runs the same kernel (with the Clockwork patches), reads the same config.txt, drives the same panel and keyboard, and exposes the same /dev/input/event* to user-space. What changes between distributions is:
- Which package manager is in front of you (
apt/pacman/nix/ etc.). - What’s pre-installed.
- Which desktop environment (or none) is the default.
- The release-cadence philosophy (rolling vs LTS vs frozen).
- The community + documentation surrounding the distribution.
If you already have a Linux distribution you know and love, the uConsole will probably run it (with some manual kernel-patch work for non-Pi-OS-derived distros). If you don’t, this volume picks the answer for you.
2. The OS Decision Matrix
2.1 The full comparison table
The credible options as of mid-2026:
| OS | Base | Default DE | Package mgr | Pkg count | Kernel base | Clockwork patches | First-class on uConsole? |
|---|---|---|---|---|---|---|---|
| Pi OS (Bookworm) | Debian 12 | LXDE/Wayfire | apt | ~50 K | 6.6 LTS | ✅ (via Rex) | ✅ |
| Pi OS (Trixie) | Debian 13 | LXDE/Wayfire | apt | ~55 K | 6.12+ | ✅ (via Rex) | ✅ |
| Kali Linux ARM | Debian-derived | Xfce | apt | ~600+ tools | 6.x mainline | ⚠️ partial; manual | ⚠️ workable |
| ParrotOS ARM | Debian-derived | MATE / Xfce | apt | ~700+ tools | 6.x mainline | ⚠️ manual | ⚠️ workable |
| BlackArch ARM | Arch Linux ARM | i3 / Openbox | pacman | ~3000 tools | 6.x mainline | ⚠️ manual | ⚠️ workable |
| Ubuntu Server | Debian | none (server) | apt | ~70 K | 6.x LTS | ⚠️ manual | ⚠️ workable |
| Ubuntu Desktop | Debian | GNOME | apt | ~70 K | 6.x LTS | ⚠️ manual | ⚠️ workable |
| Debian (vanilla) | upstream | choice | apt | ~60 K | 6.x stable | ⚠️ manual | ⚠️ workable |
| Arch Linux ARM | Arch Linux | choice | pacman | ~13 K + AUR | 6.x latest | ⚠️ manual | ⚠️ workable |
| NixOS | upstream Nixpkgs | choice | nix | ~80 K | 6.x latest | ⚠️ manual | ⚠️ workable |
| Manjaro ARM | Arch-derived | KDE / Xfce / GNOME | pacman | ~13 K + AUR | 6.x | ⚠️ manual | ⚠️ workable |
| Armbian | Debian/Ubuntu base | choice | apt | ~50 K | 6.x mainline | ✅ (Radxa CM5 only) | ✅ (CM5 only) |
| Dragon OS | Ubuntu 22.04 LTS | LXDE | apt | ~50 K + SDR | 6.x | ⚠️ manual | ⚠️ workable |
| RetroPie | Pi OS-derived | EmulationStation | apt | ~50 K + emu | 6.6 | ✅ (via Rex base) | ✅ (gaming) |
| Batocera | Buildroot | EmulationStation | manual | minimal | 6.x | ⚠️ manual | ⚠️ workable (gaming) |
| Lakka | LibreELEC-derived | RetroArch | minimal | minimal | 6.x | ⚠️ manual | ⚠️ workable (gaming) |
“First-class” means: pre-built images exist that handle the JD9365DA-H3 panel, the GD32 keyboard, and the OCP8178 audio chain out of the box. “Workable” means: you flash a generic image and apply the Clockwork patches yourself. “First-class” requires either Rex (for the Pi-CM4/CM5 path) or the Armbian Radxa-CM5 maintainers; “workable” is everyone else.
2.2 Mapping OS choice to loadout archetype
Volume 1 §6 enumerated the loadout archetypes tjscientist and the community use the uConsole for. Mapping each archetype to its right OS:
| Archetype | Recommended OS | Why |
|---|---|---|
| Pocket dev workstation | Pi OS Trixie (Rex) | Fully supported, modern toolchain, smooth daily-driver experience |
| Field RF/SDR rig | Dragon OS | SDR++ / GQRX / GNU Radio / dump1090 pre-installed |
| Kali in the pocket | Pi OS + Kali metapackages | Best of both: panel/keyboard work AND Kali tools available |
| Mini PCIe LTE base-station | Ubuntu Server | Service-focused; minimal DE; good ModemManager support |
| Ham digital-modes shack | Pi OS Trixie (Rex) | WSJT-X / fldigi / pat all in apt; Clockwork patches present |
| Music-production cyberdeck | Pi OS Trixie + PipeWire | LMMS / SunVox / Cardinal in apt; PipeWire native |
| AI-butler portable terminal | Pi OS Trixie + custom chat client | Standard environment; bring your own AI tooling |
| Bench-side embedded console | Pi OS Lite (no DE) | UART, serial console, screen, tmux — minimal overhead |
| Sysadmin / SSH terminal | Pi OS Bookworm Lite | Same logic, conservative LTS base |
| Retro gaming | RetroPie or Batocera | Pre-configured emulator + library |
| TUI-only retro aesthetic | Arch Linux ARM + cool-retro-term | Rolling-release, customisable, Cool-Retro-Term + tmux + neovim |
| Multi-Linux experimentation | NixOS | Declarative config; rebuild without losing state |
| Linux-on-Rockchip experiment | Armbian (Radxa CM5) | The only first-class image for Radxa-CM5 hardware |
| Offline reference (Kiwix/Calibre) | Pi OS Bookworm | Stable; good Calibre packaging |
These are starting points, not commandments — substitute as you prefer.
2.3 The decision tree
┌──────────────────────────────┐
│ What's the primary use case? │
└──────┬──────────────────────┘
│
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌──────────┐
│ pen-test│ │ SDR │ │ general- │
│ │ │ │ │ purpose │
└────┬────┘ └────┬────┘ └─────┬────┘
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Pi OS + │ │ Dragon │ │ Pi OS │
│ Kali │ │ OS │ │ Trixie │
│ meta │ │ │ │ (Rex) │
└─────────┘ └─────────┘ └─────────┘
(specialty paths split off:)
retro gaming → RetroPie / Batocera
Rockchip CM5 → Armbian
declarative → NixOS
rolling-release → Arch ARM
ham/digital → Pi OS Trixie + WSJT-X stack
3. Raspberry Pi OS (Bookworm, Trixie)
The default. The reference. The image you should flash unless you have a specific reason not to.
3.1 Why it’s the default
Five compounding reasons:
- First-class kernel patches. Every Clockwork kernel-side patch (panel driver, AXP228 quirks, HID quirk) is upstreamed into Rex’s images on top of the Pi-Foundation kernel. You flash, you boot, the screen works.
- First-class user-space.
raspi-configexists;vcgencmdexists; the Pi-specificpi-bluetooth/pigpio/wiringpistacks all just work. - Bookworm is current LTS, Trixie is current rolling. The combination covers stability-vs-newness preferences without requiring a fork.
- Documentation density. Pi-Foundation docs cover almost every question, plus the Clockwork forum has uConsole-specific addenda.
- Hardware ecosystem fit. Every Pi-tested USB device (cameras, HATs, accessories) and every Mini-PCIe card with Pi-OS drivers also works on the uConsole.
It is the right answer for ~70% of users. The other 30% have specific reasons (pen-test workflow, SDR primary, Rockchip module, retro gaming) covered in later sections.
3.2 Rex’s Bookworm 6.6.y images
Maintained at the ClockworkPi forum thread.1 Rebased every few months when Pi-Foundation ships new EEPROM and kernel patches.
What you get:
- Debian 12 Bookworm base.
- Pi 6.6.y LTS kernel with Clockwork patches.
- LXDE desktop (lightweight, fast, comfortable on the 5″ screen).
- Wayfire compositor optionally available; X11 default.
aptpackage manager with the Pi repos pre-configured.- Clockwork-specific tools (
uconsole-kbd-bl, the panel + keyboardudevrules, theconfig.txt+cmdline.txtbaseline).
Image size: ~3 GB compressed; decompresses to ~7 GB on the SD/eMMC.
When to choose Bookworm over Trixie:
- You want LTS stability — security updates only, no kernel-version churn.
- You’re running pen-test or RF tools that haven’t been updated for the Trixie kernel.
- You’re new to Linux and want the most-documented baseline.
3.3 Rex’s Trixie 6.12.y images
Same maintainer, more recent kernel.2
What you get:
- Debian 13 Trixie base (testing as of 2026; expected to become stable late 2026).
- Pi 6.12.y kernel with Clockwork patches.
- Wayfire (Wayland) as the default compositor.
- PipeWire as the audio server (PulseAudio still available via compatibility shim).
- Newer userland — newer GCC, newer Python (3.12), newer everything.
When to choose Trixie:
- You want current-generation kernel features (improved scheduler, better thermal management).
- You’re a developer needing modern toolchains.
- Your tooling explicitly targets recent Wayland or PipeWire APIs.
- You want PipeWire native (rather than the PulseAudio-on-Bookworm pattern).
3.4 Install path
For a fresh CM4 with Lite + microSD:
# On a host (Linux/macOS):
# Download Rex's image (link in §3.2 / §3.3).
# The image is named like `2026-04-20-uconsole-bookworm-arm64-lite.img.xz`.
# Decompress:
unxz 2026-04-20-uconsole-bookworm-arm64-lite.img.xz
# Flash to microSD (verify /dev/sdX is the SD card!):
sudo dd if=2026-04-20-uconsole-bookworm-arm64-lite.img \
of=/dev/sdX bs=4M status=progress conv=fsync
sudo sync
# Or use rpi-imager (Pi's official GUI flasher) which handles everything:
sudo apt install rpi-imager
rpi-imager
# (select "Use custom" → point at the .img.xz; rpi-imager decompresses + flashes)
For a CM4/CM5 with eMMC, follow the rpiboot path in Vol 4 §8.2 — the flow is the same except the target is the on-module eMMC seen via USB MSD.
First boot:
- Insert the SD into the uConsole (or close the case after eMMC flash).
- Power on. First boot expands the rootfs partition (~30 seconds), reboots, and then comes up to the Pi-OS first-run wizard.
- The wizard. Set country, locale, time zone, default username + password (deprecate the legacy
pi/raspberrylogin — set your own), WiFi network. The wizard offers anapt update/upgradeat the end; run it (5-10 minutes on a fresh install). - Reboot.
You’re at a working Pi OS desktop on the uConsole.
3.5 Clockwork-specific tweaks
After first boot, a few Clockwork-specific configurations that aren’t always pre-set:
Power button behaviour (Vol 2 §14): set POWER_OFF_ON_HALT=1 in the EEPROM:
sudo rpi-eeprom-config --edit
# Add or modify the line:
POWER_OFF_ON_HALT=1
# Save and exit. Reboot to apply.
sudo reboot
Keyboard backlight (Vol 6 §6.6): if not already configured:
sudo apt install clockwork-uconsole-tools # may already be installed
echo 128 | sudo tee /sys/class/leds/clockwork-uconsole-kbd::brightness/brightness
Audio (Vol 6 §8.1): verify the speakers work:
speaker-test -t wav -c 2 -l 1
# Should hear "Front center" / "Front left" / "Front right" through the speakers.
Recommended baseline packages for the uConsole:
sudo apt install -y \
vim tmux git curl wget htop \
brightnessctl \
pavucontrol \
network-manager \
chrony \
rsync \
fzf ripgrep bat
4. Kali Linux ARM
If your primary use case is penetration testing, Kali is the canonical answer. There are two ways to get to it on the uConsole.
4.1 Two paths: full image vs metapackages
| Path | What you flash | Pros | Cons |
|---|---|---|---|
| Full Kali ARM image | Kali’s official Pi 4/CM4 ARM64 image | All ~600+ tools pre-installed; Kali kernel; Kali user-space | No Clockwork patches; you must port them or accept broken display |
| Pi OS + Kali repo | Rex’s Pi OS image + kali-linux-arm apt | Clockwork patches present; full uConsole experience; Kali tools | Disk space (~5 GB extra); overlapping packages |
For most users, Path B is the right answer. Path A makes sense only if you’re already using Kali on a Pi 4/CM4 in a non-uConsole context and want consistency.
4.2 Path A — Kali ARM image
Path A install:
# On a host:
# Download from https://www.kali.org/get-kali/#kali-arm
# Look for "Raspberry Pi 4/400/4 (64-bit)" — currently named like:
# kali-linux-2025.W18-rpi64.img.xz
unxz kali-linux-2025.W18-rpi64.img.xz
sudo dd if=kali-linux-2025.W18-rpi64.img of=/dev/sdX bs=4M status=progress conv=fsync
sync
Insert SD; first boot. Kali boots — but the screen will likely be blank or wrong because the Kali kernel doesn’t have Clockwork patches. You have to either:
- Manual kernel rebuild. Take Kali’s kernel source, apply Clockwork patches (Vol 6 §2.3), rebuild, install. Tedious but works.
- Replace the kernel with Rex’s. Untar Rex’s image’s
/lib/modules/and copy to Kali; copy Rex’s/boot/firmware/*over Kali’s. Risky — userland and kernel may diverge in subtle ways. - Use Kali via SSH only. Boot Kali blind, SSH in from another machine, run Kali tools remotely. Wastes the uConsole’s screen but works.
Default Kali credentials: kali / kali. Change immediately.
4.3 Path B — Pi OS plus Kali metapackages
Path B install:
# Start from Rex's Pi OS Bookworm image (per §3.4).
# Add the Kali repository:
sudo apt install -y kali-archive-keyring # (if available, otherwise download key manually)
echo 'deb [signed-by=/usr/share/keyrings/kali-archive-keyring.gpg] https://http.kali.org/kali kali-rolling main contrib non-free' | \
sudo tee /etc/apt/sources.list.d/kali.list
sudo apt update
# Pin Kali packages to lower priority (so apt doesn't replace Pi-OS-base packages):
sudo tee /etc/apt/preferences.d/kali-pin.pref <<'EOF'
Package: *
Pin: release a=kali-rolling
Pin-Priority: 50
EOF
# Now install Kali metapackages by name:
sudo apt install -y kali-linux-arm # or smaller subsets — see below
Available Kali metapackages (subset relevant for the uConsole):3
| Metapackage | Size | What’s in it |
|---|---|---|
kali-linux-core | ~50 MB | Tiny baseline |
kali-linux-headless | ~500 MB | Headless install — server-style |
kali-linux-default | ~1.8 GB | Default desktop install (heavy) |
kali-tools-information-gathering | ~150 MB | nmap, masscan, theHarvester, recon-ng |
kali-tools-vulnerability | ~300 MB | nikto, sqlmap, sslscan, OpenVAS |
kali-tools-web | ~400 MB | burp, zap, wfuzz, gobuster |
kali-tools-passwords | ~200 MB | john, hashcat, hydra, cewl |
kali-tools-wireless | ~250 MB | aircrack-ng, kismet, reaver, wifite |
kali-tools-reverse-engineering | ~600 MB | radare2, ghidra, gdb-peda, binwalk |
kali-tools-exploitation | ~150 MB | metasploit-framework, sqlmap, beef-xss |
kali-tools-sniffing-spoofing | ~80 MB | wireshark, tcpdump, ettercap, dsniff |
kali-tools-post-exploitation | ~100 MB | empire, mimikatz, weevely |
kali-tools-forensics | ~700 MB | autopsy, volatility, sleuthkit, chkrootkit |
For a 32 GB SD or eMMC, install only the metapackages relevant to your loadout. For an 8 GB Pi-OS-on-Lite + microSD, even one large metapackage may be tight.
4.4 Pen-test first-30-minutes setup
After flashing Pi OS + adding Kali tools:
# Update package list:
sudo apt update && sudo apt full-upgrade -y
# Install your Kali metapackage subset (example — wireless audit + web):
sudo apt install -y \
kali-tools-wireless \
kali-tools-information-gathering \
kali-tools-web \
kali-tools-passwords
# Install supporting infra:
sudo apt install -y \
macchanger \
aircrack-ng \
nmap \
metasploit-framework
# Disable WiFi power-save (avoid losing monitor mode mid-capture):
echo 'wifi.powersave = 2' | sudo tee /etc/NetworkManager/conf.d/wifi-powersave.conf
sudo systemctl restart NetworkManager
# Set up a working directory:
mkdir -p ~/projects/pentest/{captures,reports,scripts}
# Enable monitor mode capability (Vol 8 will cover this in detail):
sudo airmon-ng check kill # kills NetworkManager + wpa_supplicant — careful
sudo airmon-ng start wlan0
# wlan0mon now exists for monitor-mode work
Vol 8 picks up here with the actual penetration-testing workflows. Vol 5’s job is just to get you to a Kali-tooled prompt.
5. Pen-test Alternatives — ParrotOS, BlackArch
Kali is the dominant pen-test distribution but not the only one. Two alternatives worth knowing about.
5.1 ParrotOS
ParrotOS is a Debian-based security distribution with a slightly different philosophy:
- MATE or Xfce default desktop — lighter than Kali’s GNOME default.
- Privacy emphasis — built-in AnonSurf for traffic anonymisation.
- Forensics tools alongside offensive tools — Parrot ships forensics-mode that prevents auto-mounting of disks.
- Smaller package set than Kali but more curated.
- Lighter on resources — works better on the uConsole’s 2-4 GB CM4 setups.
ARM image: https://parrotsec.org/download/ — look for “Parrot Security ARM64”.
Install path (similar to Kali Path A):
unxz parrotsec-security-amd64.img.xz # for x86; for arm:
# Look for the ARM64 filename
sudo dd if=parrotsec-security-arm64.img of=/dev/sdX bs=4M status=progress conv=fsync
Same caveat as Kali: no Clockwork patches. Either rebuild kernel or use Path-B-style addition to Pi OS.
The Pi OS + Parrot equivalent of kali-linux-arm doesn’t exist as cleanly — Parrot doesn’t ship metapackages in the apt repository the way Kali does. You install individual tools as needed.
For users who specifically want Parrot’s privacy-first defaults: install Parrot’s image. For users who want pen-test tools without the Kali ecosystem: install Pi OS and add tools individually.
5.2 BlackArch ARM
BlackArch Linux is an Arch-based security distribution with the largest tool count (~3000 tools) of any pen-test distro. It’s available as either a full image or as a repository overlay on top of Arch Linux ARM.
For the uConsole, the path is:
- Install Arch Linux ARM (§7.3 below).
- Add the BlackArch repository:
# Bootstrap the BlackArch keys:
curl -O https://blackarch.org/strap.sh
chmod +x strap.sh
sudo ./strap.sh
# Update:
sudo pacman -Syyu
# Install groups:
sudo pacman -S blackarch
This is the most-tools-on-a-uConsole path. It is also the most-fragile — Arch’s rolling-release model means breakage is on you. Recommended only for experienced Arch users.
5.3 Comparison: Kali vs Parrot vs BlackArch
| Criterion | Kali | ParrotOS | BlackArch |
|---|---|---|---|
| Base distro | Debian-derived | Debian-derived | Arch |
| Tool count | ~600 | ~700 | ~3000 |
| Default DE | GNOME (heavy) | MATE / Xfce (lighter) | i3 / Openbox (TUI-friendly) |
| Stability | Rolling but curated | Rolling but curated | Bleeding edge |
| Clockwork-patch path | Pi OS + apt (best) | Pi OS + manual | Manual on Arch ARM |
| Suitable for… | most users | privacy / forensics emphasis | tool-completionists |
| RAM hungriness | medium | medium | low (TUI) |
| Documentation | excellent | good | sparse (Arch wiki helps) |
Vol 8’s Kali playbook is tooling-agnostic — most workflows work on any of the three. But the metapackage-on-Pi-OS path is the recommended starting point unless you have a specific reason to choose Parrot or BlackArch.
6. Dragon OS — SDR-Focused Ubuntu Remix
Dragon OS4 is an Ubuntu 22.04 LTS remix maintained by cemaxecuter. It pre-installs every major SDR application — at the cost of ~2 GB of disk space — saving you the work of installing them yourself. For an SDR-primary loadout, it’s a meaningful time-saver.
6.1 What’s pre-installed
| Tool | Purpose |
|---|---|
| SDR++ | Modern SDR GUI; works with RTL-SDR + HackRF + others |
| GQRX | Older SDR GUI; familiar to ham operators |
| GNU Radio | Signal processing flowgraph framework |
| GNU Radio Companion | GUI flowgraph editor |
| dump1090 | ADS-B aircraft tracking |
| gpredict | Satellite tracking + scheduling |
| multimon-ng | Decoder for various analog/digital modes |
| WSJT-X | Weak-signal ham digital modes (FT8, FT4, JT65) |
| fldigi | Multi-mode digital ham radio |
| JS8Call | Digital messaging on HF |
| pat | Winlink email over HF |
| hamlib | Radio control library (rigctl, rotctl) |
| direwolf | Software TNC for AFSK/APRS |
| dsd-fme | Digital Speech Decoder (DMR / NXDN / ProVoice) |
| op25 | P25 trunked radio decoder |
For a uConsole user whose primary loadout is SDR or ham-radio, this is ~10 hours of “install and configure” handed to you. The tradeoff: Dragon OS doesn’t have first-class Clockwork patches, so you do the kernel-side work yourself.
6.2 Install path (Dragon OS)
# Download from cemaxecuter.com (look for "Pi 4 / Pi 5 / CM4" image).
# Image filename example: dragonos-focal-pi4-arm64-2026-04-15.img.xz
unxz dragonos-focal-pi4-arm64-2026-04-15.img.xz
sudo dd if=dragonos-focal-pi4-arm64-2026-04-15.img of=/dev/sdX bs=4M status=progress conv=fsync
# Boot. Same caveat as Kali Path A — no Clockwork patches yet.
# Either rebuild kernel with patches, or copy patches over from Rex's image.
The kernel-replacement approach (the lower-effort path):
# After Dragon OS first boot, with Rex's Bookworm image also flashed to a USB drive:
# Mount Rex's image:
sudo mount /dev/sdX1 /mnt/rex-boot
sudo mount /dev/sdX2 /mnt/rex-rootfs
# Copy Rex's kernel + DTBs to Dragon OS's boot partition:
sudo cp /mnt/rex-boot/kernel8.img /boot/firmware/
sudo cp /mnt/rex-boot/*.dtb /boot/firmware/
sudo cp -r /mnt/rex-boot/overlays/ /boot/firmware/
# Copy Rex's modules:
sudo rsync -av /mnt/rex-rootfs/lib/modules/ /lib/modules/
# Update /etc/fstab if needed.
# Reboot.
After this, Dragon OS boots with Clockwork patches and the screen / keyboard work. Some Dragon OS userland may not match the kernel — minor breakage possible. Test before committing.
6.3 SDR first-30-minutes setup
After boot:
# Update:
sudo apt update && sudo apt full-upgrade -y
# Verify SDR++ launches (GUI from menu).
# Plug in your RTL-SDR or HackRF.
# Test detection:
rtl_test # for RTL-SDR
hackrf_info # for HackRF
# Add yourself to the plugdev group for non-root SDR access:
sudo usermod -aG plugdev $USER
# Reboot.
# Test reception with SDR++:
SDR++ &
# Pick the device, tune to a known FM station (e.g., 89.5 MHz NPR), confirm audio.
Vol 9 picks up here with actual SDR workflows.
7. General-Purpose Linux Distros
For users who want Linux without Pi-specific or pen-test-specific bias.
7.1 Ubuntu Server / Desktop
Ubuntu is the “obvious” choice for users coming from x86. Canonical-maintained, well-supported, broad package availability.
Pi-specific Ubuntu image: https://ubuntu.com/download/raspberry-pi.
For the uConsole:
- Ubuntu Server is the right choice for a service / appliance loadout. No DE; minimal RAM use; great for ModemManager-driven LTE base-station, Wireguard endpoint, headless RF capture.
- Ubuntu Desktop is heavier (~2 GB RAM at idle with GNOME) — not recommended on the 2 GB CM4. On 4 GB+, fine.
Same kernel-side caveat as Dragon OS — no Clockwork patches. Replace kernel with Rex’s, or rebuild from Ubuntu’s source + patches.
7.2 Debian (vanilla)
Debian is Ubuntu’s parent. More conservative; longer-supported; smaller user base.
Pi-specific Debian images aren’t always current; the standard recommendation is to use the Pi OS images (which are Debian, with Pi-specific tweaks). If you want unmodified Debian, install via debootstrap from Pi OS, or use the unofficial Debian Pi images at https://wiki.debian.org/RaspberryPi.
7.3 Arch Linux ARM
Arch Linux ARM is the rolling-release ARM port of Arch.
Install path:
# On a host (Linux):
# Format SD with bootloader-friendly partitions (one FAT32 boot, one ext4 root).
# Download Arch Linux ARM rootfs:
wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
# Extract to root partition:
sudo bsdtar -xpf ArchLinuxARM-rpi-aarch64-latest.tar.gz -C /mnt/sd-root
# Move boot files to boot partition:
sudo mv /mnt/sd-root/boot/* /mnt/sd-boot/
sync
sudo umount /mnt/sd-{boot,root}
Insert SD, power on. First-time setup:
# SSH in (default user alarm/alarm; root:root):
ssh alarm@uconsole.local
# Initialise pacman keys:
sudo pacman-key --init
sudo pacman-key --populate archlinuxarm
# Update:
sudo pacman -Syyu
# Install your DE / WM of choice:
sudo pacman -S xfce4 lightdm # for example
# Or i3, sway, plasma, gnome — your call.
Same Clockwork-patch caveat — kernel rebuild or kernel replacement required.
7.4 NixOS
NixOS is a distinctive distribution: the entire system configuration is declarative, in a single configuration.nix file. Reproducible, atomic upgrades, easy rollback. Distinctive learning curve.
For the uConsole:
# Download NixOS Pi 4 SD image:
# https://hydra.nixos.org/job/nixos/release-24.05/nixos.sd_image.aarch64-linux
unxz nixos-sd-image-24.05-aarch64-linux-installer.img.zstd
sudo dd if=nixos-sd-image-24.05-aarch64-linux-installer.img of=/dev/sdX bs=4M status=progress conv=fsync
Boot. The system comes up with a base NixOS install. Edit /etc/nixos/configuration.nix:
{ config, pkgs, ... }:
{
imports = [ ./hardware-configuration.nix ];
boot.loader.raspberryPi.enable = true;
boot.loader.raspberryPi.version = 4;
hardware.enableRedistributableFirmware = true;
hardware.deviceTree.overlays = [
{
name = "uconsole-lcd";
dtsFile = ./uconsole-lcd-overlay.dts; # you provide
}
];
environment.systemPackages = with pkgs; [
vim git tmux
brightnessctl
gnu-radio
sdrpp
];
services.openssh.enable = true;
users.users.jeff = {
isNormalUser = true;
extraGroups = [ "wheel" "audio" "plugdev" ];
};
}
Apply:
sudo nixos-rebuild switch
NixOS is a deep learning curve (Nix the language is a paradigm shift). For users who already know it, it’s a great fit for a hand-tuned uConsole config that survives reflashing. For everyone else, start elsewhere.
7.5 Manjaro ARM
Manjaro ARM is Arch with hand-holding — pre-configured DE, GUI installer, less command-line bootstrapping. Best for users who want Arch’s rolling-release but don’t want to set it up themselves.
Install path: download the Pi-specific image (Manjaro-ARM-XFCE-rpi4-22.06.img.xz or similar), dd to SD, boot. The first-run wizard handles user setup, locale, and DE selection.
Same Clockwork-patch caveat. Manjaro tends to lag the upstream Arch kernel by a few releases, so the patch backport may be slightly easier than vanilla Arch.
8. Armbian — the Radxa CM5 Path
If you’ve installed a Radxa CM5 (Vol 3 §5), you’re not on the Pi family any more — and Pi OS doesn’t run on Rockchip. The path is Armbian.
8.1 Why this is the Rockchip path
Armbian is a Debian/Ubuntu-base distribution targeting ARM single-board computers. It supports the RK3588S2 (Radxa CM5’s SoC) as a first-class platform. Critically:
- Full Rockchip kernel with proper RK3588S2 support.
- Active community of maintainers and forum support.
apt-based, so the Pi-OS muscle memory transfers.- Pre-built images for both Bullseye, Bookworm, and Jammy bases.
The Armbian-specific support for the uConsole + Radxa CM5 is community-maintained; the Radxa CM5 page lists the canonical image source.
8.2 Image source and flash
Two paths:
-
Armbian’s Radxa CM5 page:
https://www.armbian.com/radxa-cm5/. Provides Bookworm, Jammy, and Trixie images for Radxa CM5. Requires manual application of uConsole DTS patches if not already integrated. -
CrossPlatformDev’s CI:
https://github.com/crossplatformdev/uConsole-Image-Builder/releases— auto-builds for Pi CM3/CM4/CM5 and Radxa CM5 with uConsole DTS pre-applied.
For most users, the CrossPlatformDev path is easier. Flash:
unxz uconsole-radxa-cm5-bookworm-arm64.img.xz
sudo dd if=uconsole-radxa-cm5-bookworm-arm64.img of=/dev/sdX bs=4M status=progress conv=fsync
For eMMC, you use rkdeveloptool from a host (Vol 4 §8.3):
sudo rkdeveloptool db rk3588_loader_v1.13.bin
sudo rkdeveloptool wl 0 uconsole-radxa-cm5-bookworm-arm64.img
sudo rkdeveloptool rd
8.3 First-30-minutes setup (Armbian)
After first boot:
# First-run wizard handles user / locale / network — follow prompts.
# After login:
sudo apt update && sudo apt full-upgrade -y
# Install Clockwork-uConsole-aware tools (if community packages available):
sudo apt install clockwork-uconsole-tools
# Verify display / keyboard / audio works:
brightnessctl get
xinput list # should show keyboard + trackball
speaker-test -t wav -c 2 -l 1
# Install your tool stack — same packages as on Pi OS:
sudo apt install -y vim tmux git brightnessctl pavucontrol fzf ripgrep
# Set up fan curve if you have a fan mod (Vol 11):
sudo armbian-config
# Navigate: System → Fan curve
9. Gaming and Emulator-Focused Images
For the retro-gaming loadout, three pre-configured emulator distros are credible.
9.1 RetroPie
RetroPie is a Pi OS-based image with EmulationStation as the launcher and dozens of emulators (libretro-based) pre-installed. Long history; very polished; first-class Pi support.
For the uConsole, RetroPie inherits Rex’s-image kernel patches (since both are Pi-OS-derived). The keyboard’s gamepad-style layout actually fits well with RetroPie’s controller configuration.
Install:
# Download RetroPie 4.8.x ARM image:
wget https://github.com/RetroPie/RetroPie-Setup/releases/...
unxz retropie-buster-4.8-rpi4_400.img.xz
sudo dd if=retropie-buster-4.8-rpi4_400.img of=/dev/sdX bs=4M status=progress conv=fsync
Boot; first-run is EmulationStation’s gamepad-config (use the keyboard’s directional keys + buttons). After config, you’re at the main menu.
9.2 Batocera
Batocera is a Buildroot-based gaming distro. More minimal than RetroPie (smaller ROMs/saves than 8-16 GB systems can handle). Updated more frequently; better controller support out-of-the-box.
For the uConsole: Pi 4 image works on CM4; needs manual kernel patching for full panel support. Most users find the lightweight image and the breadth of supported systems compelling.
9.3 Lakka
Lakka is a LibreELEC-based distribution (the same KODI heritage). Minimal; focused; the lightest of the three. RetroArch is the only frontend.
For the uConsole, the Pi 4 image works. Kernel-patching same caveat. Best for users who want a single pure-RetroArch experience.
9.4 Comparison and gaming first-30-minutes
| Distro | Frontend | Image size | Setup complexity | Best for |
|---|---|---|---|---|
| RetroPie | EmulationStation | ~7 GB | medium | most users; broad Pi-ecosystem |
| Batocera | EmulationStation | ~3 GB | low | quick set-up; broad system support |
| Lakka | RetroArch only | ~1 GB | low | minimalist RetroArch fans |
First-30-minutes for any of them:
- Flash + boot.
- Configure controller (keyboard’s gamepad-style buttons). RetroPie/Batocera have a guided controller-config; Lakka has it under Settings → Input.
- Add ROMs. Either via SD-card-mount on a host (
/mnt/sd/ROMS/<system>/...) or over network (Samba is enabled by default in RetroPie/Batocera). - Configure shaders / scanlines / aspect-ratio if you want CRT aesthetics.
- Save state and test from the keyboard.
For PICO-8 specifically (a popular retro-style fantasy-console workload, see PicoCalc Vol 13 cross-ref), install separately:
# After RetroPie/Pi OS boot:
# Download PICO-8 (paid, $15) or use the SPLORE network demo on the free version.
# Add to RetroPie's main menu:
# RetroPie-Setup → Manage packages → Manage optional packages → pico-8
10. Multi-OS Strategies
Volume 4 §7.4 introduced these. This section is the OS-selection complement.
10.1 One OS per microSD
The simplest. Buy 4-8 microSD cards (A2 class), label each, and swap the SD slot. The uConsole’s SD slot is accessible without case-opening.
Recommended labelling:
Daily— Pi OS Trixie, your main loadout.Pentest— Pi OS + Kali metapackages.SDR— Dragon OS (or Pi OS + manual SDR install).Ham— Pi OS + WSJT-X / fldigi / pat / hamlib stack.Gaming— RetroPie or Batocera.Recovery— Pi OS Lite for emergency.Experimental— whatever you’re learning this week (NixOS / Arch / Armbian).
Cost: ~$15-30 per A2 64-128 GB card. For 7 cards, $100-200.
10.2 BerryBoot
BerryBoot is a multi-boot manager for Pi systems. Installs a small bootloader on the boot partition, then a list of OS images on the rest of the card. At boot, presents a menu and chains into the chosen OS.
Pros: one card; quick switching; consolidated SD.
Cons: some images don’t work cleanly (CM5 less well-supported than CM4); maintenance lags.
10.3 PINN
PINN (PINN Is Not NOOBS) is the maintained fork of NOOBS, the original Pi multi-boot installer. Same idea as BerryBoot with a slightly different UX.
Same pros/cons as BerryBoot.
10.4 Manual BOOT_ORDER switching
For two-OS setups: install one OS to eMMC, one to SD. Edit BOOT_ORDER to prefer SD. Hot-swap to switch.
# To boot from SD when present:
sudo rpi-eeprom-config --edit
# Set BOOT_ORDER=0xf41 (SD-first, then USB, then loop)
This is the simplest setup. Useful for “main OS lives on eMMC; rotating SD card for special-purpose loadouts.”
10.5 GPT + multi-rootfs
Advanced. One large card with a single boot partition and multiple rootfs partitions. The boot kernel-cmdline picks the rootfs. Switch via cmdline.txt edit (or via a tiny menu kernel like Buildroot’s genimage).
For a power-user with 5+ loadouts and a 1 TB SD card: this is more elegant than a card-shuffle. For everyone else, multiple cards is simpler.
11. The First-30-Minutes-After-Flash Master Checklist
Whatever OS you flash, these steps make it usable on the uConsole.
11.1 Universal steps (any OS)
# 1. Update + upgrade.
sudo apt update && sudo apt full-upgrade -y # Pi OS / Debian / Ubuntu / Kali / Parrot / Dragon
sudo pacman -Syyu # Arch / Manjaro / BlackArch
sudo nix-channel --update && sudo nixos-rebuild switch # NixOS
sudo armbian-update # Armbian
# 2. Set hostname:
sudo hostnamectl set-hostname uconsole-jeff
# 3. Set timezone:
sudo timedatectl set-timezone America/New_York # adjust
# 4. Enable SSH (if not already):
sudo systemctl enable --now ssh
# Or: sudo systemctl enable --now sshd
# 5. Configure WiFi via NetworkManager:
sudo nmcli device wifi connect "SSID" password "passphrase"
# Or: sudo raspi-config (Pi OS)
# 6. Install minimum recommended packages:
sudo apt install -y \
vim tmux git curl wget htop \
brightnessctl \
pavucontrol \
rsync \
fzf ripgrep bat
# 7. Set up baseline shell:
echo 'alias ll="ls -lah"' >> ~/.bashrc
echo 'export EDITOR=vim' >> ~/.bashrc
# 8. Disable WiFi power-save (if loadout needs sustained connections):
echo 'wifi.powersave = 2' | sudo tee /etc/NetworkManager/conf.d/wifi-powersave.conf
# 9. Set keyboard layout (if not already):
sudo localectl set-x11-keymap us pc105
# Or for Wayland: edit your compositor's config
# 10. Verify hardware:
brightnessctl get # screen
xinput list # keyboard + trackball
speaker-test -t wav -c 2 -l 1 # speakers
11.2 OS-specific quirks
A few uConsole-specific gotchas per OS:
| OS | Quirk | Fix |
|---|---|---|
| Pi OS Bookworm | Wayfire’s default menu is fussy on small screens | Use lxpanel instead of Wayfire’s bar, or switch to LXDE classic |
| Pi OS Trixie | Audio default sink may pick HDMI when HDMI cable plugged | pactl set-default-sink alsa_output.platform-bcm2835... |
| Kali (Path A) | Display may not work without kernel rebuild | Either rebuild or use Path B |
| Kali (Path B) | Kali repo packages may conflict with Pi OS; pin to priority 50 | See /etc/apt/preferences.d/kali-pin.pref example in §4.3 |
| ParrotOS | AnonSurf may interfere with normal networking | Disable AnonSurf for non-pen-test loadouts |
| Dragon OS | Older Ubuntu base; modern packages (PipeWire) may need PPA | Add ppa:pipewire-debian/pipewire-upstream |
| Ubuntu Server | snapd ships by default; uses RAM | sudo systemctl disable snapd.service if you don’t want snaps |
| Arch Linux ARM | pacman -Syu after fresh install may have keyring sync issues | Re-run sudo pacman-key --refresh-keys |
| NixOS | Configuration is in /etc/nixos/configuration.nix not the usual places | Read NixOS manual before editing |
| Manjaro ARM | First-boot wizard may fail on the small screen | SSH in headless and run manjaro-arm-postinstall from terminal |
| Armbian | armbian-config is the central config tool | Use it instead of editing config files directly |
| RetroPie | Default user is pi with empty password — change | passwd immediately |
11.3 Recommended packages for the uConsole
Beyond the universal baseline, packages worth installing on most uConsoles:
# Productivity:
sudo apt install -y zsh-autosuggestions zsh-syntax-highlighting starship
# Hardware monitoring:
sudo apt install -y lm-sensors # CPU temp / voltage
sudo apt install -y powertop # battery analysis
# Useful CLI:
sudo apt install -y jq yq xclip wl-clipboard ranger neofetch
sudo apt install -y python3-pip python3-venv
# Dev:
sudo apt install -y build-essential cmake gcc g++ gdb
sudo apt install -y golang rust # or via rustup
# Networking:
sudo apt install -y mosh openvpn wireguard nfs-common cifs-utils
# Audio (for music-production loadout):
sudo apt install -y pipewire-audio-client-libraries qjackctl
# RF (basic — Vol 9 has the full stack):
sudo apt install -y rtl-sdr soapy-sdr-tools
12. OS Migration Without Losing /home
When you switch OSes (Bookworm → Trixie, Pi OS → NixOS), you usually want to keep your home directory, dotfiles, SSH keys, and so on. The general approach.
12.1 Backup approach
Before re-flashing:
# Connect a USB drive or mount a network share for backup.
# Backup /home + system config:
sudo rsync -aHAXv \
--exclude='/home/*/.cache' \
--exclude='/home/*/Downloads' \
--exclude='/home/*/.local/share/Trash' \
--exclude='/home/*/.npm' \
--exclude='/home/*/.cargo/registry' \
/home/ /mnt/backup/home/
# Backup /etc selectively (just the bits you customised):
sudo tar -czf /mnt/backup/etc-config.tar.gz \
/etc/hostname /etc/hosts /etc/fstab /etc/wpa_supplicant \
/etc/systemd/system /etc/NetworkManager \
/etc/ssh /etc/sudoers.d
# Backup installed package list (for re-install on new OS):
dpkg --get-selections > /mnt/backup/packages.txt # Debian/Ubuntu
pacman -Qe > /mnt/backup/packages.txt # Arch
# Note your hostname, network config, custom services:
hostname > /mnt/backup/hostname.txt
nmcli connection show > /mnt/backup/nm-connections.txt
12.2 Restore approach
After flashing the new OS:
# Set hostname:
sudo hostnamectl set-hostname $(cat /mnt/backup/hostname.txt)
# Restore /home:
sudo rsync -aHAXv /mnt/backup/home/ /home/
# Adjust ownership if usernames differ:
sudo chown -R $USER:$USER /home/$USER
# Restore /etc selectively (review before applying):
sudo tar -tzf /mnt/backup/etc-config.tar.gz | head -30
# Cherry-pick what you want; don't blindly extract — incompatible config can break new OS.
# Reinstall packages (for matching OS):
sudo apt install -y $(cat /mnt/backup/packages.txt | awk '$2~/^install/ {print $1}')
# For mismatched OSes, hand-pick essentials.
12.3 Dotfiles, SSH keys, GPG keys, browser profiles
The “stable across OS migrations” payload:
| Item | Location | Notes |
|---|---|---|
.bashrc, .zshrc | ~/.bashrc, ~/.zshrc | Your shell config |
.vimrc, vim plugins | ~/.vimrc, ~/.vim/ | Editor config |
| Tmux config | ~/.tmux.conf | Tmux behaviour |
| Starship config | ~/.config/starship.toml | Modern shell prompt |
| SSH keys | ~/.ssh/ | Critical — back up ~/.ssh/id_ed25519, id_rsa, known_hosts, config |
| GPG keys | ~/.gnupg/ | Critical — gpg --export-secret-keys to back up; gpg --import to restore |
| Git config | ~/.gitconfig | User name + email + aliases |
| Firefox profile | ~/.mozilla/firefox/ | Bookmarks, history, extensions, passwords (encrypted) |
| Chromium profile | ~/.config/chromium/ | Same |
| Wireguard configs | /etc/wireguard/*.conf | VPN endpoints |
| NetworkManager | /etc/NetworkManager/system-connections/ | WiFi credentials |
| Kali captures | ~/projects/pentest/captures/ | Loadout-specific |
A useful pattern: keep a dotfiles git repo with everything except keys; symlink from ~/.bashrc etc. to the repo. After re-flash:
# Restore dotfiles repo:
git clone git@github.com:jeff/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./install.sh # symlinks everything
# Restore keys from backup (keys aren't in the dotfiles repo):
cp -r /mnt/backup/.ssh ~/.ssh
chmod 600 ~/.ssh/id_ed25519
gpg --import /mnt/backup/.gnupg/secring.gpg
Tools that automate this: GNU Stow for dotfile symlinks, chezmoi for advanced dotfile management with template support, yadm for git-based dotfiles.
13. Vol 12 Cheatsheet Updates
The following one-pagers go into Vol 12:
- §4 (OS install one-liners):
ddflash,rpi-imagerGUI, the install paths from §3.4 / §6.2 / §7.3. - §10 (Common apt / pacman / nix one-liners): update, upgrade, install, search, remove for each package manager.
- §11 (First-30-minutes checklist): the universal steps from §11.1 + the recommended packages from §11.3.
- §15 (Error → fix matrix): the OS-specific quirks table from §11.2.
- §22 (Resources): the OS download URLs from §14.
14. Resources
| Source | URL |
|---|---|
| Pi OS (download) | https://www.raspberrypi.com/software/operating-systems/ |
| Pi OS Bookworm forum (Rex) | https://forum.clockworkpi.com/t/bookworm-6-6-y-for-the-uconsole-and-devterm/13235 |
| Pi OS Trixie forum (Rex) | https://forum.clockworkpi.com/t/trixie-6-12-y-for-the-uconsole-and-devterm/19457 |
| CrossPlatformDev image builder | https://github.com/crossplatformdev/uConsole-Image-Builder/releases |
| Kali Linux ARM | https://www.kali.org/get-kali/#kali-arm |
| Kali metapackages reference | https://www.kali.org/docs/general-use/metapackages/ |
| ParrotOS | https://parrotsec.org/ |
| BlackArch | https://www.blackarch.org/ |
| Dragon OS | https://cemaxecuter.com/ |
| Ubuntu (Pi 4) | https://ubuntu.com/download/raspberry-pi |
| Debian Pi page | https://wiki.debian.org/RaspberryPi |
| Arch Linux ARM | https://archlinuxarm.org/ |
| NixOS | https://nixos.org/download.html |
| Manjaro ARM | https://manjaro.org/download/ |
| Armbian (Radxa CM5) | https://www.armbian.com/radxa-cm5/ |
| RetroPie | https://retropie.org.uk/ |
| Batocera | https://batocera.org/ |
| Lakka | https://www.lakka.tv/ |
| GNU Stow (dotfile mgmt) | https://www.gnu.org/software/stow/ |
| chezmoi | https://www.chezmoi.io/ |
| yadm | https://yadm.io/ |
| NixOS manual | https://nixos.org/manual/nixos/stable/ |
| Arch Wiki (general Linux reference) | https://wiki.archlinux.org/ |
15. Footnotes
(Footnotes are listed inline above; this section is a placeholder anchor for the index.)
16. Index
A — apt — §3.4, §11.1. AnonSurf — §5.1. Arch Linux ARM — §7.3. Armbian — §8 (full chapter).
B — Backup (rsync) — §12.1. Batocera — §9.2. BerryBoot — §10.2. BlackArch — §5.2. BOOT_ORDER — §10.4 (cross-ref Vol 4).
C — chezmoi — §12.3. Comparison (pen-test) — §5.3. Comparison (gaming) — §9.4. CrossPlatformDev — §3.2, §8.2. Cross-references (Vol 4 §7.4) — §10.
D — Debian — §7.2. Decision matrix — §2.1. Decision tree — §2.3. dd flash — §3.4. Dotfiles — §12.3. Dragon OS — §6 (full chapter).
E — eMMC install — §3.4 (cross-ref Vol 4).
F — fldigi — §6.1. First-30-minutes checklist — §11 (full chapter).
G — Gaming — §9 (full chapter). Geekbench (cross-ref Vol 3) — §11. GNU Radio — §6.1. GNU Stow — §12.3. GPG keys — §12.3. GPT (multi-rootfs) — §10.5. GQRX — §6.1.
H — Hostname — §11.1.
I — i3 — §5.2. Image (download URL) — §14.
J — JS8Call — §6.1.
K — Kali metapackages — §4.3. Kali Linux ARM — §4 (full chapter).
L — Lakka — §9.3. LXDE — §3.2.
M — macchanger — §4.4. Manjaro ARM — §7.5. MATE — §5.1. Migration — §12 (full chapter). Multi-OS — §10 (full chapter).
N — nix-channel — §11.1. NixOS — §7.4.
O — Offline reference (Kiwix/Calibre) — §2.2. OS-specific quirks — §11.2.
P — pacman — §11.1. ParrotOS — §5.1. Pen-test — §4, §5. PINN — §10.3. PipeWire — §3.3 (cross-ref Vol 6 §8.4). Pi OS Bookworm — §3.2. Pi OS Trixie — §3.3. PXE (cross-ref Vol 4 §11) — N/A.
Q — qjackctl — §11.3.
R — Radxa CM5 (Armbian path) — §8. Recommended packages — §11.3. RetroPie — §9.1. Rex’s images — §3.2, §3.3. rkdeveloptool — §8.2 (cross-ref Vol 4 §8.3). rpi-imager — §3.4. rsync (migration) — §12.
S — Samba — §9.4. SDR++ — §6.1. SDR loadout — §6 (full chapter). SSH keys — §12.3.
T — Tmux — §11.3.
U — Ubuntu — §7.1. Update commands — §11.1.
V — vim — §11.3.
W — Wayfire — §3.3 (cross-ref Vol 6 §4.4). WSJT-X — §6.1.
X — xinput list — §11.1. Xfce — §5.1.
Y, Z — None.
Footnotes
-
https://forum.clockworkpi.com/t/bookworm-6-6-y-for-the-uconsole-and-devterm/13235. The maintainer (forum handle “Rex”) has been the canonical CM4/CM5 image source since 2024. Build provenance is documented in the thread. ↩ -
https://forum.clockworkpi.com/t/trixie-6-12-y-for-the-uconsole-and-devterm/19457. Kernel 6.12.y as of mid-2026; Trixie userland. ↩ -
Kali metapackages reference:
https://www.kali.org/docs/general-use/metapackages/. The full list is much larger; the subset below is the practically useful one for the uConsole’s RAM and storage envelope. ↩ -
https://cemaxecuter.com/. Maintainer “cemaxecuter” is a long-time RF-tools contributor; Dragon OS has been the de-facto SDR-focused Ubuntu remix since 2018. Pi/ARM images are released alongside x86 images. ↩