pi/ml350p-bhyve-verification-plan #25

Merged
clawdie merged 3 commits from pi/ml350p-bhyve-verification-plan into main 2026-06-04 18:55:57 +02:00
2 changed files with 45 additions and 6 deletions

View file

@ -585,13 +585,32 @@ full `sudo ./build.sh` once after pulling current `main`.
## Testing
Before writing to hardware, use bhyve when available:
Default verification order for the operator USB is now:
1. static artifact verification on the build host
2. bhyve boot verification on the ML350p virtualization lane
3. physical hardware validation for the final acceptance pass
Use bhyve before writing to hardware whenever the lane is available:
```sh
sudo ./scripts/bhyve-pf-allow.sh
sudo ./scripts/bhyve-test.sh
```
Current ML350p bhyve plan:
- host RAM budget: ZFS ARC 6G + Poudriere tmpfs 4G + headroom 6G
- bhyve RAM budget: FreeBSD ISO test 4G + Linux cross-compile 4G + FreeBSD builder 4G + spare 4G
- intended VM roles:
- ISO boot verification after each build
- Linux target validation
- FreeBSD/Poudriere test lane
Use bhyve to catch boot, SDDM/XFCE, and service-start regressions early. Keep
real hardware as the final proof for GPU quirks, Wi-Fi, audio, touchpad, and
display/panel behavior.
See [TESTING.md](TESTING.md) for the full validation checklist.
---

View file

@ -329,10 +329,27 @@ sudo mdconfig -d -u md0
---
## Level 2: Optional bhyve Smoke Boot
## Level 2: bhyve Verification Gate
Use bhyve for a quick boot smoke test when hardware is not immediately
available. Treat this as a convenience check, not the final authority.
Use bhyve as the standard pre-hardware gate when the ML350p lane is available.
This is no longer just an opportunistic smoke test; it is the default
middle-stage verification between static artifact checks and physical hardware.
Treat bhyve as authoritative for boot/runtime plumbing and still treat real
hardware as the final authority for GPU, panel, input, Wi-Fi, and audio polish.
### ML350p resource plan
| Resource | Allocation |
| ----------- | ---------------------------------------------------------------------------- |
| Host (16G) | ZFS ARC 6G + Poudriere tmpfs 4G + headroom 6G |
| bhyve (16G) | FreeBSD ISO test 4G + Linux cross-compile 4G + FreeBSD builder 4G + spare 4G |
Planned bhyve roles:
- ISO boot verification after each build
- Linux target validation
- FreeBSD/Poudriere test lane
### Host preflight
@ -349,7 +366,7 @@ Optional PF helper for guest internet:
sudo ./scripts/bhyve-pf-allow.sh
```
### Run the smoke boot
### Run the boot verification
```sh
cd /home/clawdie/clawdie-iso
@ -361,14 +378,17 @@ sudo ./scripts/bhyve-test.sh
- image boots at all
- SDDM/XFCE path appears instead of dropping straight to a dead console
- no immediate package/rootfs failure
- Clawdie/Colibri service staging does not crash the session at first boot
bhyve is useful for catching:
- broken bootcode
- missing live-session payload
- obvious SDDM/Xorg startup regressions
- obvious service-start regressions after build-time staging changes
It is **not** enough for final GPU confidence.
It is **not** enough for final GPU confidence or laptop-specific UI/device
behavior.
---