Add DHCP leases management to dashboard and UI
Implement a new API endpoint to retrieve current DHCP leases from dnsmasq, enhancing the dashboard's functionality for monitoring network devices. Update the home.html template to display DHCP lease information in a structured table format, including IP, MAC, hostname, and expiry details. Introduce buttons for enabling and disabling DHCP network boot, improving user interaction. Enhance JavaScript to fetch and display lease data dynamically, ensuring users have real-time visibility of network activity.
This commit is contained in:
40
emmc-provisioning/scripts/check-network-boot-priority.sh
Normal file
40
emmc-provisioning/scripts/check-network-boot-priority.sh
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
# Check if network boot is set as first priority on a Pi 4 / CM4 (reTerminal).
|
||||
# Run on the device: ./check-network-boot-priority.sh
|
||||
# Or from your machine: ssh pi@<device-ip> 'bash -s' < scripts/check-network-boot-priority.sh
|
||||
|
||||
set -e
|
||||
# BOOT_ORDER: 0x2 = network, 0x1 = SD/eMMC. 0x21 = network first, then local storage.
|
||||
WANT_BOOT_ORDER="0x21"
|
||||
|
||||
get_config() {
|
||||
if command -v vcgencmd >/dev/null 2>&1; then
|
||||
vcgencmd bootloader_config 2>/dev/null || true
|
||||
fi
|
||||
if command -v rpi-eeprom-update >/dev/null 2>&1 && command -v rpi-eeprom-config >/dev/null 2>&1; then
|
||||
PEE="$(rpi-eeprom-update -l 2>/dev/null)"
|
||||
if [[ -n "$PEE" && -f "$PEE" ]]; then
|
||||
rpi-eeprom-config "$PEE" 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
BOOTCONF="$(get_config)"
|
||||
BOOT_ORDER="$(echo "$BOOTCONF" | grep -oE 'BOOT_ORDER=[0-9A-Fa-fx]+' | head -1 | cut -d= -f2)"
|
||||
|
||||
if [[ -z "$BOOT_ORDER" ]]; then
|
||||
echo "Could not read EEPROM config (vcgencmd bootloader_config or rpi-eeprom-config)."
|
||||
echo "Is this a Raspberry Pi 4 or CM4 with rpi-eeprom / vcgencmd?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "BOOT_ORDER=$BOOT_ORDER (current)"
|
||||
echo "Expected for network first: $WANT_BOOT_ORDER (0x2=network, 0x1=SD/eMMC; 0x21 = network then local)"
|
||||
|
||||
if [[ "$(echo "$BOOT_ORDER" | tr '[:upper:]' '[:lower:]')" == "$(echo "$WANT_BOOT_ORDER" | tr '[:upper:]' '[:lower:]')" ]]; then
|
||||
echo "Result: Network boot is set as first priority."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Result: Network boot is NOT first (current: $BOOT_ORDER). To set network first, set BOOT_ORDER=0x21 (e.g. via cloud-init first-boot or rpi-eeprom-config --edit)."
|
||||
exit 2
|
||||
Reference in New Issue
Block a user