embedded fleet platform

One stack.Full fleet.Zero royalties.

Xenolith Fleet OS is a minimal Linux appliance and control plane for kiosk and HMI devices — native Vulkan UI straight to the display, OTA for app and system, no per-device engine royalties.

60fps UI + ~150 MB image + fleet/OTA — one product instead of Qt + Yocto + Mender.


60 fps
on Raspberry Pi 4 GPU
~150 MB
system image (GPU)
<512 MB
RAM in use
$0
per-device engine royalty

Runs on
Raspberry Pi 4 aarch64 · V3DVQEMU aarch64 · lavapipeRockchip roadmapARM · RISC-V BSP targets

the gap

Three problems, one broken stack

Cost & fragmentation

OEMs stitch together a GUI framework, a Yocto image, an OTA vendor and an MDM — four invoices, months of NRE, and per-device royalties that kill mid-volume economics.

Licensing & sovereignty

Commercial GUI stacks and platform SDKs are unavailable or sanctioned for many manufacturers. Locked-down devices cannot meet LGPL relink obligations — and critical infrastructure needs trusted stacks.

Footprint & performance

Chromium kiosks burn >512 MB idle and crawl on Pi-class hardware. Android needs gigabytes and 30–60 s boots. Compositor stacks lose 30–40% of frame time before your UI draws a pixel.


lifecycle

Develop → Flash → Run → Fleet OTA

One integrated path from a desktop Xenolith app to a fleet of immutable appliances — without a separate embedded toolchain or container runtime on the device.

Develop.

Build and debug the same app on Windows, Linux or macOS with the Xenolith SDK.

Flash.

Produce a bootable image — rootfs + kernel + your binary — without a Yocto consulting project.

Run.

One native aarch64 binary presents straight to DRM/KMS via Vulkan. No compositor, no container.

Fleet OTA.

Push app updates without reboot; push system images with A/B slots and automatic rollback.

Develop Flash Run Fleet OTA

Desktop equals device. The Linux aarch64 binary is the same application you already ran on the desktop — not a port.


core os

A kiosk appliance, not a full distro

Immutable Linux with integrity, direct display output, and a footprint that fits cheap flash and tight RAM budgets.

Direct DRM/KMS

Vulkan presents through VK_KHR_display — no X11, Wayland or compositor layer between your scene graph and the panel.

Immutable + verified

squashfs root with dm-verity. Read-only system partition; app and fleet state live on a separate data volume.

GPU or software ICD

Hardware Vulkan (V3DV on Pi) for 60 fps, or lavapipe for QEMU and boards without mature drivers — one ICD per image variant.

One native binary

Payload is a Xenolith ELF straight into KMS — not a container, snap or browser. App swap is a file copy.


fleet control

Monitor, update, diagnose — at fleet scale

A device agent plus operator console for the full appliance lifecycle: provision, heartbeat, OTA, console, decommission.

UpdateApp

Push a new ELF into the data slot and restart the kiosk process — no reboot, no full image rebuild.

UpdateSystem

Write a squashfs to the inactive A/B slot, reboot, verify, and roll back automatically on boot failure.

Telemetry & heartbeat

Devices check in with status and metrics so the console shows what is online, stale or failing.

Operator console

Web dashboard with device list, deploy actions and a remote SSH terminal for diagnosis.


developer experience

Flash once. Iterate in seconds.

Desktop = device

The aarch64 Linux binary is the same Xenolith app you debug on the desktop — no emulator gap, no device-only rewrite.

App swap

After the OS is flashed, replace the kiosk binary over SSH or FAT in seconds. Full OS rebuild only when the base image changes.

Image without Yocto NRE

xl-builder / flashing SDK turns rootfs + kernel + app into a bootable SD/USB image — minutes, not a 3–6 month Yocto project.

AI-native tooling

AGENTS and SKILLS ship with the stack so coding agents know the build system, deploy path and fleet workflows out of the box.


xenolith remote

Thin client when data must stay off the device

Optional remote rendering over QUIC: the terminal draws pixels; application logic and sensitive data stay on the server — for payment kiosks, ATMs and medical terminals.

Experimental — scene serialization and transport exist; not the primary fleet path yet.


compare

Honest contrast

Same golden-image pattern as mature fleets — differentiation is the load model and the integrated GUI stack.

Xenolith Fleet OSQt / Boot to QtChromium kioskAndroid + MDMbalena / Torizon
UI modelNative Vulkan → KMSQt + compositorBrowserAndroid UIContainerized app
Image size~120–150 MBGB-class YoctoGB-class2–4 GB+Container layers
Engine royalty$0Per-device / seat$0$0N/A
Fleet / OTABuilt-inAdd Mender etc.DIY / MDMMDM subscriptionStrong
Desktop = deviceYesNoNoNoPartial

where it fits

Built for unattended GUI devices

Self-service & POS

Kiosks, checkout terminals and municipal machines that need snappy UI on budget ARM boards.

HMI & SCADA panels

Operator panels where GPU UI and a trusted software stack matter more than a desktop OS.

Digital signage

Reliable playback without a Chromium memory leak and a nightly cron restart.

EV, parking, tickets

Outdoor and semi-outdoor appliances with tight BOM, flash and boot-time budgets.

High-assurance terminals

Payment and medical use cases that prefer thin-client remote rendering so data never rests on the device.

Import-ready stacks

Manufacturers who need a sovereign toolchain path — own LLVM toolchains, GOST crypto in the stack, registry-ready roadmap.


status

What's shipping — and what's next

We'd rather show measured results than oversell. Here is what runs today versus what is still being productized.

shipping

RPi4 appliance + GPU path

Bootable images with V3DV (60 fps) and lavapipe variants; immutable root and kiosk app slot verified on hardware.

shipping

App OTA & app-swap

Push a new binary without reflashing the OS — over the fleet path or direct SSH/FAT swap for developers.

partial

Fleet Control PoC

Device registry, heartbeat, UpdateApp/UpdateSystem, web console and QEMU multi-device demo — hardening toward production PKI.

in development

QUIC gateway & instant-on

Mutual-TLS device portal, canary rollouts, and boot-to-interactive targets (including 1–2 s instant-on goals).


next step

Pilot the fleet.Ship the appliance.

For OEM and integrator teams building kiosks, HMI panels and signage fleets who want one stack for UI, image and OTA — without per-device engine royalties. Open engine underneath; Fleet OS for the appliance lifecycle.

Request a pilot Xenolith Engine GitHub