rpi-eeprom-update: Output warnings to stderr

Output non-fatal warnings to stderr in order to avoid breaking
programs like rpi-eeeprom-config which parse the output of
rpi-eeprom-update.

Fixes: https://github.com/raspberrypi/rpi-eeprom/issues/548
This commit is contained in:
Tim Gover
2024-03-01 09:16:46 +00:00
committed by Tim Gover
parent 11c64e3721
commit 18620870d7

View File

@@ -110,6 +110,10 @@ die() {
exit ${EXIT_FAILED} exit ${EXIT_FAILED}
} }
warn() {
echo "$@" >&2
}
getBootloaderConfig() { getBootloaderConfig() {
# Prefer extracting bootloader's config from DT. # Prefer extracting bootloader's config from DT.
# #
@@ -192,9 +196,9 @@ applyRecoveryUpdate()
getBootloaderCurrentVersion getBootloaderCurrentVersion
BOOTLOADER_UPDATE_VERSION=$(strings "${BOOTLOADER_UPDATE_IMAGE}" | grep BUILD_TIMESTAMP | sed 's/.*=//g') BOOTLOADER_UPDATE_VERSION=$(strings "${BOOTLOADER_UPDATE_IMAGE}" | grep BUILD_TIMESTAMP | sed 's/.*=//g')
if [ "${BOOTLOADER_CURRENT_VERSION}" -gt "${BOOTLOADER_UPDATE_VERSION}" ]; then if [ "${BOOTLOADER_CURRENT_VERSION}" -gt "${BOOTLOADER_UPDATE_VERSION}" ]; then
echo " WARNING: Installing an older bootloader version." warn " WARNING: Installing an older bootloader version."
echo " Update the rpi-eeprom package to fetch the latest bootloader images." warn " Update the rpi-eeprom package to fetch the latest bootloader images."
echo warn
fi fi
echo " CURRENT: $(date -u "-d@${BOOTLOADER_CURRENT_VERSION}") (${BOOTLOADER_CURRENT_VERSION})" echo " CURRENT: $(date -u "-d@${BOOTLOADER_CURRENT_VERSION}") (${BOOTLOADER_CURRENT_VERSION})"
echo " UPDATE: $(date -u "-d@${BOOTLOADER_UPDATE_VERSION}") (${BOOTLOADER_UPDATE_VERSION})" echo " UPDATE: $(date -u "-d@${BOOTLOADER_UPDATE_VERSION}") (${BOOTLOADER_UPDATE_VERSION})"
@@ -254,9 +258,10 @@ applyRecoveryUpdate()
# of power loss. # of power loss.
if [ "${RPI_EEPROM_USE_FLASHROM}" = 1 ]; then if [ "${RPI_EEPROM_USE_FLASHROM}" = 1 ]; then
echo echo
echo "UPDATING bootloader." echo "UPDATING bootloader. This could take up to a minute. Please wait"
echo
echo "*** Do not disconnect the power until the update is complete ***"
echo echo
echo "*** WARNING: Do not disconnect the power until the update is complete ***"
echo "If a problem occurs then the Raspberry Pi Imager may be used to create" echo "If a problem occurs then the Raspberry Pi Imager may be used to create"
echo "a bootloader rescue SD card image which restores the default bootloader image." echo "a bootloader rescue SD card image which restores the default bootloader image."
echo echo
@@ -310,11 +315,11 @@ applyUpdate() {
if [ "${RPI_EEPROM_USE_FLASHROM}" = 1 ]; then if [ "${RPI_EEPROM_USE_FLASHROM}" = 1 ]; then
flashrom_probe_ok=0 flashrom_probe_ok=0
if ! [ -e "${SPIDEV}" ]; then if ! [ -e "${SPIDEV}" ]; then
echo "WARNING: SPI device ${SPIDEV} not found. Setting RPI_EEPROM_USE_FLASHROM to 0" warn "WARNING: SPI device ${SPIDEV} not found. Setting RPI_EEPROM_USE_FLASHROM to 0"
fi fi
if ! flashrom -p linux_spi:dev=${SPIDEV},spispeed=16000 > /dev/null 2>&1; then if ! flashrom -p linux_spi:dev=${SPIDEV},spispeed=16000 > /dev/null 2>&1; then
echo "WARNING: Flashrom probe of ${SPIDEV} failed" warn "WARNING: Flashrom probe of ${SPIDEV} failed"
else else
flashrom_probe_ok=1 flashrom_probe_ok=1
fi fi
@@ -407,7 +412,7 @@ checkDependencies() {
# flashrom is available. # flashrom is available.
[ -z "${RPI_EEPROM_USE_FLASHROM}" ] && RPI_EEPROM_USE_FLASHROM=0 [ -z "${RPI_EEPROM_USE_FLASHROM}" ] && RPI_EEPROM_USE_FLASHROM=0
if [ "${RPI_EEPROM_USE_FLASHROM}" -eq 1 ] && ! command -v flashrom > /dev/null; then if [ "${RPI_EEPROM_USE_FLASHROM}" -eq 1 ] && ! command -v flashrom > /dev/null; then
echo "WARNING: flashrom not found. Setting RPI_EEPROM_USE_FLASHROM to 0" warn "WARNING: flashrom not found. Setting RPI_EEPROM_USE_FLASHROM to 0"
RPI_EEPROM_USE_FLASHROM=0 RPI_EEPROM_USE_FLASHROM=0
fi fi
@@ -710,11 +715,11 @@ findBootFS()
if [ "${BCM_CHIP}" = 2712 ]; then if [ "${BCM_CHIP}" = 2712 ]; then
if ! [ -e "${BOOTFS}/config.txt" ]; then if ! [ -e "${BOOTFS}/config.txt" ]; then
echo "WARNING: BOOTFS: \"${BOOTFS}/config.txt\" not found. Please check boot directory" warn "WARNING: BOOTFS: \"${BOOTFS}/config.txt\" not found. Please check boot directory"
fi fi
else else
if [ "$(find "${BOOTFS}/" -name "*.elf" | wc -l)" = 0 ]; then if [ "$(find "${BOOTFS}/" -name "*.elf" | wc -l)" = 0 ]; then
echo "WARNING: BOOTFS: \"${BOOTFS}\" contains no .elf files. Please check boot directory" warn "WARNING: BOOTFS: \"${BOOTFS}\" contains no .elf files. Please check boot directory"
fi fi
fi fi
} }