diff --git a/bible-local/architecture/runtime-flows.md b/bible-local/architecture/runtime-flows.md index ff82679..b8bc6d2 100644 --- a/bible-local/architecture/runtime-flows.md +++ b/bible-local/architecture/runtime-flows.md @@ -109,6 +109,7 @@ Build host notes: - `bee-gpu-burn` worker must be built against cached CUDA userspace headers from `build-cublas.sh`, not against random host-installed CUDA headers. - The live ISO must ship `libcublas`, `libcublasLt`, and `libcudart` together with `libcuda` so tensor-core stress works without internet or package installs at boot. - The source overlay in `iso/overlay/` is treated as immutable source. Build-time files are injected only into the staged overlay. +- ISO filename, squashfs filename, ISO volume label, and the live system's hostname all derive from the same `easy-bee--v` scheme (`ISO_BASENAME`/`SQUASHFS_FILENAME`/`BEE_ISO_VOLUME`/`BEE_HOSTNAME` in `build.sh`) instead of the live-build default (`debian`). Keep new naming derived from `PROJECT_VERSION_EFFECTIVE`/`BUILD_VARIANT` in sync with this set rather than hardcoding a new scheme. - The live-build workdir under `dist/` is disposable; source files under `iso/builder/` stay clean. - Container build requires `--privileged` because `live-build` uses mounts/chroots/loop devices during ISO assembly. - On macOS / Docker Desktop, the builder still must run as `linux/amd64` so the shipped ISO binaries remain `amd64`. diff --git a/iso/builder/auto/config b/iso/builder/auto/config index 53f2843..3db5bae 100755 --- a/iso/builder/auto/config +++ b/iso/builder/auto/config @@ -22,6 +22,8 @@ else LB_ISO_VOLUME="EASY_BEE_${BEE_GPU_VENDOR_UPPER:-NVIDIA}" fi +LB_HOSTNAME="${BEE_HOSTNAME:-easy-bee}" + lb config noauto \ --distribution bookworm \ --architectures amd64 \ @@ -36,6 +38,7 @@ lb config noauto \ --linux-flavours "amd64" \ --linux-packages "${LB_LINUX_PACKAGES}" \ --memtest memtest86+ \ + --hostname "${LB_HOSTNAME}" \ --iso-volume "${LB_ISO_VOLUME}" \ --iso-application "EASY-BEE-${BEE_GPU_VENDOR_UPPER:-NVIDIA}" \ --bootappend-live "boot=live live-media=/dev/disk/by-label/${LB_ISO_VOLUME} live-media-label=${LB_ISO_VOLUME} components video=1920x1080 console=ttyS0,115200n8 console=tty0 loglevel=3 systemd.show_status=1 username=bee user-fullname=Bee modprobe.blacklist=nouveau,snd_hda_intel,snd_hda_codec_realtek,snd_hda_codec_generic,soundcore" \ diff --git a/iso/builder/build.sh b/iso/builder/build.sh index eee37aa..ddafacc 100755 --- a/iso/builder/build.sh +++ b/iso/builder/build.sh @@ -1161,6 +1161,9 @@ recover_iso_memtest() { PROJECT_VERSION_EFFECTIVE="$(resolve_project_version)" SQUASHFS_FILENAME="filesystem-v${PROJECT_VERSION_EFFECTIVE}.squashfs" ISO_BASENAME="easy-bee-${BUILD_VARIANT}-v${PROJECT_VERSION_EFFECTIVE}-amd64" +# Hostname baked into the live image: same product+version scheme as +# ISO_BASENAME/SQUASHFS_FILENAME, but hostname labels don't allow dots. +BEE_HOSTNAME="easy-bee-${BUILD_VARIANT}-v$(printf '%s' "${PROJECT_VERSION_EFFECTIVE}" | tr '.' '-')" # Versioned output directory: dist/easy-bee-v4.1/ — all final artefacts live here. OUT_DIR="${DIST_DIR}/release/easy-bee-v${PROJECT_VERSION_EFFECTIVE}" ISO_VERSION_LABEL_TOKEN="$(printf '%s' "${PROJECT_VERSION_EFFECTIVE}" | tr '[:lower:].-' '[:upper:]__')" @@ -1769,7 +1772,7 @@ _max_token=$(( 32 - ${#_vol_prefix} )) _vol_token="$(printf '%s' "${ISO_VERSION_LABEL_TOKEN}" | cut -c1-${_max_token})" BEE_ISO_VOLUME="${_vol_prefix}${_vol_token}" unset _vol_prefix _max_token _vol_token -export BEE_GPU_VENDOR_UPPER BEE_ISO_VOLUME +export BEE_GPU_VENDOR_UPPER BEE_ISO_VOLUME BEE_HOSTNAME cd "${LB_DIR}" run_step_sh "live-build clean" "80-lb-clean" "lb clean --all 2>&1 | tail -3"