The sysupgrade_pre_upgrade hook was removed with 5e1b4c57de ("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: 5e1b4c57de ("base-files: drop fwtool_pre_upgrade")
Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
The install_bin from /lib/upgrade/common.sh is no longer creating the
symlinks when a secondary parameter is added. But the fw_setenv program was
always copied this way to the ramdisk for the upgrade.
Instead, this should be done using RAMFS_COPY_* like on all other
platforms.
Fixes: 438dcbfe74 ("base-files: automatically handle paths and symlinks for RAMFS_COPY_BIN")
Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
The CE image format used by OpenMesh can contain extra blocks which
are not used for flashing. Only the first three embedded images
(fwupgrade.cfg, kernel, rootfs) are required in this order to successfully
flash an image via sysupgrade. All extra embedded images should be ignored
for the available devices.
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
The platform_check_image_openmesh function used break statements to signal
that the board name matched the image target. This worked because the
sysupgrade binary checked the image inside a loop. The break statement
stopped the loop and skipped any additional check.
Instead the check should be done without such sideeffects by simply
combining the board names and image targets. Only a mismatch should cause a
negative result for the caller and skipping of the additional checks.
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
Both Allnet and OpenMesh sysupgrade uses fw_setenv from uboot-envtools to
change different settings in the uboot environment. uboot-envtools version
2013.01 introduced a filesystem lock "/var/lock/fw_printenv.lock" to guarantee
mutually exclusive access to the uboot environment. But the path /var doesn't
exist on the sysupgrade ramfs.
An upgrade on these devices fails since r36033 ("[package] uboot-envtools:
upgrade to version 2013.01.01") with following messages:
Error opening lock file /var/lock/fw_printenv.lock
failed to update U-Boot environment
Creating the "/var/lock" path before running fw_setenv is therefore a
requirement unless the locking functionality in fw_setenv is removed or
replaced with optional locking.
Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 38483
It will be used on other boards as well.
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34234
2012-11-18 09:32:37 +00:00
Renamed from target/linux/ar71xx/base-files/lib/upgrade/om2p.sh (Browse further)