Open-source project
armada-os/armada avatar
armada-os/armada

Armada: a SteamOS-like Linux for ARM handhelds

SteamOS-like ARM handheld distro

1,504 stars92 forksShellNOASSERTION

At a glance

What is it?
Armada assembles a Fedora bootc image with ARM64 Steam, FEX translation and KDE Plasma for a short list of supported ARM gaming handhelds. The install path rewrites your bootloader, so the supported-device list is the whole decision.
Who is it for?
Adopt Armada only if your exact handheld model appears on the supported-device list and you are willing to flash an SD card first, keeping internal storage untouched until you have confirmed boot, Wi-Fi, controller and suspend on your unit.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The gap Armada is trying to fill on ARM handhelds

Handheld gaming PCs built on x86 have a reference answer: SteamOS and its derivatives. ARM handhelds do not. The vendor firmware on those devices is usually an Android build, and the x86 Linux gaming stack does not run on it unchanged, because the games are compiled for x86-64 and the hardware is ARM64.

Armada is an attempt to close that gap with a single image. It is a gaming-focused Linux distribution built on Fedora bootc, with device support derived from ROCKNIX. The target is a console-first experience: boot into a Steam interface, launch games, and drop to a KDE Plasma desktop when you need a browser, a file manager or a terminal. The project describes the result as Steam, FEX, Proton and a full Linux desktop on supported ARM64 gaming handhelds.

The audience is narrow by design. This is for people who own one of the handhelds on the supported-device list and want to run their Steam library on it under Linux rather than Android. It is not a general-purpose ARM distribution, and it is not a way to turn an unsupported tablet or single-board computer into a console.

How the image is put together: Fedora bootc, ROCKNIX device support, FEX for x86 games

The repository is an image build, not an application. The top level holds a Containerfile, a Justfile, and directories named build_files, disk_config, post_process, system_files, abl, audio_topology, decky, tests and workers. That layout matches the README's description: this repository assembles the Armada bootc image and its flashable disk images.

Two upstreams do most of the work. Fedora bootc supplies the image-based operating system model, which is what makes over-the-air operating system updates possible: the system is delivered as an image rather than assembled package by package on the device. ROCKNIX supplies the device support, meaning the board-specific pieces such as bootloader handling, kernel configuration and hardware quirks for each handheld.

The compatibility layer is FEX, an x86-64 to ARM64 translator, paired with Proton. Proton is the compatibility layer that runs Windows games on Linux; FEX lets those x86-64 binaries execute on an ARM64 CPU. That combination is why the project can claim ARM64 Steam with FEX translation and Proton compatibility. Translation is not the same as native execution, and the README does not publish performance figures or a compatibility database, so per-game results are something you have to determine on your own hardware.

Above that sits the user-facing layer: Gaming Mode for a controller-driven session, KDE Plasma for Desktop Mode, and Armada Control for handheld-specific settings such as power, fan, controller and display calibration, plus per-game compatibility settings.

Installing Armada OS: SD card first, internal storage later

The README does not inline installation steps. It points to the documentation site, and the primary path is flashing to an SD card. Before anything else, confirm your device is on the supported-device list, because the image is built per device and an unlisted handheld is not covered.

The build recipes in the repository are for developers, not for installing on a handheld. They require just and Podman, and the README gives this example:

bash
just check   # Run the test suite and check recipe formatting
just build   # Build the local bootc container image
just --list  # Show disk-image, VM, and other development recipes

Running `just --list` prints the available recipes, including the disk-image and VM targets the README mentions. That is useful if you want to inspect what the image contains or produce your own build; it is not the supported route for getting Armada onto a retail handheld.

For the actual install, follow the flashing guide at armadaos.dev/getting-started/flashing-to-an-sd-card/. The README's warning is explicit: installation requires bootloader changes that can brick a device, corrupt partitions, or cause data loss. Back up your data and read the complete installation guide before proceeding. Booting from SD card is the lower-risk first step, with internal-storage installation as an option once you know the hardware works.

Where Armada is the wrong tool

The README labels Armada prototype software under active development, and the warning above the About section is not boilerplate. Bootloader changes are involved, and the failure modes named are bricking, partition corruption and data loss. If a device is your only machine, or the one you rely on for work, that risk profile is a bad fit.

The supported-device list is the second boundary. Device support is derived from ROCKNIX, so Armada inherits that project's hardware coverage rather than extending it. A device that ROCKNIX does not cover is not going to work here, and the documentation site is described as the source of truth for device support, installation, updates, current limitations and recovery. If your model is not listed, stop there.

The third limitation is the translation layer itself. Games run through FEX and Proton rather than natively, and the README publishes no compatibility list or performance numbers. Anything with anti-cheat, kernel-level drivers or heavy CPU dependence is a reasonable thing to be sceptical about until you have tried it on your own unit. The project also points readers at a known-issues page, which is the honest place to look before assuming a given feature works.

Finally, the repository does not document rollback. The README covers flashing, updating and troubleshooting, but it does not describe how to return a modified device to its original firmware. Treat that as an open question to resolve from the documentation before you start, not after.

Armada against Bazzite and the x86 SteamOS derivatives

The obvious comparison is Bazzite, which packages a SteamOS-like experience for x86 handhelds and desktops. The difference is not packaging taste, it is the CPU architecture. On x86, Bazzite runs games natively through Proton with no instruction translation in the path. On ARM, Armada has to translate x86-64 code through FEX before Proton's work even begins. That extra layer is the price of running an existing Steam library on ARM hardware, and it is the reason Armada exists as a separate project rather than a configuration of an existing one.

A second difference is the update model. Bazzite is built around an image-based Fedora Atomic base with its own tooling. Armada uses Fedora bootc, which keeps the same image-based idea but ties updates to the bootc mechanism. For a user, both mean the system arrives as a unit rather than as a stream of individually upgraded packages. The practical consequence is that an Armada update replaces the OS image, and the README does not describe a rollback path if a new image misbehaves on your device.

ROCKNIX is the other reference point, and it is closer to a sibling than an alternative: Armada derives its device support from ROCKNIX. If your goal is emulation and a lightweight handheld front end rather than a Steam library, ROCKNIX itself may be the simpler choice. Armada's bet is that you specifically want Steam, Proton and a KDE desktop on ARM.

Maintenance, updates and what the licence actually covers

The last push to the repository was on 2026-09-17, and the most recent release is tagged 20260915, published on 2026-09-16. Releases in this project are dated tags rather than semantic versions, and the cadence visible in the release list is roughly weekly to fortnightly. That is a fast-moving image, which cuts both ways: fixes arrive quickly, and so do changes that can affect a working device.

Updating is documented separately from installation, at armadaos.dev/getting-started/updating/. Because Armada is an image-based OS, an update is a new OS image rather than a package-level upgrade. The README does not document how to roll back to a previous image, so the practical maintenance question is what you do when an update breaks boot or a device feature on your specific handheld.

On licensing: the README states that Armada's own code is licensed under GPL-2.0-or-later, and that bundled components retain their upstream licenses, with details in LICENSE.md. The repository's licence metadata is reported as NOASSERTION, which is a GitHub classification rather than a statement about the project's terms. The distinction matters if you plan to redistribute a built image: your own modifications to Armada's code fall under GPL-2.0-or-later, while the bundled components, which include Steam, Proton, FEX and KDE pieces, carry their own terms. Read LICENSE.md and the upstream licences before shipping anything; this is a description of what the repository says, not legal advice.

Editorial conclusion

Adopt Armada only if your exact handheld model appears on the supported-device list and you are willing to flash an SD card first, keeping internal storage untouched until you have confirmed boot, Wi-Fi, controller and suspend on your unit. Skip it if you need a daily driver with documented rollback, or if your device is not listed: the README calls the project prototype software and warns that installation requires bootloader changes that can brick a device, corrupt partitions, or cause data loss. Before flashing, read the installation guide and the known-issues page at armadaos.dev, and check whether the current release notes name your device.

Frequently asked questions

How to install Armada OS on a supported handheld?

The documented path is flashing to an SD card, following the guide at armadaos.dev/getting-started/flashing-to-an-sd-card/. Installation from internal storage is an option afterwards. The README warns that installation requires bootloader changes that can brick a device, corrupt partitions, or cause data loss, so back up your data and read the full guide first.

What exactly is Armada?

Armada is a gaming-focused Linux distribution for ARM64 handhelds, built on Fedora bootc with device support derived from ROCKNIX. It brings ARM64 Steam with FEX translation and Proton compatibility, a Gaming Mode and a KDE Plasma desktop to supported devices.

How to use Armada on a handheld?

Once installed, Armada boots into a console-first Gaming Mode for launching Steam games, with a full KDE Plasma desktop available as Desktop Mode. Handheld power, fan, controller and calibration controls, plus per-game compatibility settings, are handled through Armada Control.

How many ships are in an Armada?

That question is about the naval meaning of the word, not this project. The Armada repository is a Linux distribution for ARM handhelds, and its README says nothing about fleet sizes.

Official sources

  1. armada-os/armada on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Community notes

Community notes