base-files: Ensure reset only works if an overlay exists
authorChris Blake <chrisrblake93@gmail.com>
Mon, 24 Oct 2016 18:13:15 +0000 (13:13 -0500)
committerJohn Crispin <john@phrozen.org>
Thu, 27 Oct 2016 10:45:05 +0000 (12:45 +0200)
Currently the reset script will try to run jffs2reset on boards that are
running a rw rootfs, such as ext4. This will cause jffs2reset to fail
and the board to never reboot while the LED blinks until a manual
reboot.

This commit does two different things:
1. Disables reset on boards that do not have an overlay mount
2. Disables the Blinking LED after 5 seconds if the board does not
support reset

Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
package/base-files/files/etc/rc.button/reset

index c6dc7cfbc04bb2a562045e1e1fbd27b45d079468..4265767437e8eda3c758fe7f7941d7f608c95782 100755 (executable)
@@ -2,8 +2,12 @@
 
 . /lib/functions.sh
 
+OVERLAY="$( grep ' /overlay ' /proc/mounts )"
+
 case "$ACTION" in
 pressed)
+       [ -z "$OVERLAY" ] && return 0
+
        return 5
 ;;
 timeout)
@@ -16,7 +20,7 @@ released)
                echo "REBOOT" > /dev/console
                sync
                reboot
-       elif [ "$SEEN" -gt 5 ]
+       elif [ "$SEEN" -gt 5 -a -n "$OVERLAY" ]
        then
                echo "FACTORY RESET" > /dev/console
                jffs2reset -y && reboot &