Skip to content
DaedalusHyperboreus edited this page May 16, 2024 · 11 revisions

Zero downtime updates

With ChimeraOS there is no need to wait at frustrating OS update screens. Simply accept the new update in the SteamUI when you are ready and continue playing. While updating, a new version of the operating system is installed while the current version continues to operate uninterrupted. Once you reboot your system the new version of the operating system will be activated and the old version will be deleted. Thanks to this system, there is also a much lower risk of an update going wrong compared to traditional operating systems, and the entire process can be done without a keyboard and mouse.

The ChimeraOS update system is called frzr, which deploys pre-built btrfs snapshots. This essentially hijacks the btrfs backup system to enable seamless deployments of new system images. These images are pre-tested and bug-fixed by the development team, ensuring fewer bugs reach our users than traditional update methods.

Because of this system, pacman is disabled by default. It is available for advanced users and developers if needed, but it is not recommended for general use and any changes you make will be replaced by the next update.

For a full technical overview of this system, see the frzr repository.

Game fixes

ChimeraOS strives to make as many games as possible playable out of the box for a comfortable console-like experience.

To that end, ChimeraOS includes an automated system that applies various fixes and improvements to games. These fixes range from setting the best Proton version, adding launch options to work around issues, or even applying patches to game files to enable higher resolutions or automatically enabling controller support.

After installing ChimeraOS on your PC, you will have a console-like device compatible with the largest game library in history.

Game artwork

There are many older Steam games with artwork that was not updated for the new Steam interface. ChimeraOS will download any missing artwork and automatically apply it to Steam, making your library look beautiful.

This is a work in progress and game artwork is not downloaded for all games yet. If you notice a game with missing artwork, please let us know!

GE Proton

GE Proton is a community version of Proton with bleeding-edge features and enhanced game support. GE Proton is not included in Steam out of the box, but ChimeraOS makes it completely seamless: just select GE Proton from the list of compatibility options in Steam, just like regular Proton. You can learn more about how this works by reading our article on this topic.

Also, thanks to our automatic game fixes feature, games that we know require GE Proton to work will automatically download and use it when the game is launched.

Remote control

ChimeraOS includes the Chimera web app which, among other features, allows you to control your system from another computer or even your phone.

You can install or uninstall non-Steam games, change the volume, control some emulator functionality, and even power off your system.

Emulation support

ChimeraOS supports many retro game platforms through RetroArch. You can play 1000s of retro games spanning the Atari 2600 to the GameCube, all out of the box (barring BIOS file requirements).

Games can be uploaded to your ChimeraOS system through the Chimera web app and are automatically added to the Steam interface for a super easy experience.

Non-Steam store support

ChimeraOS is built around Steam and Steam games, but our goal is to make as many games as possible playable out of the box. To further that goal, ChimeraOS supports third-party PC game stores where possible.

Currently, games and apps from GOG, Epic Game Store, and Flathub can all be installed via the included Chimera web app.

Resources

The main set of repositories can be found here.

Core Components

  • chimeraos: Primary repository for the operating system.
  • chimera: The ChimeraOS web interface. Formerly known as "Steam Buddy".
  • gamescope-plus: A fork of the steamos compositor with new features and compatibly fixes
  • gamescope-session-plus: Based on the SteamOS gamescope session, modified for general usage.
  • gamescope-session-steam: Component that hooks into gamescope-session-plus to run the steam interface.
  • device-quirks: Device specific fixes that will automatically be applied after the image is built, enabling greater support for hardware with conflicting fixes.
  • mesa-chiemraos: Fork of mesa with ChimeraOS specific fixes.
  • frzr: Our deployment and automatic update mechanism for operating systems that utilizes btrfs snapshots hosted on GitHub.
  • linux-chimeraos: Our custom kernel tuned for gaming.

Support Data

  • chimeraos.github.io: Web page content
  • chimera-data: Holds frequently changing data used by chimera (Proton GE lists, game tweaks, game compatibility db). Chimera automatically downloads this data at the start of the gaming session through hooks in gamescope-session. This repo is separated from the chimera repo so we can update the data without rolling new releases of Chimera or ChimeraOS.
  • install-media: Defines and builds the installation media through GitHub Actions

Videos

ChimeraOS Components

Below is a list of packages/repositories and how they fit together

chimeraos

This repository houses the main underpinnings of how the OS comes together.

├── BUILDING.md: Basic instructions on building ChimeraOS yourself  
├── build.sh: Main build script for the OS  
├── Dockerfile: Dockerfile build recipe for the OS.  
├── index.html
├── LICENSE
├── manifest
├── README.md
├── repos: Artifact of an old build process, not used anymore.
└── rootfs
    ├── etc
    │   ├── bluetooth
    │   ├── initcpio
    │   ├── locale.conf
    │   ├── locale.gen
    │   ├── mkinitcpio.conf
    │   ├── modprobe.d
    │   ├── modules-load.d: Contains system tweaks
    │   ├── polkit-1: Rules for polkit (controls system-wide privileges)
    │   ├── resolv.conf
    │   ├── sudoers.d: Sudo rule files
    │   ├── suspend-modules.conf
    │   ├── systemd
    │   └── udev: Device rules
    ├── extra_certs
    └── usr: User files

frzr

Overview

frzr is the A/B https://wiki.archlinux.org/title/btrfs[btrfs] update system which downloads system images from the ChimeraOS repo. Available channels are unstable, testing, stable. Unstable has completely untested builds directly from GitHub Actions and most people should never use it. Testing images have at least been verified to boot, but might contain problems that require manual intervention to recover from. Stable are fully tested images that should be used by everyday users.

  • Compressed image is delivered to user containing the entire basic OS
  • btrfs subvolumes
  • rootfs is read only
  • Additional software
    • Flatpak
    • custom images you can create
  • No usage of pacman (changes are reverted at next update)

File system

The design is split into a physical and user-facing file system design:

Filesystem

Physical filesystem

  • / (root) ** /deployments: Here you'll find deployments that are downloaded for updates / upgrades. ** /deployments/gameros_<verzion>: ChimeraOS versions (the entire filesystem for a given version).

  • State volumes: Handle a base state in-between updates ** /etc: Overlay. Needed to maintain settings (timezone, preferences, and so on) ** /home: btrfs subvolume ** /var: btrfs subvolume

User-facing filesystem

  • Exposed the user
  • /home and /var mounted
  • Actual / mounted to /fzr_root for the user (for update mechanisms)

Update Mechanism

  • Update is downloaded into /deployments, extracted into it's specific /deployments/chimeraos_<version> subfolder
  • Boot loader is updated to point to this new subvolume (e.g. /deployments/chimeraos_20`)
  • User reboots at time of their choosing
  • New state is mounted to the user-facing filesystem side as it was initially upon installation.

Game Compatibility

Proton

See: https://github.com/ValveSoftware/Proton

Steam Tweaks

  • Additional features available to bolster game usability with Proton
  • Gamepad support
  • Proton configuration
  • Launch options
  • Patches

Chimera app

  • Formerly known as "Steam Buddy".
  • Web frontend
  • Install games (ROMs, Flathub, EPIC Store)
  • System Actions
  • Shortcut management
  • Steam session / system event handling (restart Steam, volume, restart system etc...)
  • Toggle performance overlay (MangoHUD)