hi lynxis, i just added a slightly tweaked version of the patch to my merge tree
John On 17/01/2014 03:49, Alexander Couzens wrote: > We don't need to kill any processes in failsafe, because we are already at > a low memory footprint. This patch fix also sysupgrade in failsafe. sysupgrade > in failsafe was broken because it kills all processes. It also kills the lock > which keeps the device in rescue modus and prevent procd from continuing > booting. procd continues now the boot process until it get stuck > in initd/preinit.c:spawn_procd() because it find out that a sysupgrade is > happening and is going to sleep() inside a while(true) loop. > > Now we have: > sysupgrade flashing the device, > procd sleep()ing inside a while(true) loop. > > Because procd is in the while(true) loop, the hw watchdog doesn't receive > anymore refreshes and reboot the device after 30 seconds. This is usually > faster than flashing the device. > > Signed-off-by: Alexander Couzens <lyn...@fe80.eu> > --- > package/base-files/Makefile | 2 +- > package/base-files/files/sbin/sysupgrade | 10 +++++++--- > 2 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/package/base-files/Makefile b/package/base-files/Makefile > index 0160e41..d6c5938 100644 > --- a/package/base-files/Makefile > +++ b/package/base-files/Makefile > @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk > include $(INCLUDE_DIR)/version.mk > > PKG_NAME:=base-files > -PKG_RELEASE:=149 > +PKG_RELEASE:=150 > > PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ > PKG_BUILD_DEPENDS:=opkg/host > diff --git a/package/base-files/files/sbin/sysupgrade > b/package/base-files/files/sbin/sysupgrade > index 56e9a92..106b9f1 100755 > --- a/package/base-files/files/sbin/sysupgrade > +++ b/package/base-files/files/sbin/sysupgrade > @@ -210,9 +210,13 @@ run_hooks "" $sysupgrade_pre_upgrade > ubus call system upgrade > touch /tmp/sysupgrade > > -kill_remaining TERM > -sleep 3 > -kill_remaining KILL > +if [ ! -f /tmp/failsafe ] ; then > + kill_remaining TERM > + sleep 3 > + kill_remaining KILL > +else > + v "In failsafe mode: do not kill anything" > +fi > > if [ -n "$(rootfs_type)" ]; then > v "Switching to ramdisk..." _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel