openwrtv4/target/linux/ar7/base-files/etc/diag.sh
John Crispin 019ea725aa add "preinit_regular" diag.sh set_state argument
This new argument is used right after starting regular preinit (which
happens if failsafe wasn't triggered). The main purpose of "preinit"
argument is to indicate that failsafe can be triggered, however we were
missing a way to inform user that we don't wait for a trigger anymore.
With this change it's clear when failsafe mode can be triggered.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43715
2014-12-15 10:37:00 +00:00

45 lines
1 KiB
Bash

#!/bin/sh
# Copyright (C) 2007-2013 OpenWrt.org
# This setup gives us 4.5 distinguishable states:
#
# (1-LED) Solid OFF: Bootloader running, or kernel hung (timer task stalled)
# (1-LED) Solid ON: Kernel hung (timer task stalled)
# (2-LED) Solid RED: Bootloader running, or kernel hung (timer task stalled)
# (2-LED) Solid YELLOW: Kernel hung (timer task stalled)
# 5Hz blink: preinit
# 10Hz blink: failsafe
# (1-LED) Heartbeat: normal operation
# (2-LED) Solid GREEN: normal operation
. /lib/functions/leds.sh
get_status_led() {
[ -d "/sys/class/leds/status" ] && status_led="status"
[ -d "/sys/class/leds/power:green" ] && status_led="power:green"
}
set_state() {
get_status_led
case "$1" in
preinit)
status_led_set_timer 100 100
;;
failsafe)
status_led_set_timer 50 50
;;
preinit_regular)
status_led_blink_preinit_regular
;;
done)
[ "$status_led" = "status" ] && {
status_led_set_heartbeat
}
[ "$status_led" = "power:green" ] && {
status_led_set_on
led_off "power:red"
}
;;
esac
}