Remove old code from rauc-hook and GRUB env initialization (#3457)

With upgrade path enforced in standard HAOS upgrade procedure, we don't need to
keep some old code anymore. This means that upgrade from some very old HAOS
version (pre-8.0) to HAOS 13+ will fail in the install-check hook but this is
rather desirable.
This commit is contained in:
Jan Čermák 2024-07-08 12:12:45 +02:00 committed by GitHub
parent 33d8b538ad
commit 4308c45391
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 39 deletions

View File

@ -9,15 +9,10 @@ function hassos_pre_image() {
cp "${BOARD_DIR}/../grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg" cp "${BOARD_DIR}/../grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg"
cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt" cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" create grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" create
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set ORDER="A B" grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set ORDER="A B"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set A_OK=1 grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set A_OK=1
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set A_TRY=0 grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set A_TRY=0
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" create
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set ORDER="B A"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set B_OK=1
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set B_TRY=0
cp "${EFIPART_DATA}/EFI/BOOT/grubenv-A" "${EFIPART_DATA}/EFI/BOOT/grubenv"
cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/" cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/"
} }

View File

@ -9,15 +9,10 @@ function hassos_pre_image() {
cp "${BOARD_DIR}/../grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg" cp "${BOARD_DIR}/../grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg"
cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt" cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" create grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" create
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set ORDER="A B" grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set ORDER="A B"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set A_OK=1 grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set A_OK=1
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-A" set A_TRY=0 grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set A_TRY=0
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" create
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set ORDER="B A"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set B_OK=1
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv-B" set B_TRY=0
cp "${EFIPART_DATA}/EFI/BOOT/grubenv-A" "${EFIPART_DATA}/EFI/BOOT/grubenv"
cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/" cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/"
} }

View File

@ -96,14 +96,6 @@ post_install_kernel() {
systemctl start mnt-boot.mount systemctl start mnt-boot.mount
fi fi
# OS 7 -> 8 upgrade path:
# If grub is installed, and the current system lacks GRUB environment
# manipulation tools, manually create a grubenv for the right boot slot
if [ -f "${BOOT_MNT}"/EFI/BOOT/grub.cfg ] && ! command -v grub-editenv > /dev/null; then
cp -f "${BOOT_MNT}/EFI/BOOT/grubenv-${RAUC_SLOT_BOOTNAME}" "${BOOT_MNT}"/EFI/BOOT/grubenv
echo "Copied default GRUB environment grubenv-${RAUC_SLOT_BOOTNAME} as grubenv."
fi
# Copy new OS to appropriate directory # Copy new OS to appropriate directory
if [ "$RAUC_SYSTEM_COMPATIBLE" = "haos-rpi5-64" ]; then if [ "$RAUC_SYSTEM_COMPATIBLE" = "haos-rpi5-64" ]; then
rm -rf "${BOOT_MNT}/slot-${RAUC_SLOT_BOOTNAME}" rm -rf "${BOOT_MNT}/slot-${RAUC_SLOT_BOOTNAME}"
@ -118,22 +110,10 @@ case "$1" in
install-check) install-check)
if [ "$RAUC_MF_COMPATIBLE" = "$RAUC_SYSTEM_COMPATIBLE" ]; then if [ "$RAUC_MF_COMPATIBLE" = "$RAUC_SYSTEM_COMPATIBLE" ]; then
# Check if GRUB env has been corrupted. This is only problematic # Check if GRUB env has been corrupted. This is only problematic
# with OS 8, where compatible matches. # with OS 8+, where compatible matches.
check_grubenv check_grubenv
exit 0 exit 0
fi fi
# Be compatible with hassos OS ID
# shellcheck disable=SC3060
rauc_os_compatible=${RAUC_MF_COMPATIBLE/haos-/hassos-}
if [ "$rauc_os_compatible" = "$RAUC_SYSTEM_COMPATIBLE" ]; then
exit 0
fi
# generic-x86-64: Be compatible with intel-nuc
# shellcheck disable=SC3060
rauc_board_compatible=${rauc_os_compatible/generic-x86-64/intel-nuc}
if [ "${rauc_board_compatible}" = "$RAUC_SYSTEM_COMPATIBLE" ]; then
exit 0
fi
echo "Compatible does not match!" 1>&2 echo "Compatible does not match!" 1>&2
exit 10 exit 10
;; ;;