APU LED Plugin PR; closes #1269
This commit is contained in:
parent
26bfd491d7
commit
5e9076706f
|
@ -0,0 +1,18 @@
|
|||
LED1="/dev/led/led1"
|
||||
LED2="/dev/led/led2"
|
||||
LED3="/dev/led/led3"
|
||||
LEDKO="/boot/kernel/apuled.ko"
|
||||
|
||||
if [ ! -e /boot/kernel/apuled.ko ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
kldload $LEDKO 2>&1
|
||||
|
||||
echo "m-" > $LED1
|
||||
echo "m -" > $LED2
|
||||
echo "m -" > $LED3
|
||||
sleep 2
|
||||
echo 1 > $LED1
|
||||
echo 1 > $LED2
|
||||
echo 1 > $LED3
|
|
@ -0,0 +1,25 @@
|
|||
BSD 2-Clause License
|
||||
|
||||
Copyright (c) 2019, Cloudfence
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,7 @@
|
|||
PLUGIN_NAME= apuled
|
||||
PLUGIN_VERSION= 0.1
|
||||
PLUGIN_DEVEL= yes
|
||||
PLUGIN_COMMENT= PC Engine APU LED control
|
||||
PLUGIN_MAINTAINER= julio@cloudfence.com.br
|
||||
|
||||
.include "../../Mk/plugins.mk"
|
|
@ -0,0 +1,18 @@
|
|||
### APU LED Plugin ###
|
||||
|
||||
#### LED control for PC Engines APU platform OPNsense plugin ####
|
||||
|
||||
**Left -> Right**
|
||||
LED1|LED2|LED3
|
||||
|
||||
At system boot, the 3 LEDs will blink (leds test).
|
||||
|
||||
| | LED1 | LED2 | LED3 |
|
||||
|---------------------------------------|----------|---------------------------|------|
|
||||
| System booting... | Blinking | OFF | OFF |
|
||||
| System OK | ON | ON | ON |
|
||||
| CPU Load > 90% | Blinking | - | - |
|
||||
| Disk freespace < 10% | - | Blinking (SOS morse code) | - |
|
||||
| WAN offline (without Internet access) | - | Blinking fast | - |
|
||||
| WAN packetloss > 30% | - | Blinking slow | - |
|
||||
| WAN online (Internet access) | - | ON | - |
|
|
@ -0,0 +1,2 @@
|
|||
LED control for PC Engines APU platform OPNsense plugin
|
||||
Cloudfence 2019 - JCC
|
|
@ -0,0 +1,42 @@
|
|||
#!/bin/sh
|
||||
set -x
|
||||
# APU LED plugin - Cloudfence 2019 JCC
|
||||
|
||||
|
||||
# LEDs
|
||||
LED1="/dev/led/led1"
|
||||
LED2="/dev/led/led2"
|
||||
LED3="/dev/led/led3"
|
||||
LEDKO="/boot/kernel/apuled.ko"
|
||||
|
||||
|
||||
messages()
|
||||
{
|
||||
MSG=$1
|
||||
echo "$MSG"
|
||||
logger -t "APU Plugin" "$MSG"
|
||||
}
|
||||
|
||||
# check if the module file exists
|
||||
if [ -e /boot/kernel/apuled.ko ];then
|
||||
# Load module
|
||||
kldload $LEDKO 2>&1
|
||||
else
|
||||
messages "Error: APU LED module is missing"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# starting boot LED message
|
||||
# make the initial test
|
||||
echo "m-" > $LED1
|
||||
echo "m -" > $LED2
|
||||
echo "m -" > $LED3
|
||||
sleep 2
|
||||
echo 1 > $LED1
|
||||
echo 1 > $LED2
|
||||
echo 1 > $LED3
|
||||
sleep 2
|
||||
# PWR bliking to show booting state
|
||||
echo "f6" > $LED1
|
||||
echo 0 > $LED2
|
||||
echo 0 > $LED3
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
# LEDs
|
||||
LED1="/dev/led/led1"
|
||||
LED2="/dev/led/led2"
|
||||
LED3="/dev/led/led3"
|
||||
|
||||
#stop blinking PWR LED
|
||||
echo 1 > $LED1
|
||||
echo 1 > $LED2
|
||||
echo 1 > $LED3
|
|
@ -0,0 +1,82 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2019 Cloudfence - Julio Camargo (JCC)
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# LEDs
|
||||
LED1="/dev/led/led1"
|
||||
LED2="/dev/led/led2"
|
||||
LED3="/dev/led/led3"
|
||||
|
||||
# check if LEDs exists
|
||||
if [ ! -e "$LED1" ];then
|
||||
logger -t "APULED Plugin" "Error: LED device not exists"
|
||||
fi
|
||||
|
||||
check_wan(){
|
||||
# check internet connection
|
||||
# ping f.root-servers.net
|
||||
# LED2 - network notifications
|
||||
# XXX fix this IP?
|
||||
PING_CHECK=$(ping -t 3 -c 3 192.5.5.241 | grep "packet loss" | awk '{print $7}' | cut -d. -f1)
|
||||
# ok
|
||||
if [ "$PING_CHECK" -eq 0 ];then
|
||||
echo "1" > $LED2
|
||||
# latency
|
||||
elif [ "$PING_CHECK" -gt 30 ] && [ "$PING_CHECK" -lt 100 ];then
|
||||
echo "f3" > $LED2
|
||||
# link down
|
||||
elif [ "$PING_CHECK" -eq 100 ];then
|
||||
echo "f1" > $LED2
|
||||
fi
|
||||
}
|
||||
|
||||
check_load(){
|
||||
# check CPU idle
|
||||
# LED1 - system notifications
|
||||
CHK_IDLE=$(vmstat 1 2 | tail -1 | awk '{ print $19 }')
|
||||
|
||||
if [ "$CHK_IDLE" -lt "10" ];then
|
||||
echo "f4" > $LED1
|
||||
else
|
||||
echo "1" > $LED1
|
||||
fi
|
||||
}
|
||||
|
||||
check_disk(){
|
||||
# check Disk space
|
||||
# LED3 - system notifications
|
||||
DSK_FREE=$(df -kh / | tail -1 | awk '{ print 100-$5 }')
|
||||
|
||||
if [ "$DSK_FREE" -lt "10" ];then
|
||||
echo "m...---..." > $LED3
|
||||
else
|
||||
echo "1" > $LED3
|
||||
fi
|
||||
}
|
||||
|
||||
# Main routine
|
||||
check_wan
|
||||
check_load
|
||||
check_disk
|
|
@ -0,0 +1,6 @@
|
|||
[run]
|
||||
command:/usr/local/opnsense/scripts/apuled/apuledctl
|
||||
parameters:
|
||||
type:script
|
||||
message:APU LEDs control
|
||||
description:APULED LED status
|
Loading…
Reference in New Issue