feat: Fake BIOS version for testing the BIOS update item

- run.sh: BIOS_VERSION=... reports that BIOS version to the guest (SMBIOS type 0).
- Skill: testing the BIOS item with WIZARD_BIOS_DRY_RUN=1, and the wizard's menu loop.
This commit is contained in:
theupriser committed 2026-09-24 10:40:36 +02:00
1 parent 3733f9400a
commit 3cdf2e11d8
3 files changed
+23 -2

No files matched your search

@@ -224,6 +224,19 @@ autologin, then (all passed last run; `scripts/vmstate.sh` after every step):
8. Conversion off: single user auto-unticked, plasmalogin `[Autologin]` back to CachyOS's `Session=plasma`, journals empty. 8. Conversion off: single user auto-unticked, plasmalogin `[Autologin]` back to CachyOS's `Session=plasma`, journals empty.
9. Remove the test autologin file, reboot: normal login screen. 9. Remove the test autologin file, reboot: normal login screen.
## BIOS update item
Only shown with `--fremont`, and only tickable when the guest's BIOS version
differs from Valve's newest. Fake an older one with
`BIOS_VERSION=F7F0107 ./run.sh --fremont` (SMBIOS type 0; `vmreset.sh` passes
the environment through). fwupd correctly refuses the firmware in the VM
("not for this machine's hardware"), so walk the whole flow with
`WIZARD_BIOS_DRY_RUN=1` (skips only that check, never flashes). Scripted:
`printf '6\n\ny\ny\nUPDATE\n\nq\n' | WIZARD_BIOS_DRY_RUN=1 /mnt/setup-gamescope-boot.sh`.
The wizard loops back to the menu after every run (Enter, or `m`/`r` when a
restart is needed) until `q`; scripted input that runs out ends it like `q`.
## Visual checks ## Visual checks
`scripts/vmshot.sh <out.png>` does the below. Starting `spectacle` straight `scripts/vmshot.sh <out.png>` does the below. Starting `spectacle` straight
+6 -1
View File
@@ -24,7 +24,12 @@ Watchable test runs and the lessons from testing cachyos-gamescope-boot 0.7.0
the conversion/single-user coupling, the repo mount lost on reboot, the conversion/single-user coupling, the repo mount lost on reboot,
re-applying the conversion resets the session to gamescope, the new re-applying the conversion resets the session to gamescope, the new
theme and LED checks in the test matrix, and the broken mirror workaround. theme and LED checks in the test matrix, and the broken mirror workaround.
- **docs: Changelog** - `3733f94` **docs: Changelog**
- **feat: Fake BIOS version for testing the BIOS update item**
- `BIOS_VERSION=F7F0107 ./run.sh ...` makes the guest report that BIOS
version (SMBIOS type 0), so the wizard offers the update.
- Skill: testing the BIOS item with `WIZARD_BIOS_DRY_RUN=1`, and the
wizard's menu loop.
## 0.1.1 - 2026-09-23 ## 0.1.1 - 2026-09-23
+4 -1
View File
@@ -6,6 +6,8 @@
# --vulkan expose Vulkan to the guest (venus; needed by gamescope, can be unstable) # --vulkan expose Vulkan to the guest (venus; needed by gamescope, can be unstable)
# --fremont report the Valve Steam Machine's DMI data (for testing the wizard) # --fremont report the Valve Steam Machine's DMI data (for testing the wizard)
# REPO defaults to $HOME/projects/cachyos-gamescope-boot. # REPO defaults to $HOME/projects/cachyos-gamescope-boot.
# BIOS_VERSION=F7F0107 makes the guest report that BIOS version (DMI), e.g.
# to test the wizard's BIOS update item; the firmware itself doesn't change.
# The repo is shared into the guest; mount it there with: # The repo is shared into the guest; mount it there with:
# sudo mount -t 9p -o trans=virtio,version=9p2000.L repo /mnt # sudo mount -t 9p -o trans=virtio,version=9p2000.L repo /mnt
# First-time SSH setup, inside the guest: # First-time SSH setup, inside the guest:
@@ -17,13 +19,14 @@ repo="${REPO:-$HOME/projects/cachyos-gamescope-boot}"
cdrom=() cdrom=()
smbios=() smbios=()
gpu=virtio-vga-gl,xres=1920,yres=1080 gpu=virtio-vga-gl,xres=1920,yres=1080
[[ -n "${BIOS_VERSION:-}" ]] && smbios+=(-smbios "type=0,version=$BIOS_VERSION")
for arg in "$@"; do for arg in "$@"; do
case "$arg" in case "$arg" in
install) cdrom=(-cdrom cachyos.iso -boot d) ;; install) cdrom=(-cdrom cachyos.iso -boot d) ;;
--nvidia) export __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia \ --nvidia) export __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia \
__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json ;; __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json ;;
--vulkan) gpu+=,hostmem=4G,blob=true,venus=true ;; --vulkan) gpu+=,hostmem=4G,blob=true,venus=true ;;
--fremont) smbios=(-smbios type=1,manufacturer=Valve,product=Fremont -smbios type=2,manufacturer=Valve,product=Fremont) ;; --fremont) smbios+=(-smbios type=1,manufacturer=Valve,product=Fremont -smbios type=2,manufacturer=Valve,product=Fremont) ;;
*) echo "unknown argument: $arg" >&2; exit 1 ;; *) echo "unknown argument: $arg" >&2; exit 1 ;;
esac esac
done done