Skip to content

Distribution: build a reproducible TrainerOS system image on top of ArmadaOS #70

Description

@EriArk

Distribution update — superseded product boundary: #118 replaces the old "prepared ArmadaOS image is the only supported delivery form" decision. This issue still owns the turnkey prepared-image path, but the same canonical TrainerOS release state must also be reachable through the supported SteamOS/Bazzite convergence installer. See #118–#125.

Product decision

This issue delivers the prepared TrainerOS system-image option based on ArmadaOS. It is not the only supported installation method; #118 also provides a convergent installer on compatible SteamOS/Bazzite hosts.

Image/base Linux ownership ends at the host boundary: ArmadaOS provides the low-level hardware/Linux stack; TrainerOS's shell, integrations and managed runtime bundle follow an independently versioned TrainerOS Software release (#119/#153/#154). The image includes a compatible software baseline for first boot, not a promise to reflash the base when software changes.

Goals

Produce a reproducible image definition that installs a known TrainerOS stack from a clean device state and boots directly into the first-run TrainerOS experience.

The image should include or configure, as appropriate:

  • the supported ArmadaOS base;
  • the TrainerOS application and dedicated session;
  • Gamescope/session supervisor integration;
  • controller/input helpers and Home/Guide interception;
  • required system dependencies;
  • the validated emulator/runtime baseline;
  • default filesystem/library locations;
  • recovery / maintenance access;
  • separate Linux image version I and bundled baseline TrainerOS Software version S visible to support tooling.

User ROMs, BIOS files, private saves, account credentials and private artwork are never baked into the public image.

Reproducibility and provenance

The build must pin or otherwise record the exact upstream Armada base and every TrainerOS-owned layer/artifact needed to reproduce a release.

Image I must have its own machine-readable base manifest and hashes; reference a compatible baseline Software S from #119, preserving independent image vs software update identities.

Do not depend on undocumented mutations performed only on the maintainer's personal Flip.

First boot

A freshly flashed supported device should reach TrainerOS first-run setup without requiring a shell command.

The image must preserve an explicit maintenance/recovery path even when TrainerOS is the normal/default experience.

Boot branding work from #41 should compose with this image rather than require ad-hoc post-install edits.

Device boundary

The first official image targets the validated Retroid Flip 2 / ArmadaOS device profile.

Future devices should reuse the image pipeline plus their explicit device profile rather than accumulate conditionals in one opaque build.

Acceptance

  • A clean supported device can be flashed from the published image and reach TrainerOS first-run setup.
  • The image can be reproduced from repository-controlled definitions plus documented upstream inputs.
  • Separate image/base and bundled TrainerOS Software identities/hashes are recorded; a later S update need not rebuild I.
  • TrainerOS session, input integration and recovery paths are present without manual post-install surgery.
  • User ROMs/BIOS/saves/secrets are absent from the distributed image.
  • Maintenance mode and rollback/recovery remain reachable if TrainerOS fails to start.
  • Physical clean-flash validation is performed before an image is called releasable.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions