Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,19 @@
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";

# B-0754 iter-3 hardware-firmware cleanup: enable redistributable
# firmware on the installer (Intel SoF / linux-firmware). Without
# this, modern Intel chipsets (Meteor Lake / Lunar Lake / Arrow
# Lake) print scary `ASoC: failed to instantiate card -2` /
# `snd_soc_register_card failed -2` errors during boot because
# their HD Audio Controller probes a SoundWire codec topology that
# needs SoF firmware blobs. Cosmetic — audio is not load-bearing
# for cluster substrate — but per B-0759 first-time-CLI-user
# persona, scary 'ERROR' lines in dmesg are UX noise we don't
# need. Redistributable-only (no allowUnfree needed); ~80MB
# added to ISO; covers WiFi/BT/NIC firmware too as a side benefit.
hardware.enableRedistributableFirmware = true;

nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
Expand Down
18 changes: 17 additions & 1 deletion full-ai-cluster/usb-nixos-installer/zeta-install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,23 @@ for d in "${DATA_DISKS[@]}"; do
i=$((i + 1))
done

sudo partprobe
# Per-device partprobe: bare `partprobe` (no args) probes EVERY
# block device the kernel knows about, including the USB stick we
# booted from (kernel typically exposes USB mass-storage as
# /dev/sdX — commonly /dev/sda on boards with no SATA disks; the
# specific letter isn't guaranteed across hardware/boot order, but
# the failure mode is the same regardless of letter). The booted
# ISO has mounted partitions on that sdX device; partprobe rightfully
# refuses to refresh those + returns non-zero; `set -euo pipefail`
# then bails the whole install. Fix per B-0754 iter-3 empirical
# anchor: pass only the disks WE just partitioned, with an explicit
# per-disk failure handler so the abort message names the offending
# disk + suggests next steps (vs silent set -euo pipefail bail).
echo "Refreshing kernel partition table for installed disks ..."
sudo partprobe "$BOOT_DISK" || bail "partprobe failed for BOOT disk $BOOT_DISK — check 'dmesg | tail' for kernel detail; manual recovery: 'sudo partprobe $BOOT_DISK' then 'lsblk' to verify partition table"
for d in "${DATA_DISKS[@]}"; do
sudo partprobe "$d" || bail "partprobe failed for DATA disk $d — check 'dmesg | tail'; manual recovery: 'sudo partprobe $d' then 'lsblk' to verify partition table"
done
sleep 2

# ── Step 5: format + mount ────────────────────────────────────────
Expand Down
Loading