Files
bc250-console/BUILD-CONSOLE.md
T
ckochandClaude Fable 5 4e452acc7d
Build Bazzite BC-250 / Check Bazzite channel digests (push) Has been cancelled
Build Bazzite BC-250 / Build Custom Image (push) Has been cancelled
Build Bazzite BC-250 / Build Custom 40CU Image (push) Has been cancelled
Build Bazzite BC-250 / Save Bazzite channel digest cache (push) Has been cancelled
Build Bazzite BC-250 / Publish GitHub Release (push) Has been cancelled
BC-250 console image: custom GNOME recipe with remote admin
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>
2026-07-06 18:54:30 -04:00

78 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BC-250 Console — local build → ISO
Custom recipe: `recipes/bc250-console-gnome.yml` (Bazzite GNOME + cyan-skillfish
governor + SSH/RDP remote admin + BC-250 ttm kargs). Build path is **local**
(no CI, no registry, no cosign needed).
## 1. Build the OCI image (any Fedora/bootc box, VM OK)
```bash
# prereqs: podman + bluebuild CLI
sudo dnf install -y podman
# bluebuild CLI: https://blue-build.org/how-to/setup/#installation
podman run --rm ghcr.io/blue-build/cli --version # or install natively
bluebuild build ./recipes/bc250-console-gnome.yml
```
Result lands in local podman storage as `localhost/bc250-console-gnome`.
### Kernel sanity check (before making the ISO)
Avoid kernels 6.15.06.15.6 and 6.17.86.17.10; prefer 6.18.x LTS or 6.17.11+.
The kernel comes from the Bazzite `stable` base — verify what you got:
```bash
podman run --rm localhost/bc250-console-gnome:latest rpm -q kernel
```
If it lands in a bad range, wait for the next Bazzite stable or pin an older
`image-version` in the recipe.
## 2. Generate the installer ISO
```bash
mkdir -p output
sudo podman run --rm -it --privileged \
--security-opt label=type:unconfined_t \
-v ./output:/output \
-v /var/lib/containers/storage:/var/lib/containers/storage \
quay.io/centos-bootc/bootc-image-builder:latest \
--type iso \
localhost/bc250-console-gnome:latest
```
ISO appears under `output/bootiso/`.
## 3. Smoke test + install
1. **VM test**: boot the ISO in a VM, install, reach GNOME. This validates
composition/installer only — not the BC-250 GPU/governor/Mesa path.
2. Flash to USB (Fedora Media Writer / Impression / `dd`), install on the
board. Black screen at install → "Install in Basic Graphics Mode".
3. First boot, in the child's desktop session: run `bc250-remote-setup`,
log into Steam, set Steam Family View, `sudo tailscale up` if using it.
## 4. On-hardware validation (board, not VM)
```bash
vulkaninfo | grep deviceName # RADV GFX1013, NOT llvmpipe
systemctl status cyan-skillfish-governor-smu # active
cat /sys/class/drm/card0/device/pp_dpm_sclk # scaling present (may be card1)
sensors # sane temps; watch backplate airflow
cat /proc/cmdline | tr ' ' '\n' | grep ttm # ttm.pages_limit / page_pool_size
```
Then a real game for 30+ minutes for thermal/power stability.
## Not baked into the image (per-board/per-user)
Modded BIOS + BIOS settings (512 MB dynamic VRAM, IOMMU off, auto power-on),
RDP password/TLS cert, Steam login, Tailscale auth.
## Security
- SSH/RDP LAN- or tailnet-only. Never port-forward 22/3389.
- If this ever moves to a registry (Gitea) for OTA updates: generate your own
cosign keypair, re-add the `signing` module, and never reuse upstream's key.