ar71xx: Create /var/lock directory in platform_do_upgrade_*
authorSven Eckelmann <sven.eckelmann@openmesh.com>
Mon, 1 Oct 2018 09:48:04 +0000 (11:48 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 16:48:04 +0000 (17:48 +0100)
The sysupgrade_pre_upgrade hook was removed with 5e1b4c57ded7 ("base-files:
drop fwtool_pre_upgrade") while there were still scripts using it:

* target/linux/ar71xx/base-files/lib/upgrade/allnet.sh
* target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
* target/linux/ipq40xx/base-files/lib/upgrade/openmesh.sh

Not running the hooks can either prevent a successful upgrade or brick the
device because the fw_setenv program cannot be started correctly.

Instead of adding this hook again, the directory /var/lock for fw_setenv
can also just be created directly before fw_setenv is called.

Fixes: 5e1b4c57ded7 ("base-files: drop fwtool_pre_upgrade")
Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
(backported from c383e0c979fb95ef6de6782112aa86045fe4a6a5)

target/linux/ar71xx/base-files/lib/upgrade/allnet.sh
target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh

index 8aa2b123fbb47c33281e9106b02114b637c2b78b..a521897844c7d8b0ea99c33d27a00d983f07212c 100644 (file)
@@ -3,14 +3,6 @@
 # In case the check fails during boot, a failsafe-system is started to provide
 # a minimal web-interface for flashing a new firmware.
 
-# create /var/lock for the lock "fw_setenv.lock" of fw_setenv
-# the rest is copied using ar71xx's RAMFS_COPY_BIN and RAMFS_COPY_DATA
-platform_add_ramfs_ubootenv()
-{
-       mkdir -p $RAM_ROOT/var/lock
-}
-append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
-
 # determine size of the main firmware partition
 platform_get_firmware_size() {
        local dev size erasesize name
@@ -152,6 +144,8 @@ rootfs_size $rootfs_hexsize
 rootfs_checksum $rootfs_md5
 bootcmd bootm $vmlinux_hexaddr
 EOF
+
+       mkdir -p /var/lock
        fw_setenv -s /tmp/fw_env_upgrade || {
                echo "failed to update U-Boot environment"
                return 1
index 18958271745c190f61e81f4d13d651674eb9ce25..5de4f3bec4c3cedc5e4029aa39038dd5ac9745a0 100644 (file)
@@ -26,14 +26,6 @@ cfg_value_get()
                done
 }
 
-# create /var/lock for the lock "fw_setenv.lock" of fw_setenv
-# the rest is copied using ar71xx's RAMFS_COPY_BIN and RAMFS_COPY_DATA
-platform_add_ramfs_ubootenv()
-{
-       mkdir -p $RAM_ROOT/var/lock
-}
-append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
-
 platform_check_image_target_openmesh()
 {
        img_board_target="$1"
@@ -232,6 +224,7 @@ platform_do_upgrade_openmesh()
        printf "rootfs_size %s\n" $rootfs_checksize >> $uboot_env_upgrade
        printf "rootfs_checksum %s\n" $rootfs_md5 >> $uboot_env_upgrade
 
+       mkdir -p /var/lock
        fw_setenv -s $uboot_env_upgrade || {
                echo "failed to update U-Boot environment"
                return 1