From c8c12367cb0323d0411b502ae47fcdf27c623ebb Mon Sep 17 00:00:00 2001 From: Tinic Uro Date: Wed, 30 Sep 2026 21:12:02 +0000 Subject: [PATCH] cwb: answer the install boot's card page, or nothing installs The install boot runs with no network board on purpose and a ClassicWB snapshot carries no DEVS:Networks, so hardware detection and the installed-driver fallback both come back empty. The card page then opens with its ten checkboxes and none of them ticked, the run clicks Proceed at every page, and the Installer refuses the lot: measured 2026-09-30, 145 clicks, the 150-poll cap, nothing installed. An empty drive passes every "this file is absent" assertion this harness makes, so that reads as a harness that never got started rather than as the page it could not answer. installdrive has carried DRIVE_PICK_OPTIONS and DRIVE_PICK_ID since it was written, and nothing ever passed them: the compile line below handed it DRIVE_LEVEL, DRIVE_RUNS and DRIVE_YES_LABEL only, which answers a yes/no page and cannot touch a page of ten options. Pass ten options and gadget 4, "A2065" -- the board BOARD stages for the standing boot, which is what keeps the tick in agreement with the driver_match gate that runs after the install. Both are knobs, because the option count and the gadget order belong to Install-AmiNetXDuo's script rather than to this harness. The path was unexercised for so long because nothing runs it: ci.yml lists tools/classicwb.sh in a lint file list, not in a job, so no CI run has reached this line since the harness was last touched. Verified on playhouse3 with the two knobs set: the install completes, all five gates report ok and the instance comes up on the network. Co-Authored-By: Claude Code --- tools/classicwb.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tools/classicwb.sh b/tools/classicwb.sh index 0908298f7..a3acc08dc 100755 --- a/tools/classicwb.sh +++ b/tools/classicwb.sh @@ -328,9 +328,29 @@ done # instruction on the A600 before the Installer ever starts -- which presents as # a boot that never finishes and leaves an empty drive, and an empty drive # passes every "this file is absent" assertion there is. + +# THE CARD PAGE HAS TO BE ANSWERED, and nothing else here answers it. +# +# The install boot runs with no network board on purpose, and a ClassicWB +# snapshot carries no DEVS:Networks, so hardware detection and the +# installed-driver fallback both come back empty. The page then opens with its +# ten checkboxes and not one of them ticked, so the run clicks Proceed at every +# page and the Installer refuses the lot: measured 2026-09-30, 145 clicks, the +# 150-poll cap, nothing installed, and an empty drive passes every "this file +# is absent" assertion this harness makes. +# +# So installdrive ticks one. Ten options, gadget 4 is "A2065" -- the board +# BOARD stages further down, which is what keeps the tick in agreement with the +# driver_match gate that runs after the install. The option count and the +# gadget order are Install-AmiNetXDuo's, not this harness's, so both are knobs. +PICK_OPTIONS="${AMINETXDUO_CWB_PICK_OPTIONS:-10}" +PICK_ID="${AMINETXDUO_CWB_PICK_ID:-4}" + DRIVER="$ROOT/build/cwb-installdrive-$TAG" "$AMIGA_GCC" -O2 -m68000 -Wall -Wextra -DDRIVE_LEVEL="\"$LEVEL\"" \ - -DDRIVE_RUNS=1 -DDRIVE_YES_LABEL="\"\"" -I"$AMIGA_NDK" \ + -DDRIVE_RUNS=1 -DDRIVE_YES_LABEL="\"\"" \ + -DDRIVE_PICK_OPTIONS="$PICK_OPTIONS" -DDRIVE_PICK_ID="$PICK_ID" \ + -I"$AMIGA_NDK" \ -o "$DRIVER" "$ROOT/install/test/installdrive.c" || { say error "could not build install/test/installdrive.c"; exit 2; } cp "$DRIVER" "$HD/C/installdrive"