. /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
+
+ # Apu LED start
+ setup_heartbeat_trigger apu:1
+ setup_netdev_trigger apu:2 ${RED_DEV} rx
+ setup_netdev_trigger apu: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
+
+ # Apu LED stop
+ disable_led_trigger apu:1
+ enable_led apu:1
+ disable_led_trigger apu:2
+ disable_led_trigger apu: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