diff --git a/package/base-files/files/lib/upgrade/nand.sh b/package/base-files/files/lib/upgrade/nand.sh index f927c066da..a93c9acccd 100644 --- a/package/base-files/files/lib/upgrade/nand.sh +++ b/package/base-files/files/lib/upgrade/nand.sh @@ -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= @@ -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 | \