Raspbian Wheezy: WLAN-Verbindung bei Verbindungsabbruch automatisch wiederherstellen
Sollten Sie den Raspberry Pi über ein Wireless LAN mit Ihrem Netzwerk verbunden haben, kennen Sie eventuell das Problem, dass die WLAN-Verbindung nach einem Verbindungsabbruch nicht automatisch wiederhergestellt wird. Die folgende Anleitung beschreibt wie mit Hilfe eines Shell-Skripts eine Unterbrechung der WLAN-Verbindung erkannt und repariert werden kann. Das Skript wird zum Schluss in die Crontab eingetragen damit es regelmäßig ausgeführt wird.
Erstellen Sie mit einem Editor die Datei /usr/local/bin/wlan_connection.sh.
pi@raspberrypi ~ $ sudo vi /usr/local/bin/wlan_connection.sh
Fügen Sie das folgende Shell-Skript in die Datei ein und speichern diese anschließend. Sollte die WLAN-Schnittstelle bei Ihnen nicht die Bezeichnung wlan0 tragen, müssen Sie die Variable INTERFACE anpassen.
###########################################################################
## ##
## WLAN Reconnect Script ##
## ##
## Creation: 01.02.2014 ##
## Last Update: 23.02.2014 ##
## ##
## Copyright (c) 2014 by Georg Kainzbauer <http://www.gtkdb.de> ##
## ##
## This program is free software; you can redistribute it and/or modify ##
## it under the terms of the GNU General Public License as published by ##
## the Free Software Foundation; either version 2 of the License, or ##
## (at your option) any later version. ##
## ##
###########################################################################
#!/bin/bash
# WLAN interface name
INTERFACE=wlan0
# Lock file
LOCKFILE=/var/tmp/wlan_connection.lock
###################################################################
# NORMALLY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT #
###################################################################
if [ -f ${LOCKFILE} ] ; then
/bin/kill -0 $(cat ${LOCKFILE}) >/dev/null 2>&1
if [ $? -eq 0 ] ; then
/bin/echo "Previous process still running."
exit 1
else
/bin/echo "Deprecated lock file found. Remove lock file."
/bin/rm -f ${LOCKFILE}
fi
fi
/bin/echo $$ >${LOCKFILE}
/sbin/ifconfig ${INTERFACE} | grep -q "inet"
if [ $? -ne 0 ] ; then
/bin/echo "Wireless network connection down. Attempt to reconnect."
/sbin/ifup --force ${INTERFACE} >/dev/null 2>&1
/sbin/ifconfig ${INTERFACE} | grep -q "inet"
if [ $? -eq 0 ] ; then
/bin/echo "Wireless network connection recovered."
else
/bin/echo "Wireless network connection still down."
fi
else
/bin/echo "Wireless network connection available. Nothing to do."
fi
/bin/rm -f ${LOCKFILE}
exit 0
## ##
## WLAN Reconnect Script ##
## ##
## Creation: 01.02.2014 ##
## Last Update: 23.02.2014 ##
## ##
## Copyright (c) 2014 by Georg Kainzbauer <http://www.gtkdb.de> ##
## ##
## This program is free software; you can redistribute it and/or modify ##
## it under the terms of the GNU General Public License as published by ##
## the Free Software Foundation; either version 2 of the License, or ##
## (at your option) any later version. ##
## ##
###########################################################################
#!/bin/bash
# WLAN interface name
INTERFACE=wlan0
# Lock file
LOCKFILE=/var/tmp/wlan_connection.lock
###################################################################
# NORMALLY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT #
###################################################################
if [ -f ${LOCKFILE} ] ; then
/bin/kill -0 $(cat ${LOCKFILE}) >/dev/null 2>&1
if [ $? -eq 0 ] ; then
/bin/echo "Previous process still running."
exit 1
else
/bin/echo "Deprecated lock file found. Remove lock file."
/bin/rm -f ${LOCKFILE}
fi
fi
/bin/echo $$ >${LOCKFILE}
/sbin/ifconfig ${INTERFACE} | grep -q "inet"
if [ $? -ne 0 ] ; then
/bin/echo "Wireless network connection down. Attempt to reconnect."
/sbin/ifup --force ${INTERFACE} >/dev/null 2>&1
/sbin/ifconfig ${INTERFACE} | grep -q "inet"
if [ $? -eq 0 ] ; then
/bin/echo "Wireless network connection recovered."
else
/bin/echo "Wireless network connection still down."
fi
else
/bin/echo "Wireless network connection available. Nothing to do."
fi
/bin/rm -f ${LOCKFILE}
exit 0
Damit das Skript ausgeführt werden kann, müssen Sie mit dem folgenden Befehl die Zugriffsrechte anpassen.
pi@raspberrypi ~ $ sudo chmod 0755 /usr/local/bin/wlan_connection.sh
Mit dem folgenden Befehl können Sie das Shell-Skript aufrufen und die korrekte Funktion überprüfen.
pi@raspberrypi ~ $ sudo /bin/bash /usr/local/bin/wlan_connection.sh
Damit das Shell-Skript regelmäßig ausgeführt wird und so die WLAN-Verbindung automatisch wiederherstellen kann, wird ein neuer Eintrag in der Crontab des Benutzers root angelegt.
pi@raspberrypi ~ $ sudo crontab -e
Fügen Sie am Ende der Crontab die folgende Zeile ein. Dadurch wird die /usr/local/bin/wlan_connection.sh alle 5 Minuten ausgeführt. Alle Ausgaben welche das Skript generiert werden nach /dev/null umgeleitet.
*/5 * * * * /bin/bash /usr/local/bin/wlan_connection.sh >/dev/null 2>&1
Dieser Eintrag wurde am 16.02.2014 erstellt und zuletzt am 25.09.2016 bearbeitet.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2504.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2021 by Georg Kainzbauer