The native GeForce NOW client hard-requires Vulkan video-decode
extensions (error 0xC0F11312) and the BC-250 has no video decode
hardware — unfixable at driver level. Replaced with:
- Chromium + a GeForce NOW web-app shortcut (works on Linux Chromium
without UA tricks nowadays; CPU-decoded 1080p)
- Moonlight client for streaming from a home Sunshine host (planned:
VM with RTX 3050 passthrough on the R730)
Drops bc250-gfn-install service/script.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sunshine (running in the kid's session) needs /dev/uinput — group
'input' — to create the virtual mouse/keyboard for Moonlight remote
control; without it the input stream hangs at "establishment" while
video works. Found on hardware; on-box fix is usermod -aG input.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sunshine segfaults (exit 139, crash loop) probing the Vulkan H.264
encoder on the BC-250 — the GPU has no VCN/video-encode hardware and
the failed probe crashes instead of falling through. Software x264 is
the only viable encoder on this chip anyway. Seeded only if no config
exists, so user edits are never overwritten.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Sunshine flatpak in first-boot list; autostarts with the console
account's session (bc250-sunshine-autostart, honors CONSOLE_KID_USER)
- bc250-personalize: one-shot display names from /etc/bc250-console.conf
- build-console.sh + console.env(.example): fill in usernames/passwords/
display names, get a fully personalized ISO — no post-install steps
beyond per-account logins. Generated files git-ignored (credentials)
- Docs: Moonlight is the remote-admin path; RDP marked blocked by the
mutter cursor-metadata screencast crash on GFX1013
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
GNOME Remote Desktop defaults RDP sessions to view-only; the whole
point of RDP here is the parent driving the session to install games.
Found during first real RDP setup on hardware.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Autostart reads CONSOLE_KID_USER from /etc/bc250-console.conf
(default: kid), so renaming the account is a pure on-box operation —
documented in OPERATIONS.md.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bazzite-steam-bpm races waitpid against Steam PIDs that may already
be gone when quitting a lingering instance, and its `if ! waitpid`
clobbers $? so every failure reports code=0 via zenity. Replace the
call with our own quit-and-wait (pgrep scoped to the kid's uid) and
launch bazzite-steam steam://open/bigpicture directly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The v1 module's post-install notification runs `sudo -u` with every
human user newline-joined into a single name ("kid\nparent"), which
fails and kills the service mid-install on any box with two accounts.
Hit on first hardware boot; apps after the first never installed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
First hardware boot: the service gave up after ~12s of no network,
failed with a cryptic "Error 0" desktop popup, and left all baked
flatpaks uninstalled (its timer only re-arms on reboot). The GFN
installer's own retry loop succeeded once the network arrived.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Pinouts sourced from mothenjoyer69/bc250-documentation hardware.md.
Power switch = fused+switched IEC inlet on the AC side, with
AUTO_PWRON1 jumper 1-2 so the board boots when 12V appears.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
NVIDIA's client ships from their own flatpak repo (com.nvidia.geforcenow),
which default-flatpaks can't add alongside Flathub — so a stamped oneshot
service installs it on first boot with retries. Docs note the BC-250 has
no hardware video decode: streams are CPU-decoded, keep to 1080p.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bazzite base already covers the rest (max_map_count, zram, gamemode,
tuned profiles); governor stock curve (1000-1850 MHz, 85C throttle)
left as-is — ceiling tuning is documented in OPERATIONS.md for after
on-hardware thermal testing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Mask all suspend paths + dconf no-sleep/no-lock defaults (local + GDM):
the console must stay reachable over SSH/RDP at all times
- Autostart Steam Big Picture Mode for the kid account only
- Enable tailscaled (idle until 'tailscale up')
- First-boot flatpaks: ProtonUp-Qt, Heroic, RetroDECK
Already in the bazzite base, so not added: Steam, Tailscale, automatic
updates (uupd.timer), Firefox via first-boot flatpak manager.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
VM smoke test of the first ISO reached GDM but no user existed
(bootc-image-builder ISOs install unattended; gnome-initial-setup is
not in the bazzite base). iso-config.toml creates parent (wheel) and
kid with placeholder passwords to change on first login.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
First successful build 2026-07-06: image kernel-7.0.9-ogc3.2.fc44,
5 GB installer ISO via bootc-image-builder. Records the docker-specific
workarounds: native dockerd (not Docker Desktop), skopeo copy into
containers-storage, terra GPG key mount, --rootfs btrfs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Based on 62fixolab/Latest-Bazzite-AMD-BC-250-Patched-Images @ 347fd4d.
Adds on top of the fork:
- recipes/bc250-console-gnome.yml: governor + gnome-remote-desktop +
openssh-server, sshd enabled, hhd.service masked, no signing module
(local build + ISO path)
- files/console/usr/bin/bc250-remote-setup: one-time on-box SSH/RDP setup
- files/console/usr/lib/bootc/kargs.d/50-bc250-ttm.toml: ttm memory kargs
- BUILD-CONSOLE.md: build -> ISO -> validation instructions
files/console/ is separate from files/system/ so the 40-CU unlock tooling
stays out of this stable 24-CU image.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>