2026-05-12 19:26:35 +02:00
|
|
|
# Clawdie ISO Requirements
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
Build and test requirements for the current unified Clawdie operator USB branch.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
## Quick Checklist
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Before building:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
|
|
|
|
- [ ] FreeBSD 15.0+ build host
|
2026-05-12 19:26:35 +02:00
|
|
|
- [ ] 150 GB free build space recommended
|
2026-05-24 23:21:02 +02:00
|
|
|
- [ ] 32 GB USB key minimum (`IMAGE_SIZE=28G`)
|
2026-05-12 19:26:35 +02:00
|
|
|
- [ ] Internet access for fetch phase
|
|
|
|
|
- [ ] root or `sudo` for image assembly
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
Before booting/testing:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
- [ ] Browser/network test target in mind
|
|
|
|
|
- [ ] `pi` is part of the verification checklist
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
---
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
## Build Host Requirements
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
### Operating System
|
2026-05-10 14:23:03 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
- FreeBSD 15.0+
|
|
|
|
|
- ZFS recommended for comfortable build storage, but not required by `build.sh`
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
### Packages
|
2026-05-10 14:23:03 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Install the baseline tools:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
```sh
|
2026-06-14 12:27:17 +02:00
|
|
|
sudo pkg install -y curl node24 npm-node24 sudo go rust
|
2026-05-12 19:26:35 +02:00
|
|
|
```
|
Unify ISO and fix GPU installation gap (Sam & ZAI)
BREAKING CHANGE: Removes --target and --gpu-driver flags, unified ISO for all use cases
## Phase 0: GPU Fix + Unified ISO
### Core Changes
**GPU Package Installation (FIXES CRITICAL GAP):**
- Add clawdie_shell_nvidia_install() function to shell-nvidia.sh
- NVIDIA drivers now installed after detection (previously only configured)
- Works offline (USB packages) or online (pkg install)
- Resolves issue where rc.conf was set but driver not installed
**Unified ISO Architecture:**
- Remove --target flag from build.sh (no more vps/baremetal branching)
- Remove --gpu-driver flag from build.sh (runtime detection instead)
- All packages included on every ISO (desktop + all GPU drivers)
- Single image works on VPS, baremetal, and cloud
**Runtime Detection:**
- Add shell-desktop.sh for display detection at firstboot
- VPS/cloud: no display → lightdm disabled (headless)
- Baremetal: display detected → lightdm enabled (Lumina desktop)
- GPU detection always runs, installs correct driver version
**Sudo Unification:**
- Replace all doas references with sudo across entire codebase
- Update AGENTS.md with system configuration guidelines
- Update all documentation (BUILD.md, README.md, REQUIREMENTS.md, etc.)
- Admin panel now uses sudo for privileged operations
### Files Modified
**Core System:**
- build.sh: Remove target/gpu-driver logic, unified package selection
- firstboot/firstboot.sh: Add desktop detection module
- firstboot/shell-nvidia.sh: Add package installation function (+33 lines)
**New Files:**
- firstboot/shell-desktop.sh: Display detection and desktop enablement
- packages/pkg-list-nvidia-all.txt: All three NVIDIA driver versions (390/470/590)
- .opencode/plans/phase0-gpu-fix-unified-iso.md: Implementation plan
**Documentation:**
- PLAN-UNIFY.md: Update Step 3 for unified approach
- REQUIREMENTS.md: Simplify (no target choice), update for sudo
- BUILD.md: Update for unified ISO, sudo commands
- README.md: Update installation instructions
- AGENTS.md: Add system configuration section (sudo standardization)
- ADMIN-PANEL.md: Update privileged operations to use sudo
- CLAWDIE-SHELL.md: Update example commands to sudo
- CLAWDIE-ISO-REFACTORED.md: Update access paths to sudo
- REFACTOR-SUMMARY.md: Update permissions section to sudo
### Benefits
**Simplicity:**
- One build command: ./build.sh (no flags needed)
- One ISO to test and maintain
- No wrong choices for users
- No documentation explaining target differences
**Flexibility:**
- VPS can use GUI via VNC (wayvnc always available)
- Baremetal can run headless (disable lightdm)
- Repurpose hardware without reinstall
- All GPU drivers available for any hardware
**Technical:**
- Fixes critical GPU driver installation gap
- Runtime detection replaces build-time decisions
- Disk overhead: ~650MB (1-2% of 50GB - acceptable)
- No runtime overhead on VPS (services disabled by detection)
### Testing Required
- [ ] Build unified ISO: ./build.sh
- [ ] Test on VPS (no display): lightdm disabled, packages installed
- [ ] Test on baremetal (display): lightdm enabled, Lumina boots
- [ ] Test on NVIDIA hardware: driver installed and loaded
- [ ] Test sudo commands work without password prompts
- [ ] Verify all doas references removed
2026-04-06 13:28:56 +02:00
|
|
|
|
2026-06-14 12:27:17 +02:00
|
|
|
`go` and `rust` are build-host toolchains, not image packages: `go` builds the
|
|
|
|
|
zot agent binary and `rust` builds the Colibri release binaries. `build.sh`
|
|
|
|
|
stages those prebuilt binaries (it does not compile them itself) and fails
|
|
|
|
|
preflight if they are missing — so build them on the host first. They are not
|
|
|
|
|
installed onto the image.
|
|
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
`build.sh` sets its own FreeBSD tool PATH:
|
2026-05-10 14:23:03 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
```text
|
|
|
|
|
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
|
|
|
```
|
Unify ISO and fix GPU installation gap (Sam & ZAI)
BREAKING CHANGE: Removes --target and --gpu-driver flags, unified ISO for all use cases
## Phase 0: GPU Fix + Unified ISO
### Core Changes
**GPU Package Installation (FIXES CRITICAL GAP):**
- Add clawdie_shell_nvidia_install() function to shell-nvidia.sh
- NVIDIA drivers now installed after detection (previously only configured)
- Works offline (USB packages) or online (pkg install)
- Resolves issue where rc.conf was set but driver not installed
**Unified ISO Architecture:**
- Remove --target flag from build.sh (no more vps/baremetal branching)
- Remove --gpu-driver flag from build.sh (runtime detection instead)
- All packages included on every ISO (desktop + all GPU drivers)
- Single image works on VPS, baremetal, and cloud
**Runtime Detection:**
- Add shell-desktop.sh for display detection at firstboot
- VPS/cloud: no display → lightdm disabled (headless)
- Baremetal: display detected → lightdm enabled (Lumina desktop)
- GPU detection always runs, installs correct driver version
**Sudo Unification:**
- Replace all doas references with sudo across entire codebase
- Update AGENTS.md with system configuration guidelines
- Update all documentation (BUILD.md, README.md, REQUIREMENTS.md, etc.)
- Admin panel now uses sudo for privileged operations
### Files Modified
**Core System:**
- build.sh: Remove target/gpu-driver logic, unified package selection
- firstboot/firstboot.sh: Add desktop detection module
- firstboot/shell-nvidia.sh: Add package installation function (+33 lines)
**New Files:**
- firstboot/shell-desktop.sh: Display detection and desktop enablement
- packages/pkg-list-nvidia-all.txt: All three NVIDIA driver versions (390/470/590)
- .opencode/plans/phase0-gpu-fix-unified-iso.md: Implementation plan
**Documentation:**
- PLAN-UNIFY.md: Update Step 3 for unified approach
- REQUIREMENTS.md: Simplify (no target choice), update for sudo
- BUILD.md: Update for unified ISO, sudo commands
- README.md: Update installation instructions
- AGENTS.md: Add system configuration section (sudo standardization)
- ADMIN-PANEL.md: Update privileged operations to use sudo
- CLAWDIE-SHELL.md: Update example commands to sudo
- CLAWDIE-ISO-REFACTORED.md: Update access paths to sudo
- REFACTOR-SUMMARY.md: Update permissions section to sudo
### Benefits
**Simplicity:**
- One build command: ./build.sh (no flags needed)
- One ISO to test and maintain
- No wrong choices for users
- No documentation explaining target differences
**Flexibility:**
- VPS can use GUI via VNC (wayvnc always available)
- Baremetal can run headless (disable lightdm)
- Repurpose hardware without reinstall
- All GPU drivers available for any hardware
**Technical:**
- Fixes critical GPU driver installation gap
- Runtime detection replaces build-time decisions
- Disk overhead: ~650MB (1-2% of 50GB - acceptable)
- No runtime overhead on VPS (services disabled by detection)
### Testing Required
- [ ] Build unified ISO: ./build.sh
- [ ] Test on VPS (no display): lightdm disabled, packages installed
- [ ] Test on baremetal (display): lightdm enabled, Lumina boots
- [ ] Test on NVIDIA hardware: driver installed and loaded
- [ ] Test sudo commands work without password prompts
- [ ] Verify all doas references removed
2026-04-06 13:28:56 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
This keeps fetch/build behavior independent from the invoking user's login PATH.
|
Unify ISO and fix GPU installation gap (Sam & ZAI)
BREAKING CHANGE: Removes --target and --gpu-driver flags, unified ISO for all use cases
## Phase 0: GPU Fix + Unified ISO
### Core Changes
**GPU Package Installation (FIXES CRITICAL GAP):**
- Add clawdie_shell_nvidia_install() function to shell-nvidia.sh
- NVIDIA drivers now installed after detection (previously only configured)
- Works offline (USB packages) or online (pkg install)
- Resolves issue where rc.conf was set but driver not installed
**Unified ISO Architecture:**
- Remove --target flag from build.sh (no more vps/baremetal branching)
- Remove --gpu-driver flag from build.sh (runtime detection instead)
- All packages included on every ISO (desktop + all GPU drivers)
- Single image works on VPS, baremetal, and cloud
**Runtime Detection:**
- Add shell-desktop.sh for display detection at firstboot
- VPS/cloud: no display → lightdm disabled (headless)
- Baremetal: display detected → lightdm enabled (Lumina desktop)
- GPU detection always runs, installs correct driver version
**Sudo Unification:**
- Replace all doas references with sudo across entire codebase
- Update AGENTS.md with system configuration guidelines
- Update all documentation (BUILD.md, README.md, REQUIREMENTS.md, etc.)
- Admin panel now uses sudo for privileged operations
### Files Modified
**Core System:**
- build.sh: Remove target/gpu-driver logic, unified package selection
- firstboot/firstboot.sh: Add desktop detection module
- firstboot/shell-nvidia.sh: Add package installation function (+33 lines)
**New Files:**
- firstboot/shell-desktop.sh: Display detection and desktop enablement
- packages/pkg-list-nvidia-all.txt: All three NVIDIA driver versions (390/470/590)
- .opencode/plans/phase0-gpu-fix-unified-iso.md: Implementation plan
**Documentation:**
- PLAN-UNIFY.md: Update Step 3 for unified approach
- REQUIREMENTS.md: Simplify (no target choice), update for sudo
- BUILD.md: Update for unified ISO, sudo commands
- README.md: Update installation instructions
- AGENTS.md: Add system configuration section (sudo standardization)
- ADMIN-PANEL.md: Update privileged operations to use sudo
- CLAWDIE-SHELL.md: Update example commands to sudo
- CLAWDIE-ISO-REFACTORED.md: Update access paths to sudo
- REFACTOR-SUMMARY.md: Update permissions section to sudo
### Benefits
**Simplicity:**
- One build command: ./build.sh (no flags needed)
- One ISO to test and maintain
- No wrong choices for users
- No documentation explaining target differences
**Flexibility:**
- VPS can use GUI via VNC (wayvnc always available)
- Baremetal can run headless (disable lightdm)
- Repurpose hardware without reinstall
- All GPU drivers available for any hardware
**Technical:**
- Fixes critical GPU driver installation gap
- Runtime detection replaces build-time decisions
- Disk overhead: ~650MB (1-2% of 50GB - acceptable)
- No runtime overhead on VPS (services disabled by detection)
### Testing Required
- [ ] Build unified ISO: ./build.sh
- [ ] Test on VPS (no display): lightdm disabled, packages installed
- [ ] Test on baremetal (display): lightdm enabled, Lumina boots
- [ ] Test on NVIDIA hardware: driver installed and loaded
- [ ] Test sudo commands work without password prompts
- [ ] Verify all doas references removed
2026-04-06 13:28:56 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
### Disk Space
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:43:19 +02:00
|
|
|
| Item | Typical size |
|
|
|
|
|
| -------------------------- | ------------ |
|
|
|
|
|
| FreeBSD memstick cache | ~2 GB |
|
|
|
|
|
| Offline pkg repository | varies |
|
|
|
|
|
| Clawdie-AI offline tarball | varies |
|
2026-05-24 23:21:02 +02:00
|
|
|
| Working image | 28 GB sparse |
|
|
|
|
|
| Output image | 28 GB sparse |
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Recommended free space: **150 GB**.
|
2026-05-10 14:23:03 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
### USB Key
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
| USB size | Image size | Status |
|
|
|
|
|
| -------- | ---------- | ----------- |
|
2026-05-24 23:21:02 +02:00
|
|
|
| 32 GB | 28 GB | minimum |
|
|
|
|
|
| 64 GB | 50 GB | optional |
|
2026-05-12 19:26:35 +02:00
|
|
|
| 128 GB | 100 GB | recommended |
|
|
|
|
|
| 256 GB | 200 GB | comfortable |
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Do not use a USB key smaller than the logical image size printed by `build.sh`.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Network Requirements
|
|
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
### During Build
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Outbound access:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
- HTTPS/HTTP to FreeBSD package mirrors
|
|
|
|
|
- HTTPS to Codeberg for Clawdie-AI tarballs
|
|
|
|
|
- HTTPS to npm registry for bundled npm CLI tarballs
|
2026-05-10 14:23:03 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Inbound access: none.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
### During Live USB Use
|
2026-05-10 14:23:03 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Tailscale is recommended but optional.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
With a Tailscale auth key:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
- operator can join the tailnet from the live USB
|
|
|
|
|
- remote operator access becomes easier
|
|
|
|
|
- later deployment phases can reuse that connectivity
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Without a Tailscale auth key:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
- the USB still boots and remains usable locally
|
|
|
|
|
- operator can authenticate Tailscale later with `mdo -u root tailscale up`
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
For local networking, the live USB now bundles the broad native
|
|
|
|
|
`wifi-firmware-kmod` package set plus `FreeBSD-fwget`. The intended first-pass
|
|
|
|
|
model is still:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
- native driver + firmware exposes a real `wlan` device
|
|
|
|
|
- NetworkMgr manages that interface
|
|
|
|
|
- Ethernet or USB tethering remain fallback paths
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
`wifibox` is intentionally not part of the current operator-USB plan.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
---
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
## Target Machine Requirements
|
2026-05-10 14:23:03 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
### Minimum Operator USB Hardware
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
| Component | Minimum | Recommended | Notes |
|
|
|
|
|
| --------- | ------- | ----------- | ------------------------------------ |
|
|
|
|
|
| CPU | 4 cores | 4+ cores | More helps browser and future deploy |
|
|
|
|
|
| RAM | 8 GB | 16 GB+ | XFCE + Firefox are the main loads |
|
|
|
|
|
| Disk | 32 GB | 64 GB+ | 28 GB image fits common sticks |
|
|
|
|
|
| Network | 1 NIC | 1 Gbps | Needed for remote operation |
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Local AI models require substantially more disk/RAM and are optional.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
### Display
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
The current branch expects a graphical XFCE session. Headless/server flows are
|
|
|
|
|
not the target for this operator USB milestone.
|
|
|
|
|
|
|
|
|
|
The live USB now chooses graphics conservatively at boot:
|
|
|
|
|
|
|
|
|
|
- Intel -> `i915kms`
|
|
|
|
|
- AMD/ATI -> `amdgpu` with `radeonkms` best-effort
|
|
|
|
|
- VMware -> `vmwgfx`
|
|
|
|
|
- NVIDIA -> proprietary modules only if a concrete `nvidia.ko` is present in the live rootfs
|
|
|
|
|
- otherwise -> Xorg fallback path (`scfb` / `vesa`)
|
|
|
|
|
|
|
|
|
|
This favors broad boot success over guaranteed proprietary NVIDIA acceleration.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
## Tailscale Auth Key
|
2026-04-12 18:37:57 +00:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Generate a key at:
|
2026-04-12 18:37:57 +00:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
```text
|
|
|
|
|
https://login.tailscale.com/admin/settings/keys
|
2026-04-12 18:37:57 +00:00
|
|
|
```
|
|
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
Recommended options:
|
Unify ISO and fix GPU installation gap (Sam & ZAI)
BREAKING CHANGE: Removes --target and --gpu-driver flags, unified ISO for all use cases
## Phase 0: GPU Fix + Unified ISO
### Core Changes
**GPU Package Installation (FIXES CRITICAL GAP):**
- Add clawdie_shell_nvidia_install() function to shell-nvidia.sh
- NVIDIA drivers now installed after detection (previously only configured)
- Works offline (USB packages) or online (pkg install)
- Resolves issue where rc.conf was set but driver not installed
**Unified ISO Architecture:**
- Remove --target flag from build.sh (no more vps/baremetal branching)
- Remove --gpu-driver flag from build.sh (runtime detection instead)
- All packages included on every ISO (desktop + all GPU drivers)
- Single image works on VPS, baremetal, and cloud
**Runtime Detection:**
- Add shell-desktop.sh for display detection at firstboot
- VPS/cloud: no display → lightdm disabled (headless)
- Baremetal: display detected → lightdm enabled (Lumina desktop)
- GPU detection always runs, installs correct driver version
**Sudo Unification:**
- Replace all doas references with sudo across entire codebase
- Update AGENTS.md with system configuration guidelines
- Update all documentation (BUILD.md, README.md, REQUIREMENTS.md, etc.)
- Admin panel now uses sudo for privileged operations
### Files Modified
**Core System:**
- build.sh: Remove target/gpu-driver logic, unified package selection
- firstboot/firstboot.sh: Add desktop detection module
- firstboot/shell-nvidia.sh: Add package installation function (+33 lines)
**New Files:**
- firstboot/shell-desktop.sh: Display detection and desktop enablement
- packages/pkg-list-nvidia-all.txt: All three NVIDIA driver versions (390/470/590)
- .opencode/plans/phase0-gpu-fix-unified-iso.md: Implementation plan
**Documentation:**
- PLAN-UNIFY.md: Update Step 3 for unified approach
- REQUIREMENTS.md: Simplify (no target choice), update for sudo
- BUILD.md: Update for unified ISO, sudo commands
- README.md: Update installation instructions
- AGENTS.md: Add system configuration section (sudo standardization)
- ADMIN-PANEL.md: Update privileged operations to use sudo
- CLAWDIE-SHELL.md: Update example commands to sudo
- CLAWDIE-ISO-REFACTORED.md: Update access paths to sudo
- REFACTOR-SUMMARY.md: Update permissions section to sudo
### Benefits
**Simplicity:**
- One build command: ./build.sh (no flags needed)
- One ISO to test and maintain
- No wrong choices for users
- No documentation explaining target differences
**Flexibility:**
- VPS can use GUI via VNC (wayvnc always available)
- Baremetal can run headless (disable lightdm)
- Repurpose hardware without reinstall
- All GPU drivers available for any hardware
**Technical:**
- Fixes critical GPU driver installation gap
- Runtime detection replaces build-time decisions
- Disk overhead: ~650MB (1-2% of 50GB - acceptable)
- No runtime overhead on VPS (services disabled by detection)
### Testing Required
- [ ] Build unified ISO: ./build.sh
- [ ] Test on VPS (no display): lightdm disabled, packages installed
- [ ] Test on baremetal (display): lightdm enabled, Lumina boots
- [ ] Test on NVIDIA hardware: driver installed and loaded
- [ ] Test sudo commands work without password prompts
- [ ] Verify all doas references removed
2026-04-06 13:28:56 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
- reusable key for repeated test installs
|
|
|
|
|
- expiration appropriate for the test window
|
|
|
|
|
- optional tag if your tailnet policy uses tags
|
Unify ISO and fix GPU installation gap (Sam & ZAI)
BREAKING CHANGE: Removes --target and --gpu-driver flags, unified ISO for all use cases
## Phase 0: GPU Fix + Unified ISO
### Core Changes
**GPU Package Installation (FIXES CRITICAL GAP):**
- Add clawdie_shell_nvidia_install() function to shell-nvidia.sh
- NVIDIA drivers now installed after detection (previously only configured)
- Works offline (USB packages) or online (pkg install)
- Resolves issue where rc.conf was set but driver not installed
**Unified ISO Architecture:**
- Remove --target flag from build.sh (no more vps/baremetal branching)
- Remove --gpu-driver flag from build.sh (runtime detection instead)
- All packages included on every ISO (desktop + all GPU drivers)
- Single image works on VPS, baremetal, and cloud
**Runtime Detection:**
- Add shell-desktop.sh for display detection at firstboot
- VPS/cloud: no display → lightdm disabled (headless)
- Baremetal: display detected → lightdm enabled (Lumina desktop)
- GPU detection always runs, installs correct driver version
**Sudo Unification:**
- Replace all doas references with sudo across entire codebase
- Update AGENTS.md with system configuration guidelines
- Update all documentation (BUILD.md, README.md, REQUIREMENTS.md, etc.)
- Admin panel now uses sudo for privileged operations
### Files Modified
**Core System:**
- build.sh: Remove target/gpu-driver logic, unified package selection
- firstboot/firstboot.sh: Add desktop detection module
- firstboot/shell-nvidia.sh: Add package installation function (+33 lines)
**New Files:**
- firstboot/shell-desktop.sh: Display detection and desktop enablement
- packages/pkg-list-nvidia-all.txt: All three NVIDIA driver versions (390/470/590)
- .opencode/plans/phase0-gpu-fix-unified-iso.md: Implementation plan
**Documentation:**
- PLAN-UNIFY.md: Update Step 3 for unified approach
- REQUIREMENTS.md: Simplify (no target choice), update for sudo
- BUILD.md: Update for unified ISO, sudo commands
- README.md: Update installation instructions
- AGENTS.md: Add system configuration section (sudo standardization)
- ADMIN-PANEL.md: Update privileged operations to use sudo
- CLAWDIE-SHELL.md: Update example commands to sudo
- CLAWDIE-ISO-REFACTORED.md: Update access paths to sudo
- REFACTOR-SUMMARY.md: Update permissions section to sudo
### Benefits
**Simplicity:**
- One build command: ./build.sh (no flags needed)
- One ISO to test and maintain
- No wrong choices for users
- No documentation explaining target differences
**Flexibility:**
- VPS can use GUI via VNC (wayvnc always available)
- Baremetal can run headless (disable lightdm)
- Repurpose hardware without reinstall
- All GPU drivers available for any hardware
**Technical:**
- Fixes critical GPU driver installation gap
- Runtime detection replaces build-time decisions
- Disk overhead: ~650MB (1-2% of 50GB - acceptable)
- No runtime overhead on VPS (services disabled by detection)
### Testing Required
- [ ] Build unified ISO: ./build.sh
- [ ] Test on VPS (no display): lightdm disabled, packages installed
- [ ] Test on baremetal (display): lightdm enabled, Lumina boots
- [ ] Test on NVIDIA hardware: driver installed and loaded
- [ ] Test sudo commands work without password prompts
- [ ] Verify all doas references removed
2026-04-06 13:28:56 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
Authenticate from the running USB later with:
|
Unify ISO and fix GPU installation gap (Sam & ZAI)
BREAKING CHANGE: Removes --target and --gpu-driver flags, unified ISO for all use cases
## Phase 0: GPU Fix + Unified ISO
### Core Changes
**GPU Package Installation (FIXES CRITICAL GAP):**
- Add clawdie_shell_nvidia_install() function to shell-nvidia.sh
- NVIDIA drivers now installed after detection (previously only configured)
- Works offline (USB packages) or online (pkg install)
- Resolves issue where rc.conf was set but driver not installed
**Unified ISO Architecture:**
- Remove --target flag from build.sh (no more vps/baremetal branching)
- Remove --gpu-driver flag from build.sh (runtime detection instead)
- All packages included on every ISO (desktop + all GPU drivers)
- Single image works on VPS, baremetal, and cloud
**Runtime Detection:**
- Add shell-desktop.sh for display detection at firstboot
- VPS/cloud: no display → lightdm disabled (headless)
- Baremetal: display detected → lightdm enabled (Lumina desktop)
- GPU detection always runs, installs correct driver version
**Sudo Unification:**
- Replace all doas references with sudo across entire codebase
- Update AGENTS.md with system configuration guidelines
- Update all documentation (BUILD.md, README.md, REQUIREMENTS.md, etc.)
- Admin panel now uses sudo for privileged operations
### Files Modified
**Core System:**
- build.sh: Remove target/gpu-driver logic, unified package selection
- firstboot/firstboot.sh: Add desktop detection module
- firstboot/shell-nvidia.sh: Add package installation function (+33 lines)
**New Files:**
- firstboot/shell-desktop.sh: Display detection and desktop enablement
- packages/pkg-list-nvidia-all.txt: All three NVIDIA driver versions (390/470/590)
- .opencode/plans/phase0-gpu-fix-unified-iso.md: Implementation plan
**Documentation:**
- PLAN-UNIFY.md: Update Step 3 for unified approach
- REQUIREMENTS.md: Simplify (no target choice), update for sudo
- BUILD.md: Update for unified ISO, sudo commands
- README.md: Update installation instructions
- AGENTS.md: Add system configuration section (sudo standardization)
- ADMIN-PANEL.md: Update privileged operations to use sudo
- CLAWDIE-SHELL.md: Update example commands to sudo
- CLAWDIE-ISO-REFACTORED.md: Update access paths to sudo
- REFACTOR-SUMMARY.md: Update permissions section to sudo
### Benefits
**Simplicity:**
- One build command: ./build.sh (no flags needed)
- One ISO to test and maintain
- No wrong choices for users
- No documentation explaining target differences
**Flexibility:**
- VPS can use GUI via VNC (wayvnc always available)
- Baremetal can run headless (disable lightdm)
- Repurpose hardware without reinstall
- All GPU drivers available for any hardware
**Technical:**
- Fixes critical GPU driver installation gap
- Runtime detection replaces build-time decisions
- Disk overhead: ~650MB (1-2% of 50GB - acceptable)
- No runtime overhead on VPS (services disabled by detection)
### Testing Required
- [ ] Build unified ISO: ./build.sh
- [ ] Test on VPS (no display): lightdm disabled, packages installed
- [ ] Test on baremetal (display): lightdm enabled, Lumina boots
- [ ] Test on NVIDIA hardware: driver installed and loaded
- [ ] Test sudo commands work without password prompts
- [ ] Verify all doas references removed
2026-04-06 13:28:56 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
```sh
|
2026-05-24 23:21:02 +02:00
|
|
|
mdo -u root tailscale up
|
2026-04-06 12:25:39 +02:00
|
|
|
```
|
|
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
Future persistence work may add a first-boot key entry flow alongside the other
|
|
|
|
|
operator/API key collection steps.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
## Current Phase Boundaries
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
This branch is intentionally narrower than the older disk-installer flow.
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
Included now:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
- XFCE desktop
|
|
|
|
|
- browser
|
|
|
|
|
- Tailscale package
|
|
|
|
|
- bundled `pi`
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
Deferred:
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
- full `Clawdie-AI` service graph on USB
|
|
|
|
|
- disk deployment
|
|
|
|
|
- upgrade/rescue workflow
|
|
|
|
|
- post-install setup token flow
|
|
|
|
|
- provider/model and Telegram setup flow
|
2026-04-06 12:25:39 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
## Build Commands
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
```sh
|
|
|
|
|
# full validation build
|
|
|
|
|
sudo ./build.sh
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
# fetch-only cache refresh
|
|
|
|
|
./build.sh --fetch-only
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
# assemble cached inputs
|
|
|
|
|
sudo ./build.sh --skip-fetch
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
# release build from a pinned Clawdie-AI tag
|
|
|
|
|
BUILD_CHANNEL=release sudo ./build.sh --clawdie-version 0.10.0
|
2026-04-06 12:25:39 +02:00
|
|
|
```
|
|
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
---
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-12 19:26:35 +02:00
|
|
|
## Common Problems
|
2026-04-06 12:25:39 +02:00
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
| Symptom | Likely cause | Fix |
|
|
|
|
|
| ------------------------------- | --------------------------------- | ------------------------------------------- |
|
|
|
|
|
| missing package archive | stale `tmp/packages` cache | run `sudo ./build.sh` |
|
|
|
|
|
| `pkg` not found in normal shell | user PATH lacks `/usr/local/sbin` | update PATH; build script already guards |
|
|
|
|
|
| cannot attach md device | not root / stale md device | run with sudo; clean stale mdconfig |
|
|
|
|
|
| no browser on desktop | live package install failed | rerun full build; inspect pkg stage |
|
|
|
|
|
| Tailscale not authenticated | expected before operator login | run `mdo -u root tailscale up` from the USB |
|
|
|
|
|
| USB still shows old ZFS label | stale end-of-disk metadata | wipe whole stick before reflashing |
|
2026-04-06 12:25:39 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-05-24 23:21:02 +02:00
|
|
|
**Last updated:** 16.maj.2026
|