Commit Graph

17 Commits

Author SHA1 Message Date
867565cbf8 fix: inject motd build info in genapkovl tmp, not overlay on disk
sed -i on overlay/etc/motd caused git pull conflict on next build.
Now BEE_BUILD_INFO is exported and substituted in $tmp copy only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 23:11:07 +03:00
fd071e28db fix: include build-debug.sh and motd changes missed from previous commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 22:43:23 +03:00
2235a89364 fix: add modloop= to cmdline, revert lz4 compression
modloop was not mounting because:
1. modloop=/boot/modloop-lts was missing from kernel cmdline
2. lz4-compressed squashfs may not be supported by Alpine initramfs

Both issues result in /lib/modules not existing and all modprobe failing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 18:23:26 +03:00
ec9c65e20e feat: build NVIDIA open kernel modules during ISO build
- build-nvidia-module.sh: downloads nvidia open-gpu-kernel-modules source,
  builds against linux-lts headers, extracts nvidia-smi from .run installer
- modules cached by driver version + kernel version (rebuild only on update)
- .ko files injected into ISO overlay at /lib/modules/<kver>/extra/nvidia/
- bee-nvidia init script loads nvidia/nvidia-modeset/nvidia-uvm at boot
- NVIDIA_DRIVER_VERSION=550.54.15 (Turing+, H100/A100 supported)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 18:01:11 +03:00
bd9279f96d perf: use lz4 compression for modloop squashfs
xz → lz4 for mksquashfs: kernel modloop rebuild is ~10x faster.
Size increase is acceptable since modloop is loaded into RAM.
Applied in both setup-builder.sh and build-debug.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 16:23:55 +03:00
34faddb9d5 perf: cache syslinux and grub sections between builds
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 16:22:23 +03:00
836c098044 perf: also cache kernel modloop between builds
kernel_* workdir sections were being deleted alongside other non-apks dirs.
Now both apks_* and kernel_* are preserved — kernel modloop squashfs won't
be rebuilt unless the kernel version changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 16:21:43 +03:00
413f188278 perf: skip go rebuild if sources unchanged, use rsync for ISO download
- audit binary is only rebuilt when .go files are newer than the binary
- rsync replaces scp for ISO download (delta transfer on repeat builds)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 16:21:14 +03:00
bb4ceab452 perf: cache apk packages between ISO builds
Keep apks_* workdir sections so packages aren't re-downloaded on each build.
Only non-apks sections (kernel, apkovl, final image) are cleaned to pick up changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 16:20:07 +03:00
279ef318e1 fix: genapkovl copy to /var/tmp, udhcpc background mode 2026-03-05 16:17:52 +03:00
40815161fe fix: clean workdir before build so apkovl changes are always applied 2026-03-05 15:05:42 +03:00
8c0e66c3ef fix: copy genapkovl-bee_debug.sh to ~/.mkimage in build-debug.sh 2026-03-05 15:01:20 +03:00
569fd72c62 fix: set TMPDIR=/var/tmp to avoid tmpfs overflow during mkinitfs 2026-03-05 11:49:21 +03:00
554e1eee21 fix: use /var/tmp for mkimage workdir (tmpfs too small) 2026-03-05 11:44:09 +03:00
21c4a42333 fix: install profile to ~/.mkimage, pass overlay via BEE_OVERLAY_DIR env 2026-03-05 11:32:26 +03:00
0c16d9fb76 fix: cd /tmp before mkimage.sh to avoid git repo context conflict 2026-03-05 11:31:20 +03:00
65d92d59c2 feat(iso): 2.1-2.3 — debug ISO builder with SSH access
Builder setup:
- iso/builder/VERSIONS: pinned Alpine 3.21, Go 1.23.6, NVIDIA 550.54.15
- iso/builder/setup-builder.sh: installs build deps + Go on Alpine VM, verifies packages
- iso/builder/build-debug.sh: compiles audit binary, injects SSH keys, builds ISO
- iso/builder/mkimg.bee_debug.sh: Alpine mkimage profile (all audit packages + dropbear)

SSH access (same Ed25519 key as release signing):
- auto-collects ~/.keys/*.key.pub into authorized_keys at build time
- fallback: user bee / password eeb when no keys available
- bee-sshsetup init.d service: creates bee user, sets password, logs status

Debug overlay:
- bee-network: DHCP on all physical interfaces before SSH/audit
- bee-audit-debug: runs audit on boot, leaves SSH up after
- bee-sshsetup: key/password SSH setup
- motd: shows log paths, re-run command, SSH access info

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 10:43:53 +03:00