Abhilfe bei Meshproblemen

In größeren Mesh Netzen kommt es gelegentlich mal vor, dass ein Router sich WLAN-technisch "weg hängt" und dann nicht mehr meshen will.

Das ist besonders ärgerlich, wenn eine größere Anzahl Router auf diesen Router als Uplink angewiesen sind.

Abhilfe schafft hier ein kleiner Einzeiler, der regelmäßig (hier alle 5 Minuten) ausgeführt, bei Bedarf die WIFI Schnittstelle neu startete. Das Script schaut im Prinzip, ob auf der Netzwerk-Karte noch Verkehr ist und wenn nicht (innerhalb von 45 Sekunden) startet er das Wifi neu.

Diese Zeile muss in die Crontab eingefügt werden
   * /5 * * * * countr=$( ( ( grep BYTES /sys/kernel/debug/ieee80211/phy0/ath9k/recv ); sleep 45 ; (grep BYTES /sys/kernel/debug/ieee80211/phy0/ath9k/recv ) ) | uniq -d | wc -l ); if test "$countr" -eq "1" ; then wifi; date >> recv_stalled_restart; fi
Den Teil mit "date >> recv_stalled_restart ;" kann man weg lassen wenn man den Flash Speicher schonen will denn der verträgt nicht unendlich viele Schreiboperationen.

Das Ganze funktioniert in diesem Fall nur mit 841ern und ähnlichen Geräten mit dem gleichen Chipsatz. Ggf. ist die Datei "/sys/kernel/debug/ieee80211/phy0/ath9k/recv" anzupassen auf den eigenen Chipsatz (Freifunker helfen hier gerne)

Eingerichtet wird es über die Kommandozeile (ssh Kenntnisse erforderlich) über den Befehl crontab -e ("vi" Kenntnisse auch erforderlich).

Wer die Sequenz manuell auf der Kommandozeile ausführen will:
countr=$( ( ( grep BYTES /sys/kernel/debug/ieee80211/phy0/ath9k/recv ); sleep 45 ; (grep BYTES /sys/kernel/debug/ieee80211/phy0/ath9k/recv ) ) | uniq -d | wc -l ); if test "$countr" -eq "1" ; then wifi; fi
Impressum -- Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.