Good to Know Database

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

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 ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer