Update boot order configuration for eMMC first, then network
Modify the first-boot script and documentation to set the EEPROM boot order to 0xf21, prioritizing eMMC boot followed by network boot. Adjust network boot settings for faster failure on DHCP timeouts and update related scripts and documentation to reflect these changes. Enhance the rescue script to directly modify EEPROM settings without requiring a chroot into eMMC, streamlining the recovery process for devices stuck in network-only boot. Update relevant documentation to ensure clarity on the new boot order and its implications.
This commit is contained in:
@@ -6,7 +6,7 @@ This describes the full flow from power-on to eMMC deploy/backup when using **ne
|
||||
|
||||
## Overview
|
||||
|
||||
1. **reTerminal** is set to try **network boot first** (EEPROM `BOOT_ORDER=0x21`).
|
||||
1. **reTerminal** is set to try **eMMC first, then network** (EEPROM `BOOT_ORDER=0xf21`).
|
||||
2. It is connected to the **same LAN as the LXC’s eth1** (e.g. 10.20.50.0/24).
|
||||
3. On power-on it gets an IP via **DHCP** and loads **boot files via TFTP** from the LXC.
|
||||
4. The **netboot environment** (kernel + rootfs) runs **provisioning-client.sh**, which registers with the **dashboard** and polls for an action.
|
||||
@@ -29,7 +29,7 @@ The **dashboard** (Flask) runs in the LXC and is reachable at e.g. `http://10.20
|
||||
|
||||
### 2. reTerminal (device)
|
||||
|
||||
- **EEPROM**: `BOOT_ORDER=0x21` (network first, then SD/eMMC). Can be set by cloud-init first-boot on an already-flashed device.
|
||||
- **EEPROM**: `BOOT_ORDER=0xf21` (eMMC first, then network). Can be set by cloud-init first-boot on an already-flashed device.
|
||||
- **Network**: Ethernet connected to the same segment as the LXC’s **eth1** (e.g. same switch/VLAN as 10.20.50.0/24).
|
||||
- On **power-on**:
|
||||
1. Pi 4/CM4 firmware does **DHCP** on the wired interface.
|
||||
@@ -93,7 +93,7 @@ So the “netboot environment” is either:
|
||||
|
||||
- **LXC**: eth1 = 10.20.50.1/24, dnsmasq (DHCP + TFTP on eth1; netboot options 66/67 in a separate snippet so they can be toggled), `/srv/tftpboot` with RPi 4 boot files, NAT for 10.20.50.0/24 via eth0. Toggle script **/opt/cm4-provisioning/toggle-network-boot-dhcp.sh** (enable/disable/status). Dashboard running, `golden.img` present for Deploy.
|
||||
See **NETWORK-BOOT-LXC.md** and **setup-network-boot-on-lxc.sh**.
|
||||
- **reTerminal**: EEPROM boot order = network first; Ethernet on 10.20.50.0/24; netboot environment that runs **provisioning-client.sh** with `PROVISIONING_SERVER=http://10.20.50.1:5000`.
|
||||
- **reTerminal**: EEPROM boot order = eMMC first, then network; Ethernet on 10.20.50.0/24; netboot environment that runs **provisioning-client.sh** with `PROVISIONING_SERVER=http://10.20.50.1:5000`.
|
||||
- **Netboot root**: Must provide network, curl, and the client script (NFS, initramfs, or custom root).
|
||||
|
||||
The **TFTP** setup only gets the Pi to boot a kernel (and optional root). The **provisioning** (Deploy/Backup) is done by that kernel’s environment running the **network-client** against the dashboard on the LXC.
|
||||
|
||||
Reference in New Issue
Block a user