Enhance the NETWORK-BOOT-LXC.md documentation with detailed steps for testing network boot functionality, including prerequisites, expected outcomes, and quick testing methods. Introduce a new section on monitoring network boot status on the LXC, outlining commands to check DHCP leases, dnsmasq status, and registered devices. Update the initramfs scripts to support a rescue mode for devices stuck in network-only boot, allowing users to change boot order settings. Include a new rescue script for eMMC management in the build process.
37 lines
1.3 KiB
Bash
37 lines
1.3 KiB
Bash
#!/bin/sh
|
|
# Rescue script: mount eMMC root and chroot to run rpi-eeprom-config.
|
|
# Use this when stuck in network-only boot (BOOT_ORDER=0x2) to set BOOT_ORDER=0x1 or 0x21.
|
|
# Run from the initramfs rescue shell (after booting with provisioning_rescue=1 in cmdline).
|
|
|
|
set -e
|
|
ROOT="/mnt/emmc"
|
|
BOOT="$ROOT/boot/firmware"
|
|
[ -d "$ROOT/boot" ] && [ ! -d "$BOOT" ] && BOOT="$ROOT/boot"
|
|
|
|
echo "=== Mounting eMMC for EEPROM config ==="
|
|
# CM4 / reTerminal: eMMC is usually mmcblk0, p1=boot (FAT), p2=root (ext4)
|
|
if [ ! -b /dev/mmcblk0p2 ]; then
|
|
echo "No /dev/mmcblk0p2 found. Try: ls /dev/mmcblk*"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$ROOT"
|
|
mount /dev/mmcblk0p2 "$ROOT" || { echo "Mount root failed"; exit 1; }
|
|
if [ -b /dev/mmcblk0p1 ]; then
|
|
mkdir -p "$BOOT"
|
|
mount /dev/mmcblk0p1 "$BOOT" 2>/dev/null || true
|
|
fi
|
|
mount -t proc none "$ROOT/proc"
|
|
mount -t sysfs none "$ROOT/sys"
|
|
mount --bind /dev "$ROOT/dev"
|
|
mount --bind /dev/pts "$ROOT/dev/pts" 2>/dev/null || true
|
|
|
|
if [ -x "$ROOT/usr/bin/rpi-eeprom-config" ]; then
|
|
echo "Chroot to eMMC and run: rpi-eeprom-config --edit"
|
|
echo "Set BOOT_ORDER=0x1 (eMMC only) or 0x21 (network first, then eMMC), save, then exit and run: reboot"
|
|
chroot "$ROOT" /usr/bin/rpi-eeprom-config --edit
|
|
else
|
|
echo "rpi-eeprom-config not found in eMMC. Chrooting anyway; run: apt install rpi-eeprom && rpi-eeprom-config --edit"
|
|
chroot "$ROOT" /bin/sh -i
|
|
fi
|