Files
homelab/images/edge-host-iso
k.rennerandClaude Fable 5 244929fff2 edge-host-iso: pin mmc modules into the installed initramfs
mkinitcpio's autodetect missed the eMMC stack in the chroot; the
installed system hung unbootable with root on mmcblk0p2. Pin
sdhci_acpi/sdhci_pci/mmc_block in MODULES and regenerate during install.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 13:48:19 +02:00
..

edge-host installer ISO

Bootable Arch installer image for edge-1.srv.renner.uno (the bare-metal N100 that replaces the k8s-edge VM — see ansible/roles/edge-host).

The image is the official archiso releng profile plus:

  • edge-install in the live environment — partitions the NVMe (ESP + ext4 root, systemd-boot), pacstraps the base system incl. docker/python, configures DHCP via systemd-networkd, enables sshd and drops the common homelab SSH keys for root (key-only, no root password)
  • the extra disk tools the installer needs

Division of labour: the ISO produces an ansible-ready base system; all service configuration (zwave-js-ui, sml2mqtt, open3e/CAN) stays in ansible/roles/edge-host as the single source of truth. Rebuilding the box is: boot ISO → edge-install → run the play.

Build

sudo pacman -S archiso
cd images/edge-host-iso
sudo ./build.sh          # ISO lands in ./out/

The profile is assembled at build time from /usr/share/archiso/configs/releng plus the overlay in airootfs/ — the repo carries only the delta, so archiso updates flow in automatically.

Install

  1. Write the ISO to a USB stick: cp out/edge-host-*.iso /dev/sdX
  2. Boot the target from it (UEFI, Secure Boot off; one-time F12/setup visit if the box doesn't already boot USB first)
  3. Either on the console (auto-login as root) or headless — ssh root@<dhcp-ip> works out of the box, the live env carries the homelab keys — run edge-install. It auto-detects the internal disk (NVMe, else eMMC — covers the Wyse 3040 — else first non-USB disk), shows the target and requires typing the hostname before wiping anything. Override with edge-install /dev/sdY.
  4. Reboot, then from the workstation:
    cd ansible
    ansible-playbook -i inventory/pve_hosts.yml plays/common.yml -l edge_host
    ansible-playbook -i inventory/pve_hosts.yml plays/install-edge-host.yml
    
  5. Continue with the cutover checklist in ansible/roles/edge-host/README.md.