diff options
Diffstat (limited to 'packages/slugos-init/files/leds')
-rw-r--r-- | packages/slugos-init/files/leds | 269 |
1 files changed, 0 insertions, 269 deletions
diff --git a/packages/slugos-init/files/leds b/packages/slugos-init/files/leds deleted file mode 100644 index b40d5d874e..0000000000 --- a/packages/slugos-init/files/leds +++ /dev/null @@ -1,269 +0,0 @@ -#!/bin/sh -# leds -# -# utilities to manipulate the settings of the system leds -# -# load the utility functions unless this script is being called -# just to load its own functions. -case "$1" in -leds) ;; -*) . /etc/default/rcS - . /etc/default/functions;; -esac - -# -# led_set led-dir off|on|slow|fast|panic|blink|flash|* -# set the given LED (expressed as a directory) to the -# given status. -# -led_set(){ - local setting - # expect led-dir state - if test -d "$1" - then - setting="$2" - case "$setting" in - off|on) echo -n none - - case "$setting" in - on) echo -n 255;; - off) echo -n 0;; - esac >"$1/brightness";; - - slow|fast|panic|blink|flash) - echo -n timer - - case "$setting" in - flash) echo -n 60;; - blink) echo -n 540;; - slow) echo -n 500;; - fast) echo -n 1500;; - panic) echo -n 3000;; - esac >"$1/delay_on" - - case "$setting" in - flash) echo -n 540;; - blink) echo -n 60;; - slow) echo -n 500;; - fast) echo -n 1500;; - panic) echo -n 3000;; - esac >"$1/delay_off";; - - *) echo -n "$setting";; - esac >"$1/trigger" - else - echo "leds: $1: no such directory" >&2 - return 1 - fi -} - -# -# sysled [boot] system|user|singleuser|shutdown [error|panic|*] -# set the system LEDs to indicate the given boot state, the function -# will temporarily mount sysfs is necessary (using /mnt) -# -# the cases for two LEDs (ready+status) -sysled_readystatus(){ - local ready status - # expect dir [boot](system|user) [error|panic] - case "$3" in - error) ready=fast; status=off;; - panic) ready=fast; status=fast;; - *) case "$2" in - bootsystem) ready=slow; status=slow;; - system) ready=on; status=on;; - bootuser) ready=on; status=slow;; - user) ready=user; status=off;; - bootsingleuser) ready=on; status=slow;; - singleuser) ready=user; status=user;; - bootshutdown) ready=on; status=slow;; - shutdown) ready=slow; status=on;; - esac;; - esac - - led_set "$1/$ready_led_name" "$ready" - led_set "$1/$status_led_name" "$status" -} -# -# the cases for one LED (just ready) -sysled_ready(){ - local ready - # expect dir [boot](system|user) [error|panic] - case "$3" in - error) ready=fast;; - panic) ready=panic;; - *) case "$2" in - bootsystem) ready=flash;; - system) ready=blink;; - bootuser) ready=slow;; - user) ready=user;; - bootsingleuser) ready=flash;; - singleuser) ready=blink;; - bootshutdown) ready=slow;; - shutdown) ready=blink;; - esac;; - esac - - led_set "$1/$ready_led_name" "$ready" -} -# -# the cases for one blue flashing LED (just power) -sysled_power(){ - local power - # expect dir [boot](system|user) [error|panic] - case "$3" in - error) power=off;; - panic) power=off;; - *) case "$2" in - bootsystem) power=off;; # blinking - system) power=off;; # blinking - bootuser) power=on;; - user) power=on;; - bootsingleuser) power=off;; # blinking - singleuser) power=off;; # blinking - bootshutdown) power=off;; # blinking - shutdown) power=off;; # blinking - esac;; - esac - - led_set "$1/$power_led_name" "$power" -} -# -sysled(){ - local mp st boot isst - mp=/sys - st=1 - boot= - - # validate arguments - if test "$1" = boot - then - shift - boot=boot - fi - case "$1" in - system|user|singleuser|shutdown) :;; - *) echo "sysled: unknown option '$1'" >&2 - echo " usage: sysled [boot] system|user|singleuser|shutdown [error|panic|*]" >&2 - return 1;; - esac - - if test ! -d "$mp/class/leds" && mount -t sysfs sysfs /mnt - then - mp=/mnt - fi - # - # check for the 'ready' LED - otherwise check for a 'power' LED - if test -d "$mp/class/leds/$ready_led_name" - then - if test -d "$mp/class/leds/$status_led_name" - then - sysled_readystatus "$mp/class/leds" $boot"$@" - else - sysled_ready "$mp/class/leds" $boot"$@" - fi - else - if test -d "$mp/class/leds/$power_led_name" - then - sysled_power "$mp/class/leds" $boot"$@" - fi - fi - # - # clean up - test "$mp" = /mnt && umount /mnt - return "$st" -} - -# -# beep {arguments} -# emit a beep -# does nothing if there is no beep executable, is very -# quiet in the presence of errors -beep(){ - local arg devices module - arg= - test "$1" = beep && shift - if test -x /bin/beep - then - devices=`ls -d /sys/class/input/event* 2>/dev/null` - for device in $devices - do - module=`egrep PHYSDEVDRIVER $device'/uevent' | cut -d '=' -f 2` - if test "$module" = "ixp4xx-beeper"; - then - devnode=`echo "$device" | cut -d '/' -f 5` - arg="-e /dev/input/"$devnode - break - fi - done - /bin/beep $arg "$@" 2>/dev/null - fi - return 0 -} - -# -# leds_help -# be helpful -# leds <led> off|on|slow|fast|panic|blink|flash|user|* -# leds [boot] system|user|singleuser|shutdown [error|panic|*] -leds_help(){ - echo "leds: change the setting of the LEDs" >&2 - echo " usage:" >&2 - echo " leds [boot] system|user|singleuser|shutdown [error|panic|*]" >&2 - echo " set leds during system boot to indicate a particular boot" >&2 - echo " state. 'boot' means that the system is transitioning to" >&2 - echo " the new state. 'error' or 'panic' means a (potentially)" >&2 - echo " recoverable error or an unrecoverable error ('panic') has" >&2 - echo " occured." >&2 - echo " <led> off|on|slow|fast|panic|blink|flash" >&2 - echo " set the named led to the given display." >&2 - echo " beep {args}" >&2 - echo " if possible cause the machine to emit a beep" >&2 -} - -# Define the LED names based on kernel version. -version=$(uname -r | cut -c -6) -if [ "$version" \< "2.6.25" ]; then - status_led_name="status" - ready_led_name="ready" - power_led_name="power" -else - case "$(machine)" in - dsmg600) - status_led_name="none" - ready_led_name="none" - power_led_name="dsmg600:green:power" - ;; - fsg3) - status_led_name="none" - ready_led_name="fsg:blue:sync" - power_led_name="none" - ;; - nas100d) - status_led_name="none" - ready_led_name="none" - power_led_name="nas100d:blue:power" - ;; - nslu2) - status_led_name="nslu2:red:status" - ready_led_name="nslu2:green:ready" - power_led_name="none" - ;; - esac -fi - -# the real command, if required -case "$1" in -boot|system|user|singleuser|shutdown) - sysled "$@";; - -beep) beep "$@";; - -""|-*) leds_help;; -help) leds_help;; - -leds) # just load the functions - ;; - -*) led_set /sys/class/leds/"$@" -esac |