Skip to content

Commit

Permalink
base-files: safer sysupgrade.tar for kernel-out-of-UBI
Browse files Browse the repository at this point in the history
Ensure that the kernel CRC is invalidated while rootfs is being updated.
This allows the bootloader to detect an interrupted sysupgrade and fall
back to an alternate booting method, such as TFTP, instead of just going
ahead with normal boot and effectively bricking the device.

Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
  • Loading branch information
Lanchon authored and dangowrt committed Apr 19, 2022
1 parent 073dc45 commit ecbcc0b
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion package/base-files/files/lib/upgrade/nand.sh
Expand Up @@ -303,7 +303,7 @@ nand_upgrade_tar() {
local has_env=0

[ "$kernel_length" != 0 -a -n "$kernel_mtd" ] && {
tar xf "$tar_file" ${board_dir}/kernel -O | mtd write - $CI_KERNPART
mtd erase $CI_KERNPART
}
[ "$kernel_length" = 0 -o ! -z "$kernel_mtd" ] && has_kernel=
[ "$CI_KERNPART" = "none" ] && has_kernel=
Expand All @@ -317,6 +317,10 @@ nand_upgrade_tar() {
ubiupdatevol /dev/$root_ubivol -s $rootfs_length -
}

[ "$kernel_length" != 0 -a -n "$kernel_mtd" ] && {
tar xf "$tar_file" ${board_dir}/kernel -O | \
mtd -n write - $CI_KERNPART
}
[ "$has_kernel" = "1" ] && {
local kern_ubivol="$( nand_find_volume $ubidev $CI_KERNPART )"
tar xf "$tar_file" ${board_dir}/kernel -O | \
Expand Down

0 comments on commit ecbcc0b

Please sign in to comment.