Scripte für Router

From
Jump to: navigation, search

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