From 5654a037689415eb06a59ec4738ae902217ab363 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 1 Jun 2017 18:39:12 +0200 Subject: [PATCH] mvebu: fix sysupgrade mvebu was modifying RAMFS_COPY_BIN and RAMFS_COPY_DATA from a sysupgrade_pre_upgrade hook. As the ramfs is created from stage2, this did not have an effect anymore after the staged sysupgrade changes. As it doesn't really hurt to copy fw_printenv and fw_setenv unconditionally, simply add them in /lib/upgrade/platform.sh, so stage2 will see them. Config copying is moved to a function called by platform_copy_config, where it belongs. Signed-off-by: Matthias Schiffer Fixes: FS#821 Fixes: 30f61a34b4cf "base-files: always use staged sysupgrade" --- package/base-files/files/lib/upgrade/stage2 | 2 +- .../mvebu/base-files/lib/upgrade/linksys.sh | 20 +++---------------- .../mvebu/base-files/lib/upgrade/platform.sh | 6 +++++- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/package/base-files/files/lib/upgrade/stage2 b/package/base-files/files/lib/upgrade/stage2 index cc8047d988..bdbb892664 100755 --- a/package/base-files/files/lib/upgrade/stage2 +++ b/package/base-files/files/lib/upgrade/stage2 @@ -48,7 +48,7 @@ switch_to_ramfs() { /bin/sleep /bin/zcat /usr/bin/bzcat /usr/bin/printf /usr/bin/wc \ /bin/cut /usr/bin/printf /bin/sync /bin/mkdir /bin/rmdir \ /bin/rm /usr/bin/basename /bin/kill /bin/chmod /usr/bin/find \ - /bin/mknod + /bin/mknod /bin/touch install_bin /sbin/mtd install_bin /sbin/mount_root diff --git a/target/linux/mvebu/base-files/lib/upgrade/linksys.sh b/target/linux/mvebu/base-files/lib/upgrade/linksys.sh index d06a1b8ed0..63d1cd14a4 100644 --- a/target/linux/mvebu/base-files/lib/upgrade/linksys.sh +++ b/target/linux/mvebu/base-files/lib/upgrade/linksys.sh @@ -73,21 +73,7 @@ platform_do_upgrade_linksys() { } } -linksys_preupgrade() { - local board=$(mvebu_board_name) - - case "$board" in - armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-xp-linksys-mamba|armada-385-linksys-rango) - export RAMFS_COPY_BIN="${RAMFS_COPY_BIN} /usr/sbin/fw_printenv /usr/sbin/fw_setenv" - export RAMFS_COPY_BIN="${RAMFS_COPY_BIN} /bin/mkdir /bin/touch" - export RAMFS_COPY_DATA="${RAMFS_COPY_DATA} /etc/fw_env.config /var/lock/fw_printenv.lock" - - [ -f /tmp/sysupgrade.tgz ] && { - cp /tmp/sysupgrade.tgz /tmp/syscfg/sysupgrade.tgz - } - ;; - esac +platform_copy_config_linksys() { + cp -f /tmp/sysupgrade.tgz /tmp/syscfg/sysupgrade.tgz + sync } - -append sysupgrade_pre_upgrade linksys_preupgrade - diff --git a/target/linux/mvebu/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/base-files/lib/upgrade/platform.sh index 12e5bdcf7c..8085634dca 100755 --- a/target/linux/mvebu/base-files/lib/upgrade/platform.sh +++ b/target/linux/mvebu/base-files/lib/upgrade/platform.sh @@ -5,7 +5,8 @@ . /lib/mvebu.sh -RAMFS_COPY_DATA=/lib/mvebu.sh +RAMFS_COPY_BIN='/usr/sbin/fw_printenv /usr/sbin/fw_setenv' +RAMFS_COPY_DATA='/lib/mvebu.sh /etc/fw_env.config /var/lock/fw_printenv.lock' REQUIRE_IMAGE_METADATA=1 platform_check_image() { @@ -34,6 +35,9 @@ platform_copy_config() { local board=$(mvebu_board_name) case "$board" in + armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-xp-linksys-mamba) + platform_copy_config_linksys + ;; armada-388-clearfog) platform_copy_config_clearfog "$ARGV" ;;