WiFi trennt nach einiger Zeit auf Raspberry Pi, verbindet sich nicht wieder

14

Endlich konnte ich meinen Raspberry Pi mit den folgenden Einstellungen mit einem versteckten SSID-Netzwerk (WPA2 Personal) verbinden (ohne wpa_supplicant.conf).

Nach einigen Stunden wird die Verbindung jedoch getrennt und die Verbindung nicht wiederhergestellt.

  • Raspberry Pi B + mit NOOBS.
  • USB-fähige WiFi-Karte (Ralink RT5370-Chipsatz)
  • Verbunden mit einer versteckten SSID (Ich bin nicht sicher, ob die versteckte SSID irgendetwas mit diesem Problem zu tun hat, möglicherweise ein roter Hering)

Hier ist das Protokoll:

Feb  6 14:36:01 raspberrypi wpa_supplicant[1641]: wlan0: CTRL-EVENT-DISCONNECTED bssid=90:72:40:1c:ed:c8 reason=4
Feb  6 14:36:01 raspberrypi kernel: [33883.785257] cfg80211: Calling CRDA to update world regulatory domain
Feb  6 14:36:01 raspberrypi ifplugd(wlan0)[1634]: Link beat lost.
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: Executing '/etc/ifplugd/ifplugd.action wlan0 down'.
Feb  6 14:36:11 raspberrypi dhclient: Internet Systems Consortium DHCP Client 4.2.2
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: client: Internet Systems Consortium DHCP Client 4.2.2
Feb  6 14:36:11 raspberrypi dhclient: Copyright 2004-2011 Internet Systems Consortium.
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: client: Copyright 2004-2011 Internet Systems Consortium.
Feb  6 14:36:11 raspberrypi dhclient: All rights reserved.
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: client: All rights reserved.
Feb  6 14:36:11 raspberrypi dhclient: For info, please visit https://www.isc.org/software/dhcp/
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: client: For info, please visit https://www.isc.org/software/dhcp/
Feb  6 14:36:11 raspberrypi dhclient: 
Feb  6 14:36:11 raspberrypi dhclient: Listening on LPF/wlan0/00:0f:60:01:de:14
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: client: Listening on LPF/wlan0/00:0f:60:01:de:14
Feb  6 14:36:11 raspberrypi dhclient: Sending on   LPF/wlan0/00:0f:60:01:de:14
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: client: Sending on   LPF/wlan0/00:0f:60:01:de:14
Feb  6 14:36:11 raspberrypi dhclient: Sending on   Socket/fallback
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: client: Sending on   Socket/fallback
Feb  6 14:36:11 raspberrypi dhclient: DHCPRELEASE on wlan0 to 192.168.128.254 port 67
Feb  6 14:36:11 raspberrypi ifplugd(wlan0)[1634]: client: DHCPRELEASE on wlan0 to 192.168.128.254 port 67
Feb  6 14:36:12 raspberrypi wpa_supplicant[1641]: wlan0: CTRL-EVENT-TERMINATING - signal 15 received
Feb  6 14:36:12 raspberrypi ifplugd(wlan0)[1634]: Program executed successfully.
Feb  6 14:36:14 raspberrypi ntpd[2157]: Deleting interface #2 wlan0, 192.168.128.122#123, interface stats: received=389, sent=396, dropped=0, active_time=33841 secs
Feb  6 14:36:14 raspberrypi ntpd[2157]: 192.96.207.244 interface 192.168.128.122 -> (none)
Feb  6 14:36:14 raspberrypi ntpd[2157]: 178.18.16.124 interface 192.168.128.122 -> (none)
Feb  6 14:36:14 raspberrypi ntpd[2157]: 204.2.134.164 interface 192.168.128.122 -> (none)
Feb  6 14:36:14 raspberrypi ntpd[2157]: 216.152.240.220 interface 192.168.128.122 -> (none)
Feb  6 14:36:14 raspberrypi ntpd[2157]: peers refreshed

Hier ist die / etc / network / interfaces

auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-scan-ssid 1
    wpa-ap-scan 1
    wpa-key-mgmt WPA-PSK
    wpa-proto RSN WPA
    wpa-pairwise CCMP TKIP
    wpa-group CCMP TKIP
    wpa-ssid "Na*****"
    wpa-psk *********************************************************
Micah
quelle
1
Sie können Sie die Ausgabe von teilen sudo iwconfig wlan0zeigt es Power Mgmt: On? Wenn ja, dann müssen Sie es deaktivieren, sudo iwconfig wlan0 power offdie Ihr Problem lösen sollte
Shan-Desai
@ Shan-Desai Lösung hat mein Problem behoben. Mein Himbeer-Pi W wird alle 3-5 Minuten die Verbindung trennen. Danke vielmals!
Dave

Antworten:

10

Die einzige Möglichkeit, dieses Problem zu beheben, bestand darin, ein Shell-Skript zu schreiben, das jede Minute von einem Cron-Job ausgeführt wird. Es wird überprüft, ob das Netzwerk inaktiv ist. Wenn dies der Fall ist, wird die Verbindung wiederhergestellt. Es hat in der letzten Woche sehr gut funktioniert.

#!/bin/bash

MY_PATH="`dirname \"$0\"`"              # relative
LOG_PATH="`( cd \"$MY_PATH\" && cd .. && pwd )`/log/network.log"
now=$(date +"%m-%d %r")

# Which Interface do you want to check
wlan='wlan0'
# Which address do you want to ping to see if you can connect
pingip='google.com'

# Perform the network check and reset if necessary
/bin/ping -c 2 -I $wlan $pingip > /dev/null 2> /dev/null
if [ $? -ge 1 ] ; then
    echo "$now Network is DOWN. Perform a reset" >> $LOG_PATH
    /sbin/ifdown $wlan
    sleep 5
    /sbin/ifup --force $wlan
else
    echo "$now Network is UP. Just exit the program." >> $LOG_PATH
fi
Micah
quelle
1
Hallo. Vor der Verwendung, ifup --force wlan0warum Sie verwendenifdown wlan0
S Andrew
@ Andrew Meine Vermutung ist, dass es sonst einfach nichts machen würde. Und wenn ifupnichts unternommen wird, wird auch keine automatische erneute Verbindung hergestellt. Entweder ist dies der Grund, oder es war einfacher, es auf diese Weise zu codieren, als zu testen, ob es sonst funktionieren würde.
Lucidbrot
In meinem Fall erscheint der Wiederverbindungsteil unnötig. Wenn Sie jede Minute einen Ping an Google senden, bleibt die Verbindung zu 100% stabil.
Gromit190
6

Dies ist das erwartete Verhalten. WiFi kann nicht zu 100% garantiert werden.

Dies gilt für Raspbian Wheezy vor dem 05.05.2015 für später (und für Jessie). Siehe Wie richte ich das Netzwerk / WLAN / statische IP ein ?

Wenn Sie möchten, dass die Verbindung nach einem Verbindungsverlust automatisch wiederhergestellt wird, verwenden Sie wpa-roamin Verbindung mitwpa_supplicant.conf)

PS Es ist nicht sinnvoll, Ihre SSID und PSK zu veröffentlichen

/ etc / network / interfaces

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface home inet dhcp
iface default inet dhcp

/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    scan_ssid=1
    ssid="xxx"
    psk="yyy"
    id_str="home"
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP
    auth_alg=OPEN
    eap=MD5
}
Milliways
quelle
Können Sie ein Beispiel für die Verwendung von wpa-roam in Verbindung mit wpa_supplicant.conf geben? Ich verwende die conf-Datei nicht mehr, weil sie sich aus irgendeinem Grund niemals mit der versteckten SSID verbinden würde, wenn ich die creds dort hineinlege. Übrigens, dass SSID und PSK nicht gültig sind, obwohl ich sie entfernen werde, da sie eine Ablenkung sind. Vielen Dank.
Micah,
2
Ich habe meine oben aufgeführt. Das Geheimnis der versteckten SSID istscan_ssid=1
Milliways
3

Wie vorgeschlagen können Sie WPA-Roam verwenden, obwohl ich empfehlen würde, WICD oder Netzwerk-Manager zu verwenden. Sie kümmern sich um alle Einstellungen, beschäftigen sich auch mit mehreren Netzwerken und sind benutzerfreundlicher.

Zum Beispiel hat wicd eine Curses-GUI, mit der Sie installieren können:

sudo apt-get install wicd-curses

Und laufe mit:

wicd-curses
tfjgeorge
quelle
1

hatte das selbe problem mit disconnect ... hat mit dem wireless adapter zu tun. Mein linksys ae3000 trennt sich alle paar Tage. Ich habe es leicht modifiziert, damit es mit meinen Motion-USB-Kameras und NFS-Freigaben funktioniert. Außerdem wurde eine E-Mail-Benachrichtigung hinzugefügt.

Crontab-Eintrag:

*/1 * * * * /root/netcheck.sh > /dev/null 2>&1

Geändertes Skript:

#!/bin/bash

LOG_PATH="/var/log/network.log"
now=$(date +"%m-%d %r")

# Which Interface do you want to check (wlan = wireless, eth0 = ethernet)
iface='eth0'
# Which address do you want to ping to see if you can connect
pingip='google.com'

# Perform the network check and reset if necessary
/bin/ping -c 2 -I $iface $pingip > /dev/null 2> /dev/null
if [ $? -ge 1 ] ; then
    echo "$now Network is DOWN. Perform a reset" >> $LOG_PATH
    /sbin/ifdown $iface
    sleep 5
    /sbin/ifup --force $iface
    sleep 5
    /bin/mount -o remount /data (reconnects my NAS nfs share)
    sleep 2
    /etc/init.d/motion restart  (restarts motion to clean hung processes)
    sleep 3
    /etc/init.d/motion restart  (2nd restart for sanity sake, sometimes 1st restart doesn't pan out)
    mail -s "`hostname` $iface recovered" [email protected] < /dev/null  (send me an email so I know about this)
fi
Feuerwehrmann
quelle
0

Ich habe die Zeiteinstellungen geändert und alles begann für mich zu funktionieren.

Einstellungen-> Raspberry Pi-Konfiguration-> Registerkarte Lokalisierung

Ich habe sichergestellt, dass alle 4 Optionen für meinen Standort richtig eingestellt sind.

plyons126
quelle
0

Hatte das gleiche Problem, löste es, indem mein PI einmal pro Minute an Google pingte.

Lauf sudo crontab -e

Fügen Sie dies am Ende der Datei hinzu

* * * * * /bin/ping -c2 -I wlan0 8.8.8.8 >/dev/null
gromit190
quelle
Ist das nicht im Wesentlichen dasselbe wie die akzeptierte Antwort?
Dirk
Im Wesentlichen ja. Praktisch nein. Mein PI stellt die Verbindung nicht wieder her, da dies nicht erforderlich ist. OPs wahrscheinlich auch nicht.
Gromit190