ipq40xx: fix openmesh sysupgrade with tar content out of order

The tar extraction depends on the order in which the files
are added to the tar file. Since the order is not guaranteed
and depends on the host system, the combined mtd write fails
with sysupgrade images built on some systems.
Fix by changing to tar file order independent mtd write.

Fixes: 86e18f6706 ("ipq806x: add support for OpenMesh A42")
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
master
Marek Lindner 6 years ago committed by Mathias Kresin
parent 2b4ac79a79
commit 8ad45992ac
  1. 6
      target/linux/ipq40xx/base-files/lib/upgrade/openmesh.sh

@ -76,9 +76,9 @@ platform_do_upgrade_openmesh() {
# take care of restoring a saved config # take care of restoring a saved config
[ "$SAVE_CONFIG" -eq 1 ] && restore_backup="${MTD_CONFIG_ARGS} -j ${CONF_TAR}" [ "$SAVE_CONFIG" -eq 1 ] && restore_backup="${MTD_CONFIG_ARGS} -j ${CONF_TAR}"
# write concatinated kernel + rootfs to flash mtd -q erase inactive
tar xf $tar_file ${board_dir}/kernel ${board_dir}/root -O | \ tar xf $tar_file ${board_dir}/root -O | mtd -n -p $kernel_length $restore_backup write - $PART_NAME
mtd $restore_backup write - $PART_NAME tar xf $tar_file ${board_dir}/kernel -O | mtd -n write - $PART_NAME
# prepare new u-boot env # prepare new u-boot env
if [ "$next_boot_part" = "1" ]; then if [ "$next_boot_part" = "1" ]; then

Loading…
Cancel
Save