From 48edfc53c5193aae435634bcdd1c5bbf332d92b5 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 29 Sep 2026 19:09:16 +0200 Subject: [PATCH] docs: B1 boot entry check and the ISO's /var/log fix done; CEC driver download (GitHub 429) as the next item --- AGENTS.md | 9 ++++----- TESTPLAN.md | 11 ++++------- TODO.md | 8 +++++--- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 2c22d6f..7371c70 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -29,13 +29,12 @@ wsl-build-host, progress-report). ## State (2026-09-29; update when it changes) - `scripts/vmtest.sh` runs the whole unattended test: boot loaders limine/systemd-boot/grub (`vmbootloadertest.sh`) and the - suites cli, menu, hw, installer, toggles (`vmsuite.sh`, checks in `share/vmtest/`). Each passed in its own run: limine 41, - systemd-boot 40, grub 40, cli 55, menu 36, hw 70, installer 4, toggles 42 checks. + suites cli, menu, hw, installer, toggles (`vmsuite.sh`, checks in `share/vmtest/`). Each passed in its own run: limine 43, + systemd-boot 42, grub 42 (with the B1 boot entry check), cli 55, menu 36, hw 70, installer 4, toggles 42 checks. - 2026-09-29, on the PC (WSL2): the first complete parallel run, **328 pass, 0 fail in 18 minutes** (base image + qcow2 overlays, own ssh port per job, package cache, `VM_MEM=4G`, `MAX_PARALLEL=3`). On a new machine: one full `scripts/vmtest.sh --screen`, read `~/vms/last-test.txt`, fix what fails. -- Open work: `TODO.md` (the B1 boot entry check, the ISO's hidden `@log` logs, the - GitHub Actions workflow, P3). +- Open work: `TODO.md` (the CEC driver download, the GitHub Actions workflow, P3). ## Where the tests run The tests run on the user's PC (Ryzen 9800X3D, 64 GB, **WSL2**), started from a laptop over ssh (the user's own skill, or @@ -48,7 +47,7 @@ passthrough): `.claude/skills/wsl-build-host/SKILL.md`. `vminstall.sh` works the - Fixed (PR #2): cachyos-installer's `bootctl install` runs in a chroot and writes no EFI boot entry, so systemd-boot only booted through the disk's fallback path (in OVMF after 4-5 minutes of network boot, every boot). `steamify-install` now registers it with efibootmgr from the live system. -- `/var/log` (`@log`) isn't mounted when `steamify-install` runs: its logs are hidden under the mount after boot. +- Fixed (PR #3): `/var/log` (`@log`) wasn't mounted when `steamify-install` ran, so its logs were hidden after boot. - cachyos-installer leaves systemd-boot with `#timeout 3` and no default entry: a real machine waits in the menu for ever (the test setup papers over it in `share/vminstall-post.sh`). - It enables ufw, which drops ssh from the host (the test setup runs `ufw allow 22/tcp`). diff --git a/TESTPLAN.md b/TESTPLAN.md index b43c462..a58434c 100644 --- a/TESTPLAN.md +++ b/TESTPLAN.md @@ -102,7 +102,7 @@ and started with `--fremont`. Automated: `scripts/vmtest.sh` (see the vm-install | # | Step | Expect | |---|---|---| -| B1 | first boot after the unattended install | boots by itself through the loader's own EFI boot entry, no network boot first (systemd-boot: the entry comes from the ISO's `steamify-install` since PR #2; `timeout`/`default` set by the test setup), SSH answers | +| B1 | first boot after the unattended install, and every reboot | boots by itself through the loader's own EFI boot entry (`BootCurrent`, a real partition; checked after every reboot), no network boot first (systemd-boot: the entry comes from the ISO's `steamify-install` since PR #2; `timeout`/`default` set by the test setup), SSH answers | | B2 | Steamify's state, as its own `*_status` functions | gaming, theme, glyphs, single, launcher, notify, poweroff, cec all on | | B3 | OS name | `os-release` NAME/PRETTY_NAME are CachyOS's, `lsb-release` has no "with Steamify"; Limine has `TARGET_OS_NAME` | | B4 | loader identity, firmware setup | the expected loader; `Boot into FW: supported` (BIOS item) | @@ -125,12 +125,8 @@ and started with `--fremont`. Automated: `scripts/vmtest.sh` (see the vm-install a release it shows the old version; start the branch's app by hand (steam-machine-iso skill). -- B1: no check yet that the loader's own EFI entry exists, points to a real partition and was used - (`efibootmgr` `BootCurrent`): systemd-boot booted through the disk's fallback path unnoticed until - 2026-09-29 (a 4-5 minute network boot per boot in OVMF). To add to `share/bootloader-test/`. -- ISO: `/var/log` is its own btrfs subvolume (`@log`), not mounted at `$ROOT/var/log` when - `steamify-install` runs: its logs (`steamify-install.log`, `steamify-bootentry.log`) end up hidden - under the mount after boot. +- CEC (B2, B5, B7, R1.7): the driver source is downloaded from raw.githubusercontent.com at setup time; + a GitHub rate limit (HTTP 429) fails CEC and every check that needs its module. Rerun later; fix in TODO. ## Results log @@ -143,3 +139,4 @@ and started with `--fremont`. Automated: `scripts/vmtest.sh` (see the vm-install | 2026-09-29 | `feature/vminstall-bootloader` (Steamify ISO 2026.09.28, `--fremont`) | B1-B8 | Limine 41 / systemd-boot 40 / GRUB 40 checks pass. Found on the way (test setup, not Steamify): ufw blocks ssh, systemd-boot has no timeout/default after cachyos-installer | | 2026-09-28 | `release/2.8.0` (`feature/defaults-list`) | G1-G3, R1.1, R1.2 | all pass (VM `--fremont`, fake Steam Machine). Bundle shellcheck clean | | 2026-09-29 | Steamify 2.9.0 (`steamify-cachyos` main), ISO `feat/steamify` with PR #2 (2026.09.29), dev `main` 5b867f8; on the PC (WSL2) | everything automated: B1-B8 (3 loaders), cli, menu, hw, installer, toggles (`scripts/vmtest.sh`, parallel, `MAX_PARALLEL=3`) | **328 pass, 0 fail** (toggles 42 +1 expected skip, hw 70, cli 55, menu 36, installer 4, Limine 41, systemd-boot 40, GRUB 40) in 18 minutes: the first complete parallel run. Found on the way: systemd-boot had no EFI boot entry (installer's `bootctl` in a chroot), fixed in the ISO (PR #2); `vminstall.sh` fixes for parallel installs and a root host user | +| 2026-09-29 | ISO `feat/steamify` + PR #3 (`/var/log`), dev `main` with the B1 boot entry check | B1-B8 | Limine 43 / GRUB 42 pass (boot entry check passes: `Limine`, `cachyos`). systemd-boot (reinstalled): 36 pass, 8 fail, all CEC: the driver download got HTTP 429 from GitHub (rate limit); boot entry check passes (`Linux Boot Manager`); `/var/log/steamify-install.log` and `steamify-bootentry.log` readable after boot | diff --git a/TODO.md b/TODO.md index 4040389..356f4f3 100644 --- a/TODO.md +++ b/TODO.md @@ -74,10 +74,12 @@ Where the time goes: boot loader VMs ~3 min each, every suite block restores a s ## Found 2026-09-29 (first full run on the PC) -- [ ] B1 check: the loader's own EFI boot entry exists, points to a real partition (not `HD(0,GPT,0000...)`) +- [x] B1 check (share/bootloader-test/boot-check.sh, after every reboot; passes on all three): the loader's own EFI boot entry exists, points to a real partition (not `HD(0,GPT,0000...)`) and was used (`efibootmgr` `BootCurrent`); systemd-boot booted through the fallback path unnoticed -- [ ] ISO: mount `@log` at `$ROOT/var/log` before `steamify-install` writes its logs (they end up hidden - under the mount); PR into `feat/steamify` +- [x] ISO: mount `@log` at `$ROOT/var/log` before `steamify-install` writes its logs (PR #3 merged) +- [ ] Steamify: the CEC driver comes from one download (raw.githubusercontent.com, no retry, no fallback); + a GitHub rate limit (HTTP 429, seen 2026-09-29 after a day of test installs) leaves CEC off. Ship the + pinned source with Steamify instead (steamify-cachyos, via a release branch) - [x] ISO: systemd-boot's EFI boot entry (efibootmgr from the live system), PR #2 merged - [x] vminstall.sh: a poweroff that drops ssh is no failure, wait only for its own VM, ISO loop device under a lock, never root as the guest user