SeaGL / av-linux

ostree-based, custom-built Linux distribution for running A/V broadcast
Apache License 2.0
2 stars 0 forks source link

av-linux

Purpose

This is a purpose-built, atomic/immutable Linux operating system designed to have everything needed to run live broadcasting on-site at SeaGL. It is intended to be installed on laptops that run broadcasting in each talk room, and is based on Universal Blue which is itself based on Fedora Silverblue.

This template includes a Containerfile and a GitHub workflow for building the container image. Commits trigger container builds that are pushed to GitHub Container Registry.

Prerequisites

Working knowledge in the following topics:

Installation

This procedure was tested on one of the conference's streaming laptops; you may need to adjust otherwise.

  1. Write and boot a Fedora Silverblue (as of October 2024, version 40) installer.
  2. Select Automatic partitioning and check the checkbox to free space by removing or resizing existing partitions.
  3. When prompted, remove all partitions, including and especially the EFI System Partition.
  4. Run the installer.
  5. Reboot.
  6. Go through setup.
    1. Connect to WiFi.
    2. Leave location services enabled.
    3. Enable Third-Party Repositories and click Next.
    4. Set Full Name to "SeaGL Provisioning".
    5. Accept the default username of seaglprovisioning.
    6. Set the password to password.
  7. Apply firmware updates in GNOME Software, if applicable. This is very important as once you've switched to A/V Linux, you can't apply these anymore due to EFI partition naming shenanigans.
  8. In a terminal, run sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/seagl/av-linux:latest. You can monitor progress of this step with rpm-ostree status and sudo journalctl -fu rpm-ostreed.service.
  9. When rpm-ostree status reports Status: idle, reboot.
  10. In a terminal, rebase to the signed image with sudo rpm-ostree rebase ostree-image-signed:docker://ghcr.io/seagl/av-linux:latest.
  11. When rpm-ostree status reports Status: idle, reboot.

How to Use

Containerfile

This file defines the operations used to customize the selected image. It contains examples of possible modifications, including how to: