]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/initscripts/system/leds
leds: use new APUx ACPI Bios leds if exist.
[people/pmueller/ipfire-2.x.git] / src / initscripts / system / leds
1 #!/bin/sh
2 ########################################################################
3 # Begin $rc_base/init.d/leds
4 #
5 # Description : Script to setup leds at boot.
6 #
7 ########################################################################
8
9 . /etc/sysconfig/rc
10 . ${rc_functions}
11
12 if [ -e /etc/init.d/leds.user ]; then
13 /etc/init.d/leds.user $*
14 exit ${?}
15 fi
16
17 # Load ethernet settings
18 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
19
20 case "${RED_TYPE}" in
21 PPPOE)
22 RED_DEV="ppp0"
23 ;;
24 esac
25
26 # setup_netdev_trigger LED DEVICE MODE
27 setup_netdev_trigger ()
28 {
29 if [ -d "/sys/class/leds/$1" ]; then
30 modprobe -q ledtrig-netdev 2>&1 > /dev/null
31 echo "netdev" > /sys/class/leds/$1/trigger
32 echo "$2" > /sys/class/leds/$1/device_name
33 echo "$3 $4" > /sys/class/leds/$1/mode
34 fi
35 }
36
37 # setup_netdev_trigger LED
38 setup_heartbeat_trigger ()
39 {
40 if [ -d "/sys/class/leds/$1" ]; then
41 modprobe -q ledtrig-heartbeat 2>&1 > /dev/null
42 echo "heartbeat" > /sys/class/leds/$1/trigger
43 fi
44 }
45
46 # disable_led_trigger LED
47 disable_led_trigger ()
48 {
49 if [ -d "/sys/class/leds/$1" ]; then
50 echo "none" > /sys/class/leds/$1/trigger
51 echo "0" > /sys/class/leds/$1/brightness
52 fi
53 }
54
55 # enable LED
56 enable_led ()
57 {
58 if [ -d "/sys/class/leds/$1" ]; then
59 echo "1" > /sys/class/leds/$1/brightness
60 fi
61 }
62
63 #Handle new APU ACPI Leds introduced on APU2 with bios 4.10.0.0
64 if [ -e /sys/class/leds/apu1:green:led1 ]; then
65 APULED="apu1:green:led";
66 else if [ -e /sys/class/leds/apu2:green:led1 ]; then
67 APULED="apu2:green:led";
68 else if [ -e /sys/class/leds/apu3:green:led1 ]; then
69 APULED="apu3:green:led";
70 else if [ -e /sys/class/leds/apu4:green:led1 ]; then
71 APULED="apu4:green:led";
72 else if [ -e /sys/class/leds/apu5:green:led1 ]; then
73 APULED="apu5:green:led";
74 else
75 APULED="apu:";
76 fi
77 fi
78 fi
79 fi
80 fi
81
82 case "${1}" in
83 start)
84 # Alix LED start
85 setup_heartbeat_trigger alix:1
86 setup_netdev_trigger alix:2 ${RED_DEV} rx
87 setup_netdev_trigger alix:3 ${RED_DEV} tx
88
89 # Apu LED start
90 setup_heartbeat_trigger ${APULED}1
91 setup_netdev_trigger ${APULED}2 ${RED_DEV} rx
92 setup_netdev_trigger ${APULED}3 ${RED_DEV} tx
93
94 # Geos LED start
95 setup_heartbeat_trigger geos:1
96 setup_netdev_trigger geos:2 ${RED_DEV} rx
97 setup_netdev_trigger geos:3 ${RED_DEV} tx
98
99 # Dreamplug
100 setup_netdev_trigger dreamplug:green:wifi ${GREEN_DEV} tx rx
101 setup_netdev_trigger dreamplug:green:wifi_ap ${BLUE_DEV} tx rx
102 setup_netdev_trigger dreamplug:blue:bluetooth ${RED_DEV} tx rx
103
104 # Iomega iConnect start
105 setup_heartbeat_trigger iconnect:blue:otb
106 setup_netdev_trigger iconnect:blue:power ${RED_DEV} rx
107 setup_netdev_trigger iconnect:red:power ${RED_DEV} tx
108 setup_netdev_trigger iconnect:blue:usb_2 ${GREEN_DEV} tx rx
109 setup_netdev_trigger iconnect:blue:usb_3 ${BLUE_DEV} tx rx
110 setup_netdev_trigger iconnect:blue:usb_4 ${ORANGE_DEV} tx rx
111
112 # ICY Box LED start
113 setup_netdev_trigger nas6210:red:power ${RED_DEV} tx rx
114 setup_netdev_trigger nas6210:red:usb_copy ${GREEN_DEV} tx rx
115
116 # Mirabox start
117 setup_heartbeat_trigger mirabox:green:pwr
118 setup_netdev_trigger mirabox:green:stat ${GREEN_DEV} tx rx
119 setup_netdev_trigger mirabox:blue:stat ${BLUE_DEV} tx rx
120
121 # Nanopi R1 start
122 setup_heartbeat_trigger nanopi-r1:red:status
123 setup_netdev_trigger nanopi-r1:green:wan ${RED_DEV} tx rx
124 setup_netdev_trigger nanopi-r1:green:lan ${GREEN_DEV} tx rx
125
126 exit 0
127 ;;
128
129 stop)
130 # Alix LED stop
131 disable_led_trigger alix:1
132 enable_led alix:1
133 disable_led_trigger alix:2
134 disable_led_trigger alix:3
135
136 # Apu LED stop
137 disable_led_trigger ${APULED}1
138 enable_led ${APULED}1
139 disable_led_trigger ${APULED}2
140 disable_led_trigger ${APULED}3
141
142 # Geos LED stop
143 disable_led_trigger geos:1
144 enable_led geos:1
145 disable_led_trigger geos:2
146 disable_led_trigger geos:3
147
148 # Dreamplug
149 disable_led_trigger dreamplug:green:wifi
150 disable_led_trigger dreamplug:green:wifi_ap
151 disable_led_trigger dreamplug:blue:bluetooth
152
153 # Iomega iConnect stop (heartbeat will leave on)
154 disable_led_trigger iconnect:blue:power
155 disable_led_trigger iconnect:red:power
156 disable_led_trigger iconnect:blue:usb_2
157 disable_led_trigger iconnect:blue:usb_3
158 disable_led_trigger iconnect:blue:usb_4
159
160 # ICY Box LED stop
161 disable_led_trigger nas6210:red:power
162 disable_led_trigger nas6210:red:usb_copy
163
164 # Mirabox stop
165 disable_led_trigger mirabox:green:pwr
166 enable_led mirabox:green:pwr
167 disable_led_trigger mirabox:green:stat
168 disable_led_trigger mirabox:blue:stat
169
170 # Nanopi R1 stop
171 disable_led_trigger nanopi-r1:red:status
172 enable_led nanopi-r1:red:status
173 disable_led_trigger nanopi-r1:green:wan
174 disable_led_trigger nanopi-r1:green:lan
175
176 exit 0
177 ;;
178
179 *)
180 echo "Usage: ${0} {start|stop}"
181 exit 1
182 ;;
183 esac
184
185 # End $rc_base/init.d/leds