mirror of https://github.com/hak5/openwrt.git
ar71xx: Fix sysupgrades for Allnet and OpenMesh devices
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: 38483lede-17.01
parent
68e13de37d
commit
80a15fe8ad
|
@ -4,9 +4,11 @@
|
||||||
# a minimal web-interface for flashing a new firmware.
|
# a minimal web-interface for flashing a new firmware.
|
||||||
|
|
||||||
# make sure we got uboot-envtools and fw_env.config copied over to the ramfs
|
# make sure we got uboot-envtools and fw_env.config copied over to the ramfs
|
||||||
|
# create /var/lock for the lock "fw_setenv.lock" of fw_setenv
|
||||||
platform_add_ramfs_ubootenv() {
|
platform_add_ramfs_ubootenv() {
|
||||||
[ -e /usr/sbin/fw_printenv ] && install_bin /usr/sbin/fw_printenv /usr/sbin/fw_setenv
|
[ -e /usr/sbin/fw_printenv ] && install_bin /usr/sbin/fw_printenv /usr/sbin/fw_setenv
|
||||||
[ -e /etc/fw_env.config ] && install_file /etc/fw_env.config
|
[ -e /etc/fw_env.config ] && install_file /etc/fw_env.config
|
||||||
|
mkdir -p $RAM_ROOT/var/lock
|
||||||
}
|
}
|
||||||
append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
|
append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
|
||||||
|
|
||||||
|
|
|
@ -27,10 +27,12 @@ cfg_value_get()
|
||||||
}
|
}
|
||||||
|
|
||||||
# make sure we got uboot-envtools and fw_env.config copied over to the ramfs
|
# make sure we got uboot-envtools and fw_env.config copied over to the ramfs
|
||||||
|
# create /var/lock for the lock "fw_setenv.lock" of fw_setenv
|
||||||
platform_add_ramfs_ubootenv()
|
platform_add_ramfs_ubootenv()
|
||||||
{
|
{
|
||||||
[ -e /usr/sbin/fw_printenv ] && install_bin /usr/sbin/fw_printenv /usr/sbin/fw_setenv
|
[ -e /usr/sbin/fw_printenv ] && install_bin /usr/sbin/fw_printenv /usr/sbin/fw_setenv
|
||||||
[ -e /etc/fw_env.config ] && install_file /etc/fw_env.config
|
[ -e /etc/fw_env.config ] && install_file /etc/fw_env.config
|
||||||
|
mkdir -p $RAM_ROOT/var/lock
|
||||||
}
|
}
|
||||||
append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
|
append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue