sometimes it can be useful to trigger failsafe without beeing physically at the box. during bootup there is a decision made if the box should startup normal or in failsafe.
in this state we dont have uci yet (or the rootfs) but it should be possible to early mount the debugfs and look for a magic string which can be found in crashlog a "magic crash" can be made with e.g. echo -e '#!/bin/sh\necho c >/proc/sysrq-trigger' >/tmp/do_failsafe.sh chmod +x /tmp/do_failsafe.sh /tmp/do_failsafe.sh after the artificial crashreboot, we can see in '/sys/kernel/debug/crashlog' [...] <6>[ 347.690000] SysRq : Trigger a crash <1>[ 347.690000] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 801a7ea4, ra == 801a826c <4>[ 347.690000] Oops[#1]: <4>[ 347.690000] CPU: 0 PID: 7268 Comm: do_failsafe.sh Not tainted 3.10.36 #5 <4>[ 347.690000] task: 8084d920 ti: 81840000 task.ti: 81840000 <4>[ 347.690000] $ 0 : 00000000 00000001 00000001 00000001 [...] so in /lib/preinit/30_failsafe_wait we can do e.g.: head -n6 /sys/kernel/debug/crashlog | fgrep -q ' Comm: do_failsafe.sh ' && FAILSAFE=true two questions raise up: 1) is it too much mount debugfs during bootup, because failsafe also means "minimal influence" 2) is it a security hole? bye, bastian _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel