diff --git a/patches/lede/0030-mvebu-fix-sysupgrade.patch b/patches/lede/0030-mvebu-fix-sysupgrade.patch new file mode 100644 index 0000000000000000000000000000000000000000..bf29f526d02cc14baae3ef795c4918a362666bf8 --- /dev/null +++ b/patches/lede/0030-mvebu-fix-sysupgrade.patch @@ -0,0 +1,85 @@ +From: Matthias Schiffer <mschiffer@universe-factory.net> +Date: Thu, 1 Jun 2017 18:39:12 +0200 +Subject: 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 <mschiffer@universe-factory.net> +Fixes: FS#821 +Fixes: 30f61a34b4cf "base-files: always use staged sysupgrade" + +diff --git a/package/base-files/files/lib/upgrade/stage2 b/package/base-files/files/lib/upgrade/stage2 +index cc8047d988e39ca9ba27d2588744aad469d1d978..bdbb8926643287f48a4ae62c5d1d4b4a29130859 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 d06a1b8ed0534364b595618f24b65f9f3a3e275d..63d1cd14a4deed407b217a518ae25a752f62969e 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 77578e28d42fb7ca5e3f057e42ac5818e851736f..55c084483995d548556a560e171462f2d5456172 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() { +@@ -31,6 +32,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" + ;;