2026-03-24 00:51:22 +00:00
|
|
|
PARTITIONS=DEFAULT
|
|
|
|
|
DISTRIBUTIONS="kernel.txz base.txz"
|
|
|
|
|
export nonInteractive="YES"
|
|
|
|
|
|
feat: initial clawdie-iso skeleton
USB installer for Clawdie-AI. Combines FreeBSD base install,
desktop-installer GPU/DE setup, and Clawdie-AI deployment into
a single rc.firstboot wizard flow.
Skeleton includes:
- build.cfg: FreeBSD 15.0-RELEASE-p4, amd64, XFCE default
- build.sh: 7-step build outline (fetch → inject → repack), stubs
- installerconfig: bsdinstall post-install hook, copies firstboot/ to HDD
- firstboot/rc.d/clawdie-firstboot: runs once on first HDD boot
- firstboot/firstboot.sh: tiered bsddialog wizard (identity, desktop,
pi profile, auto-generated secrets, AGENTS.md seeding, npm prefix setup)
- firstboot/gpu-detect.sh: pciconf PCI ID → kld/xorg driver mapping
- CLAWDIE-ISO.md: full design doc (copied from clawdie-ai)
VirtualBox excluded. pkg latest default. LLM keys deferred to pi first-run.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 10:20:23 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
# installerconfig — bsdinstall post-install hook
|
|
|
|
|
#
|
|
|
|
|
# bsdinstall sources this file automatically after base system installation
|
|
|
|
|
# completes. Runs in the context of the live USB environment, with the
|
|
|
|
|
# target HDD mounted at /mnt.
|
|
|
|
|
#
|
2026-04-05 09:04:45 +00:00
|
|
|
# PREAMBLE (for bsdinstall scripting):
|
|
|
|
|
# Set ZFS pool name to "clawdie" (project-specific, enables auto-detection)
|
|
|
|
|
export ZFSBOOT_POOL_NAME="clawdie"
|
|
|
|
|
#
|
|
|
|
|
# SETUP SCRIPT:
|
|
|
|
|
#
|
feat: initial clawdie-iso skeleton
USB installer for Clawdie-AI. Combines FreeBSD base install,
desktop-installer GPU/DE setup, and Clawdie-AI deployment into
a single rc.firstboot wizard flow.
Skeleton includes:
- build.cfg: FreeBSD 15.0-RELEASE-p4, amd64, XFCE default
- build.sh: 7-step build outline (fetch → inject → repack), stubs
- installerconfig: bsdinstall post-install hook, copies firstboot/ to HDD
- firstboot/rc.d/clawdie-firstboot: runs once on first HDD boot
- firstboot/firstboot.sh: tiered bsddialog wizard (identity, desktop,
pi profile, auto-generated secrets, AGENTS.md seeding, npm prefix setup)
- firstboot/gpu-detect.sh: pciconf PCI ID → kld/xorg driver mapping
- CLAWDIE-ISO.md: full design doc (copied from clawdie-ai)
VirtualBox excluded. pkg latest default. LLM keys deferred to pi first-run.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 10:20:23 +00:00
|
|
|
# Responsibilities:
|
|
|
|
|
# 1. Copy firstboot payload from USB to installed HDD
|
|
|
|
|
# 2. Enable the clawdie-firstboot rc.d service (runs once on first HDD boot)
|
|
|
|
|
# 3. That's it — all real work happens in firstboot.sh on first boot
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
USB_SHARE="/usr/local/share/clawdie-iso"
|
|
|
|
|
HDD_SHARE="/mnt/usr/local/share/clawdie-iso"
|
|
|
|
|
HDD_RCD="/mnt/usr/local/etc/rc.d"
|
|
|
|
|
|
|
|
|
|
echo "clawdie-iso: injecting firstboot payload..."
|
|
|
|
|
|
|
|
|
|
# Copy firstboot scripts
|
|
|
|
|
mkdir -p "$HDD_SHARE"
|
|
|
|
|
cp -r "${USB_SHARE}/firstboot" "${HDD_SHARE}/"
|
|
|
|
|
cp -r "${USB_SHARE}/packages" "${HDD_SHARE}/"
|
|
|
|
|
cp "${USB_SHARE}/clawdie-ai.tar.gz" "${HDD_SHARE}/"
|
|
|
|
|
cp "${USB_SHARE}/build.cfg" "${HDD_SHARE}/"
|
|
|
|
|
|
2026-03-24 01:50:50 +00:00
|
|
|
# Make all firstboot shell modules executable
|
feat: initial clawdie-iso skeleton
USB installer for Clawdie-AI. Combines FreeBSD base install,
desktop-installer GPU/DE setup, and Clawdie-AI deployment into
a single rc.firstboot wizard flow.
Skeleton includes:
- build.cfg: FreeBSD 15.0-RELEASE-p4, amd64, XFCE default
- build.sh: 7-step build outline (fetch → inject → repack), stubs
- installerconfig: bsdinstall post-install hook, copies firstboot/ to HDD
- firstboot/rc.d/clawdie-firstboot: runs once on first HDD boot
- firstboot/firstboot.sh: tiered bsddialog wizard (identity, desktop,
pi profile, auto-generated secrets, AGENTS.md seeding, npm prefix setup)
- firstboot/gpu-detect.sh: pciconf PCI ID → kld/xorg driver mapping
- CLAWDIE-ISO.md: full design doc (copied from clawdie-ai)
VirtualBox excluded. pkg latest default. LLM keys deferred to pi first-run.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 10:20:23 +00:00
|
|
|
chmod +x "${HDD_SHARE}/firstboot/firstboot.sh"
|
2026-03-24 07:20:17 +00:00
|
|
|
for sh in "${HDD_SHARE}/firstboot/shell-"*.sh; do
|
2026-03-24 01:50:50 +00:00
|
|
|
chmod +x "$sh"
|
|
|
|
|
done
|
2026-04-05 09:04:45 +00:00
|
|
|
chmod +x "${HDD_SHARE}/firstboot/zfs-pool-detect.sh" 2>/dev/null || true
|
|
|
|
|
chmod +x "${HDD_SHARE}/firstboot/zfs-pool-migrate.sh" 2>/dev/null || true
|
|
|
|
|
chmod +x "${HDD_SHARE}/firstboot/maintenance-mode.sh" 2>/dev/null || true
|
feat: initial clawdie-iso skeleton
USB installer for Clawdie-AI. Combines FreeBSD base install,
desktop-installer GPU/DE setup, and Clawdie-AI deployment into
a single rc.firstboot wizard flow.
Skeleton includes:
- build.cfg: FreeBSD 15.0-RELEASE-p4, amd64, XFCE default
- build.sh: 7-step build outline (fetch → inject → repack), stubs
- installerconfig: bsdinstall post-install hook, copies firstboot/ to HDD
- firstboot/rc.d/clawdie-firstboot: runs once on first HDD boot
- firstboot/firstboot.sh: tiered bsddialog wizard (identity, desktop,
pi profile, auto-generated secrets, AGENTS.md seeding, npm prefix setup)
- firstboot/gpu-detect.sh: pciconf PCI ID → kld/xorg driver mapping
- CLAWDIE-ISO.md: full design doc (copied from clawdie-ai)
VirtualBox excluded. pkg latest default. LLM keys deferred to pi first-run.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 10:20:23 +00:00
|
|
|
|
|
|
|
|
# Install firstboot rc.d service
|
|
|
|
|
mkdir -p "$HDD_RCD"
|
|
|
|
|
cp "${USB_SHARE}/firstboot/rc.d/clawdie-firstboot" "${HDD_RCD}/clawdie-firstboot"
|
|
|
|
|
chmod +x "${HDD_RCD}/clawdie-firstboot"
|
|
|
|
|
|
|
|
|
|
# Enable service in rc.conf on HDD
|
|
|
|
|
echo 'clawdie_firstboot_enable="YES"' >> /mnt/etc/rc.conf
|
|
|
|
|
|
|
|
|
|
echo "clawdie-iso: firstboot payload installed. Rebooting to HDD..."
|