mvebu: fix sysupgrade
authorMatthias Schiffer <mschiffer@universe-factory.net>
Thu, 1 Jun 2017 16:39:12 +0000 (18:39 +0200)
committerMatthias Schiffer <mschiffer@universe-factory.net>
Thu, 1 Jun 2017 18:41:19 +0000 (20:41 +0200)
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 <mschiffer@universe-factory.net>
Fixes: FS#821
Fixes: 30f61a34b4cf "base-files: always use staged sysupgrade"
package/base-files/files/lib/upgrade/stage2
target/linux/mvebu/base-files/lib/upgrade/linksys.sh
target/linux/mvebu/base-files/lib/upgrade/platform.sh

index cc8047d988e39ca9ba27d2588744aad469d1d978..bdbb8926643287f48a4ae62c5d1d4b4a29130859 100755 (executable)
@@ -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
index d06a1b8ed0534364b595618f24b65f9f3a3e275d..63d1cd14a4deed407b217a518ae25a752f62969e 100644 (file)
@@ -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
-
index 12e5bdcf7c4341ca4e4876bd4ac39fd512a81870..8085634dca647b3aa7ba47768a8f6bb8087cbc36 100755 (executable)
@@ -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"
                ;;