Next we'll boot the Raspberry in order to update and configure the EEPROM, see [1]
Log in as root and start the RPi configuration tool:
sudo su - raspi-config
Select `Advanced Options` -> `Bootloader Version` -> `Latest`, then choose `Yes` to `Reset boot ROM to defaults`, then reboot the Raspberry.
Here a few useful commands:
# show current and latest firmware version, they should match now rpi-eeprom-update # list current EEPROM configuration rpi-eeprom-config # edit EEPROM configuration rpi-eeprom-config --edit
The default EEPROM configuration looks like this:
[all] BOOT_UART=0 WAKE_ON_GPIO=1 POWER_OFF_ON_HALT=0
I'm reading through the EEPROM configuration properties [2], compiling a list of settings that I find useful.
I've ended up with the following configuration:
[all] WAKE_ON_GPIO=0 # useful if a reset button is installed on GPIO pins, we're not using it POWER_OFF_ON_HALT=1 # want to power off the RPi as much as possible on halt BOOT_ORDER=0xf1 # try to boot from SD card in a loop, ignore all other boot modes, as we're not using them CLIENT_IP=192.168.0.92 # LAN cable is connected, let's configure the network statically SUBNET=255.255.255.0 # standard netmask for local subnet GATEWAY=192.168.0.1 # my network gateway aka IP of the telco router HDMI_DELAY=0 # I want to catch a glimpse of the HDMI diagnostics screen, could be useful for debugging I guess ENABLE_SELF_UPDATE=0 # prefer to update the bootloader manually NET_INSTALL_ENABLED=0 # we do not want network install, disable to shorten boot times USB_MSD_DISCOVER_TIMEOUT=5000 # timeout for mass storage detection over USB, setting to minimum although it may not be used due to the BOOT_ORDER we use USB_MSD_LUN_TIMEOUT=100 # minimum wait time to cycle through SD card LUNs USB_MSD_PWR_OFF_TIME=0 # do not power cycle USB ports, we'll see later if this causes any trouble or not
Applied that configuration with `rpi-eeprom-config --edit` and rebooted. The RPi now only tries the SD card, but the initial diagnostics screen (which pops up when rebooting with no SD card inserted) doesn't show my static IP configuration. I don't care for that right now as this seems to only be used for net boot purposes, which I don't use currently. Not sure if it maybe stops some DHCP client from starting up, which would be great, as DHCP usually slows down boot time quite a bit.
[1] Updating the EEPROM Configuration
⬅ 3. Preparing the SD card image
➡ 5. Kernel build using Debian as base image
⬆ The minimal Raspberry 4 project
Created: 6/Jan/2024
Modified: 21/Jan/2024