Scripte für Router
Einwahl ins Mobilfunknetz via digitalen Eingang (DI) steuern[edit]
Aufgabe: Durch Schalten des serienmäßigen, digitalen on-board Eingangs (= BIN0) soll die Interneteinwahl des Routers gesteuert werden.
Anmerkungen: Der digitale on-board Eingang (DI) ist zum Aktivieren mit GND zu verbinden. Über einen Schalter kann der DI geschlossen und wieder geöffnet werden.
Die digitalen Eingänge des (optionalen) I/O-Erweiterungsmoduls XC-CNT (BIN1 ... BIN4) können analog genutzt werden.
Lösung: Der digitale on-board Eingang des Routers wird alle 5 Sekunden kontrolliert und falls dieser geschlossen wurde, der Einwahlvorgang ins Internet gestartet. Nach dem Öffnen des digitalen Eingangs, wird die Mobilfunkverbindung zum Internet wieder abgebaut.
Das Menü "Startup Script" ist wie folgt anzupassen (alte Version):
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.
# Mobilfunkverbindung beenden
service ppp stop
# Pollintervall [s] festlegen
POLLINTERVALL=5
# Zyklische Abfrage des digitalen on-board Eingangs (BIN0)
while true
do
io get bin0
VAL=$?
if [ "$VAL" != "$OLD" ]; then
if [ "$VAL" = "0" ]; then
service ppp start
else
service ppp stop
fi
OLD=$VAL
fi
sleep $POLLINTERVALL
done
### eine neuere Version des Scripts.
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.
# Pollintervall [s] festlegen
POLLINTERVALL=5
# Zyklische Abfrage des digitalen on-board Eingangs (BIN0)
while true
do
if (io get bin0) && !(ifconfig grep -q usb0); then
service ppp start
while true
do
if (ifconfig grep -q usb0); then
break
fi
sleep 1
done
led on
fi
if !(io get bin0) && (ifconfig grep -q usb0); then
service ppp stop
ifconfig usb0 down
while true
do
if !(ifconfig grep -q usb0); then
break
fi
sleep 1
done
led off
fi
sleep $POLLINTERVALL
done
nach Reboot nochmal die Mobilfunkverbindung kurz trennen[edit]
#INTERVALL=120 # #service ppp stop #logger "stop" #sleep $INTERVALL #service ppp start #logger "start" INTERVALL=120 service ppp stop sleep $INTERVALL service ppp start