Raspberry Pi Zero W: automatische WLAN Verbindung
Immer wieder kommt es beim Zero W zu Abbrüchen bei der WLAN Verbindung.
Dies kann die unterschiedlichsten Ursachen haben. Ich musste leider feststellen, dass der Pi nicht automatisch die Verbindung wieder aufbaut.
Nach etwas Suchen im Internet bin ich dann über ein reconnect Skript gestolpert.
Hierfür wir das Skript /usr/local/bin/checkwifi.sh
angelegt.
#!/bin/bash
# IP des Servers, der für die Verbindung geprüft werden soll (hier der Google DNS Server)
SERVER=8.8.8.8
# Schickt 2 Pinks mit der Ausgabe zu /dev/null
ping -c2 ${SERVER} > /dev/null
# Wenn das Ergebnis ($?) nicht 0 ist
if [ $? != 0 ]
then
# Neustart des WLAN Interface
sudo ifdown --force wlan0
sudo ifup wlan0
fi
Anschließend wird das Script über crontab -e
automatisiert:
*/5 * * * * /usr/bin/sudo -H /usr/local/bin/checkwifi.sh >> /dev/null 2>&1
In meinem Fall wird das Skript alle 5 Minuten ausgeführt.
Jedoch wollte der Reboot meiner Verbindung nicht funktionieren. Sie wurde zwar abgebaut, aber nicht wieder hergestellt.
Ich durfte beim Befehl sudo ifup wlan0
immer die Meldung run-parts /etc/network/if-pre-up.d/wpasupplicant exited with return code 1
lesen.
Nach weiterem Suchen fand ich ehraus, dass sich die Befehle ifdown
und ifup
auf die Angaben in der Datei /etc/network/interfaces
beziehen.
Diese ist aber in der neusten Raspbian Version, die auf Debian Stretch beruht, leer. Doch daran sollte es nicht scheitern, also kurzerhand die Datei editiert und die nötigen Informationen eingefügt:
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
Jedoch weiterhin keine Änderung. Immer noch der Fehler beim Starten des WLAN. Also weiter suchen…
Letztlich stolperte ich dann über die Lösung. Sehr unscheinbar in den Kommentaren einer ähnlichen Fehlerbeschreibung.
Nach Eingabe des Befehls sudo ip link set wlan0 up
funktionierte das Beenden und Aufbauen der Netzwerkverbindung problemlos.