hacked a small script, which get startet in init (for autostart see http://blog.kerematam.com/2016/12/creating-script-to-run-on-boot-for.html)
#!/bin/sh
_pingcount=1
_pingtimeout=3 #Sekunden
_netstatnew=“”
_sleepstart=60 #Sekunden
_sleepshort=10 #Sekunden
_sleeplong=300 #Sekunden
_nameforlog=“mywatchdog”
logger “$_nameforlog gestartet, warte $_sleepstart Sekunden bis zur ersten Kontrolle”
sleep “$_sleepstart”
logger “$_nameforlog: sleep finished”
while [ 1 ]; do
_netstatold=“$_netstatnew”
while ! _netstatnew=“$(ifconfig wwan0 2>&1 | grep ‘RX packets’)”; do
logger “$_nameforlog ifconfig error (network not yet uo, retrying”
sleep 10
done
if [ “$_netstatnew” != “$_netstatold” ]; then
sleep “$_sleepshort”
else
logger “$_nameforlog: Kein Traffic innerhalb von ${_sleepshort} Sekunden, starte Ping-Test”
# innerhalb der kleinen Wartezeit gab es keinen Netzwerktraffic (oder die Leitung ist down)
# sofort den Ping-test, für Leitungstest.
if ! { ping -q -W “$_pingtimeout” -c “$_pingcount” 10.96.86.155 >/dev/null ||
ping -q -W “$_pingtimeout” -c “$_pingcount” 10.96.86.154 >/dev/null ||
ping -q -W “$_pingtimeout” -c “$_pingcount” 8.8.8.8 >/dev/null; }; then
# keiner der pings kam durch, also Modem aus
# X750 hard reset of modem - #5 by drewgarth
logger “$_nameforlog: Modem muss neu gestartet werden (aus)”
logger “$_nameforlog: Warte kurz ($_sleepshort Sekunden)”
echo 1 > /sys/class/gpio/gpio0/value
# be kind and wait
sleep 10
# Modem wieder ein
logger “$_nameforlog: Modem muss neu gestartet werden (ein)”
echo 0 > /sys/class/gpio/gpio0/value
else
#in der kleinen Wartezeit gab es keinen traffic, ping funktioniert aber, jetzt länger warten, damit nicht alle “kurze Zeit” ein Pingtest erfolgt
logger “$_nameforlog: Ping erfolgreich, schlafe etwas länger ($_sleeplong Sekunden)”
sleep “$_sleeplong” # Sekunden
fi
fi
done