test(build): Zuse's minted pair as a stick -- the acceptance boots and the sessions use it
mkdiskimage.sh --starship-from IDENT ART lays a minted pair out as a StarshipOS stick: an identity partition holding IDENT's bytes and an Artemis partition holding ART's, each exactly its file's size (Artemis's signature and fence are placed from the volume's size). kernel/Makefile: a zusestick target, made fresh for every boot, is ZUSEDISK's default (ZUSE_PAIR names the pair); STICK_PAIR puts the pair in the PC stick. qemu_session.py's Zuse drive is the pair as a stick. check_images.sh checks both forms byte for byte against the pair (60 PASS). On today's kernel all 23 sessions pass on the Zuse stick, and acceptance: amd64, aarch64, riscv64 to [zuse@Hera] ok>, POST 538/538, dict_hash 0xfec8c47cfc6f437f; v4 suite and test-32 0 failures. The plan gains Task 5, screen=boot (ruled 2026-10-28). Plan: docs/v4.0.0/plans/2026-10-27-stick-4-one-disk.md, Task 1 (R1 as recommended). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b2278b6204
commit
38b2b9693a
@@ -310,3 +310,38 @@ drives), §5 items 1, 2 and 5, §9 (entropy, parity), §11 increment 4.
|
||||
- the seven GPT modes.
|
||||
- [ ] **Step 5:** Suite; full acceptance; commit `feat(kernel): Artemis and Zuse from one disk --
|
||||
the stick; virtio Artemis leaves v4` with the logs.
|
||||
|
||||
### Task 5: `screen=boot` -- the console on the screen until login (added 2026-10-28)
|
||||
|
||||
Captain Bob, 2026-10-28: "yes, add screen=boot at the end of increment 4" -- for the SER5 smoke
|
||||
test after Task 4, which has no serial port: today the v4 boot turns the screen's console mirror off
|
||||
after POST (`sk_v4_block_chain`, `console_fb_mirror(0)`), so a failure after POST shows a black
|
||||
screen.
|
||||
|
||||
**Files:**
|
||||
- Modify: `kernel/include/starkernel/kernel_args.h` (`int screen_boot;` in `KernelArgs`, before
|
||||
`raw`; check `boot_info_offsets.h` -- `args` is the last field it may name, `BootDisk` comes after)
|
||||
- Modify: `kernel/src/boot/cmdline.c` (`screen=boot`, with or without `--`, as `system=` is parsed;
|
||||
the last one wins; any other `screen=` value is ignored)
|
||||
- Modify: `kernel/src/kernel_main.c` (`sk_v4_block_chain`: with `screen_boot`, the mirror stays on
|
||||
and the line `Screen: the console stays on until login (screen=boot)`; without it, as today)
|
||||
- Modify: `scripts/qemu_session.py` (mode `screen_boot`)
|
||||
- Modify: `boards/BRINGUP.md` (the PC section: the smoke test's `starforth.cfg` is
|
||||
`system=v4 screen=boot`, Secure Boot off)
|
||||
|
||||
**Behaviour:**
|
||||
- Before the first login only. Login draws the console as today; a logout darkens the screen as
|
||||
today (`screen=boot` is for watching a boot, not a way round the identity gate: the screen shows
|
||||
what serial shows, and nothing can be typed without Zuse).
|
||||
- Default (no argument): unchanged -- `screen_dark_until_login` still passes.
|
||||
- v3 (`system=v3`): unchanged.
|
||||
|
||||
- [ ] **Step 1: Failing test.** Mode `screen_boot` (amd64, `KERNEL_ARGS=screen=boot`, no drive):
|
||||
the `Screen:` line; 30 s after POST the screen is not black (at least 500 lit pixels, as
|
||||
`screen_console_after_login` counts); no `ok> `. Today: FAIL.
|
||||
- [ ] **Step 2:** Run: FAIL.
|
||||
- [ ] **Step 3:** Implement.
|
||||
- [ ] **Step 4:** `screen_boot` passes on amd64 and aarch64 (riscv64's ramfb too, if the mode's
|
||||
screendump works there); `screen_dark_until_login`, `screen_dark_after_logout`, `zuse` pass.
|
||||
- [ ] **Step 5:** Suite; full acceptance; commit `feat(kernel): screen=boot keeps the console on the
|
||||
screen until login -- for watching a PC boot` with the logs.
|
||||
|
||||
Reference in New Issue
Block a user