Keeps service clawdie as a deployed-system contract only, removes the old mini-binary FEATURE_CLAWDIE staging lane from the ISO build, and adds explicit Linux-vs-FreeBSD proof boundaries for provider/runtime claims.\n\nChecks: ./scripts/check-format.sh; git diff --check; sh -n over scripts/ firstboot/ live/operator-session/ executables
3.4 KiB
3.4 KiB
NVIDIA universal lane — Codex build + hardware validation handoff
From: Claude (Linux) · To: Codex ISO Builder (FreeBSD 15 host) Goal: one ISO that boots on any NVIDIA machine — detect the GPU pre-SDDM, install the matching branch from an on-image repo, kldload it, then SDDM/XFCE.
Authored on Linux (sh -n clean; detector + branch/pkg map unit-tested). The package/boot behavior must be built and proven on FreeBSD + real NVIDIA hardware — it cannot be validated from Linux.
What landed (behind NVIDIA_UNIVERSAL, default NO — normal builds unaffected)
build.cfg:NVIDIA_UNIVERSALflag.build.sh:install_nvidia_universal_repo()—pkg fetch -dthe three families (nvidia-driver-390/470/580+ settings) into/usr/local/share/clawdie/nvidia-repo,pkg repoit, write/usr/local/etc/pkg/repos/clawdie-nvidia.conf(file:// , enabled).- In universal mode: no branch baked into the root; rc.conf
clawdie_live_gpu_mode="nvidia-auto".
live/operator-session/clawdie-live-gpu(nvidia-automode): detect device id → branch {390,470,590} →pkg install -r clawdie-nvidia nvidia-driver-<n> nvidia-settings→ kldload via existing select/load. Best-effort: any failure falls through to the integrated/scfb path — never worse than today.
Must verify on the FreeBSD build host
pkg fetch -o/pkg repolayout — confirmpkg fetch -y -o DIR -d ...places archives wherepkg repo DIRexpects them; adjust ifpkg reponeedsDIR/All. Confirm the dependency closure is complete (offline boot install must not reach the network).- Boot install command —
pkg install -y -r clawdie-nvidia nvidia-driver-470 nvidia-settingsresolves purely from the file:// repo with no network. - Writable root at boot — the USB-root install must allow
pkg installbefore SDDM (it does on a real on-USB FreeBSD; confirm). - Kernel ABI — the staged kmod packages must match the image's kernel.
- Image size — three branches + deps add several hundred MB; confirm
headroom against
IMAGE_SIZE. - Exactly one branch installed at boot (no mixing).
Build commands
# colibri artifacts first (do NOT cargo clean after)
cd /home/clawdie/ai/colibri && git fetch origin && git reset --hard origin/main
cargo build --workspace --release
# universal image (set COLIBRI_REPO explicitly if building from a tmp worktree)
cd /home/clawdie/ai/clawdie-iso && git fetch origin && git reset --hard origin/main
sudo env NVIDIA_UNIVERSAL=YES \
CLAWDIE_AI_REPO=/home/clawdie/ai/clawdie-ai \
COLIBRI_REPO=/home/clawdie/ai/colibri \
./build.sh --skip-memstick-fetch --live-default-password
Hardware acceptance
- Boot on the NVIDIA target.
cat /var/log/clawdie-live-gpu.log— expect: detected device id, chosen branch + pkg, "installed nvidia-driver-", selected/loaded modules.kldstat | grep nvidiaand SDDM → XFCE comes up accelerated.- If install/load failed, the log shows the fallback and the desktop still comes up on integrated/scfb (no hard failure).
Deletion criteria
Delete this handoff once a NVIDIA_UNIVERSAL=YES image has, on real NVIDIA
hardware, auto-installed the correct branch and reached XFCE — with the result
recorded below.
Results
(Codex: build host, GPU model + device id, branch chosen, pkg install outcome, image size delta, SDDM/XFCE result.)