]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/initscripts/init.d/leds
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
[people/teissler/ipfire-2.x.git] / src / initscripts / init.d / leds
index 4927b63ee75551788f5bf675de2bcdc4366568d4..52ef2705d9385d0b75eb2ced4667765833f48d7c 100644 (file)
 . /etc/sysconfig/rc
 . ${rc_functions}
 
+if [ -e /etc/init.d/leds.user ]; then
+       /etc/init.d/leds.user $*
+       exit ${?}
+fi
+
 # Load ethernet settings
 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
 
-setup_red_modem() {
-       local led1=${1}
-       local led2=${2}
+if [ "${RED_DEV}" == "" ]; then
+       RED_DEV=ppp0
+fi
 
-       modprobe ledtrig-netdev
+# setup_netdev_trigger LED DEVICE MODE
+setup_netdev_trigger ()
+{
+       if [ -d "/sys/class/leds/$1" ]; then
+               modprobe -q ledtrig-netdev 2>&1 > /dev/null
+               echo "netdev" > /sys/class/leds/$1/trigger
+               echo "$2" >     /sys/class/leds/$1/device_name
+               echo "$3 $4" >  /sys/class/leds/$1/mode
+       fi
+}
 
-       local i
-       for i in ${led1} ${led2}; do
-               echo "netdev" > ${i}/trigger
-               echo "${RED_DEV}" > ${i}/device_name
-       done
+# setup_netdev_trigger LED
+setup_heartbeat_trigger ()
+{
+       if [ -d "/sys/class/leds/$1" ]; then
+               modprobe -q ledtrig-heartbeat 2>&1 > /dev/null
+               echo "heartbeat" >  /sys/class/leds/$1/trigger
+       fi
+}
 
-       echo "rx" > ${led1}/mode
-       echo "tx" > ${led2}/mode
+# disable_led_trigger LED
+disable_led_trigger ()
+{
+       if [ -d "/sys/class/leds/$1" ]; then
+               echo "none" >     /sys/class/leds/$1/trigger
+               echo "0" >        /sys/class/leds/$1/brightness
+       fi
 }
 
-reset_trigger() {
-       [ -d "${1}" ] || return 0
-       echo "none" > ${1}/trigger
+# enable LED
+enable_led ()
+{
+       if [ -d "/sys/class/leds/$1" ]; then
+               echo "1" >        /sys/class/leds/$1/brightness
+       fi
 }
 
-start_alix2() {
-       modprobe -q leds-alix2
+case "${1}" in
+       start)
+               # Alix LED start
+               setup_heartbeat_trigger alix:1
+               setup_netdev_trigger alix:2 ${RED_DEV} rx
+               setup_netdev_trigger alix:3 ${RED_DEV} tx
 
-       local i
-       for i in 1 2 3; do
-               if [ ! -d "/sys/class/leds/alix:${i}" ]; then
-                       return 1
-               fi
-       done
+               # Geos LED start
+               setup_heartbeat_trigger geos:1
+               setup_netdev_trigger geos:2 ${RED_DEV} rx
+               setup_netdev_trigger geos:3 ${RED_DEV} tx
 
-       setup_red_modem /sys/class/leds/alix:2 /sys/class/leds/alix:3
-}
+               # Dreamplug
+               setup_netdev_trigger dreamplug:green:wlan ${GREEN_DEV} tx rx
+               setup_netdev_trigger dreamplug:blue:wlanap ${BLUE_DEV} tx rx
+               setup_netdev_trigger dreamplug:blue:bluetooth ${RED_DEV} tx rx
 
-stop_alix2() {
-       local i
-       for i in 1 2 3; do
-               reset_trigger /sys/class/leds/alix:${i}
-       done
-}
+               # Iomega iConnect start
+               setup_heartbeat_trigger iconnect:blue:otb
+               setup_netdev_trigger iconnect:blue:power ${RED_DEV} rx
+               setup_netdev_trigger iconnect:red:power ${RED_DEV} tx
+               setup_netdev_trigger iconnect:blue:usb_2 ${GREEN_DEV} tx rx
+               setup_netdev_trigger iconnect:blue:usb_3 ${BLUE_DEV} tx rx
+               setup_netdev_trigger iconnect:blue:usb_4 ${ORANGE_DEV} tx rx
 
-case "${1}" in
-       start|stop)
-               for i in alix2; do
-                 ${1}_${i}
-               done
-               ;;
+               # ICY Box LED start
+               setup_netdev_trigger nas6210:red:power ${RED_DEV} tx rx
+               setup_netdev_trigger nas6210:red:usb_copy ${GREEN_DEV} tx rx
+
+               exit 0
+       ;;
+
+       stop)
+               # Alix LED stop
+               disable_led_trigger alix:1
+               enable_led alix:1
+               disable_led_trigger alix:2
+               disable_led_trigger alix:3
+
+               # Geos LED stop
+               disable_led_trigger geos:1
+               enable_led geos:1
+               disable_led_trigger geos:2
+               disable_led_trigger geos:3
+
+               # Dreamplug
+               disable_led_trigger dreamplug:green:wlan
+               disable_led_trigger dreamplug:blue:wlanap
+               disable_led_trigger dreamplug:blue:bluetooth
+
+               # Iomega iConnect stop (heartbeat will leave on)
+               disable_led_trigger iconnect:blue:power
+               disable_led_trigger iconnect:red:power
+               disable_led_trigger iconnect:blue:usb_2
+               disable_led_trigger iconnect:blue:usb_3
+               disable_led_trigger iconnect:blue:usb_4
+
+               # ICY Box LED stop
+               disable_led_trigger nas6210:red:power
+               disable_led_trigger nas6210:red:usb_copy
+
+               exit 0
+       ;;
 
        *)
                echo "Usage: ${0} {start|stop}"
                exit 1
-               ;;
+       ;;
 esac
 
 # End $rc_base/init.d/leds