12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- 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 fc403332bd38fc521a056ab85783abd90629a1cf..63d1cd14a4deed407b217a518ae25a752f62969e 100644
- --- a/target/linux/mvebu/base-files/lib/upgrade/linksys.sh
- +++ b/target/linux/mvebu/base-files/lib/upgrade/linksys.sh
- @@ -73,14 +73,7 @@ platform_do_upgrade_linksys() {
- }
- }
-
- -linksys_preupgrade() {
- - 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
- - }
- +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 46b84435977b83d002ae766fe37c6459a55177ff..7465f7be7649f778ada62cf90aa94b16c11c7e34 100755
- --- a/target/linux/mvebu/base-files/lib/upgrade/platform.sh
- +++ b/target/linux/mvebu/base-files/lib/upgrade/platform.sh
- @@ -4,7 +4,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'
-
- platform_check_image() {
- local board=$(mvebu_board_name)
- @@ -39,6 +40,16 @@ platform_do_upgrade() {
- esac
- }
-
- +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
- + ;;
- + esac
- +}
- +
- disable_watchdog() {
- killall watchdog
- ( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
|