From d1cc6eaac8d8d27f69c13c43557166a679fa3d44 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 20 Dec 2012 20:59:16 +0100 Subject: [PATCH] leds: new led startup script. Added setups for dreamplug, Iomega iConnect and Raidsonic ICY-Box 62x0 and a functionality to replace the script by a user copy for adding other led configurations. --- config/rootfiles/common/armv5tel/initscripts | 1 + config/rootfiles/common/i586/initscripts | 1 + config/rootfiles/core/66/filelists/files | 2 + src/initscripts/init.d/leds | 115 ++++++++++++------ .../init.d/networking/red.up/98-leds | 3 + 5 files changed, 84 insertions(+), 38 deletions(-) create mode 100644 src/initscripts/init.d/networking/red.up/98-leds diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index 89e8b2275d..90f9be161a 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -87,6 +87,7 @@ etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn +etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-fireinfo etc/rc.d/init.d/networking/red.up/99-pakfire-update diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 5bc93d7ed5..737e87847d 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -89,6 +89,7 @@ etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn +etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-fireinfo etc/rc.d/init.d/networking/red.up/99-pakfire-update diff --git a/config/rootfiles/core/66/filelists/files b/config/rootfiles/core/66/filelists/files index d923c5bece..3f9acf53c6 100644 --- a/config/rootfiles/core/66/filelists/files +++ b/config/rootfiles/core/66/filelists/files @@ -3,8 +3,10 @@ etc/issue etc/rc.d/init.d/firewall etc/rc.d/init.d/fsresize etc/rc.d/init.d/halt +etc/rc.d/init.d/leds etc/rc.d/init.d/mountfs etc/rc.d/init.d/network +etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/partresize etc/rc.d/init.d/reboot etc/rc.d/init.d/sendsignals diff --git a/src/initscripts/init.d/leds b/src/initscripts/init.d/leds index 4e678c5e7c..818382974c 100644 --- a/src/initscripts/init.d/leds +++ b/src/initscripts/init.d/leds @@ -9,62 +9,101 @@ . /etc/sysconfig/rc . ${rc_functions} +if [ -e $0.user ]; then + $0.user $* + exit ${?} +fi + # Load ethernet settings eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) -setup_red_modem() { - local led1=${1} - local led2=${2} - - modprobe ledtrig-netdev +if [ "${RED_DEV}" == "" ]; then + RED_DEV=ppp0 +fi - local i - for i in ${led1} ${led2}; do - echo "netdev" > ${i}/trigger - echo "${RED_DEV}" > ${i}/device_name - done +# 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 +} - echo "rx" > ${led1}/mode - echo "tx" > ${led2}/mode +# 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 } -reset_trigger() { - [ -d "${1}" ] || return 0 - echo "none" > ${1}/trigger +# 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 } -start_alix2() { - modprobe -q leds-alix2 &>/dev/null +case "${1}" in + start) + # Alix LED start + 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 + # 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 - setup_red_modem /sys/class/leds/alix:2 /sys/class/leds/alix:3 -} + # 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 -stop_alix2() { - local i - for i in 1 2 3; do - reset_trigger /sys/class/leds/alix:${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:2 + disable_led_trigger alix: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 -case "${1}" in - start|stop) - for i in alix2; do - ${1}_${i} - done exit 0 - ;; + ;; *) echo "Usage: ${0} {start|stop}" exit 1 - ;; + ;; esac # End $rc_base/init.d/leds diff --git a/src/initscripts/init.d/networking/red.up/98-leds b/src/initscripts/init.d/networking/red.up/98-leds new file mode 100644 index 0000000000..825b46f6c6 --- /dev/null +++ b/src/initscripts/init.d/networking/red.up/98-leds @@ -0,0 +1,3 @@ +#!/bin/bash +/etc/init.d/leds start &>/dev/null +exit 0 -- 2.39.2