Files
ps5-linux-image/distros/bazzite
mia26MAjFm e1f17f7e38 fix: export CHROOT/DISTRO/KVER to build-rootfs.sh + sanity guard (#21)
The dispatch in #20 ran build-rootfs.sh without exporting $CHROOT, so
inside the script it was empty — meaning '/' expansions like
`mv "$UNPACK/rootfs"/* "$CHROOT/"` resolved to '/' and the bazzite
rootfs went into the build container's root. Container-contained, but
the build failed with a confusing 'Device or resource busy' on
/etc/resolv.conf.

Two fixes:
- entrypoint exports DISTRO/CHROOT/KVER/ROOT_LABEL/EFI_LABEL when
  calling the per-distro script, and asserts $CHROOT non-empty.
- bazzite + batocera scripts have a top-of-file guard that bails if
  $CHROOT is unset, missing, or '/'.

Co-authored-by: mia26MAjFm <mia26MAjFm@users.noreply.github.com>
2026-06-20 12:43:53 -04:00
..

bazzite / bazzite-deck

Adds support for Bazzite (uBlue's gaming-focused atomic Fedora) and Bazzite-Deck (Steam Deck UI variant) on PS5 hardware.

These are OCI atomic images — distrobuilder doesn't apply. distros/bazzite/build-rootfs.sh runs in place of the distrobuilder call:

  1. skopeo copy docker://ghcr.io/ublue-os/bazzite:stable → OCI archive
  2. umoci unpack → flat rootfs into $CHROOT
  3. Promote /usr/etc defaults into /etc
  4. Install the linux-ps5 RPM via rpm-ostree/dnf, then mask the rpm-ostree services (we're a flat fs now)
  5. Set up grow-rootfs systemd unit + DTM-TA-race amdgpu reprobe udev rule

bazzite-deck is built from ghcr.io/ublue-os/bazzite-deck:stable via the same script (the case "$DISTRO" in bazzite-*) branch generates the OCI reference automatically). All distros/bazzite-deck/* files are symlinks into distros/bazzite/.

Build locally

./build_image.sh --distro bazzite
./build_image.sh --distro bazzite-deck

Image size bumped to 24 GB (default). Compressed output is large (~3-5 GB .img.xz) — too big for a 2 GB GitHub release asset, so this image is not auto-published by the CI workflow.