Wi-Fi rozłącza się po pewnym czasie na Raspberry Pi, nie łączy się ponownie

15

W końcu udało mi się połączyć moje Raspberry Pi z ukrytą siecią SSID (WPA2 Personal), korzystając z poniższych ustawień (nie używając wpa_supplicant.conf).

Jednak po kilku godzinach rozłącza się i nie łączy ponownie.

  • Raspberry Pi B +, z uruchomionym NOOBS.
  • Karta WiFi zasilana przez USB (chipset Ralink RT5370)
  • Połączony z ukrytym identyfikatorem SSID (nie jestem pewien, czy ukryty identyfikator SSID ma coś wspólnego z tym problemem, może być czerwonym śledziem)

Oto dziennik:

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

Oto / 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 *********************************************************
Micheasz
źródło
1
czy możesz podzielić się swoją produkcją, sudo iwconfig wlan0czy to pokazuje Power Mgmt: On? Jeśli tak, to musisz go wyłączyć, sudo iwconfig wlan0 power offco powinno rozwiązać twój problem
Shan-Desai
Rozwiązanie @ Shan-Desai rozwiązało mój problem. Moja raspberry Pi W będzie się rozłączać co 3-5 minut. Wielkie dzięki!
Dave

Odpowiedzi:

10

Jedynym sposobem, w jaki mogłem rozwiązać ten problem, było napisanie skryptu powłoki uruchamianego co minutę przez zadanie crona. Sprawdza, czy sieć nie działa, a jeśli tak, to łączy ją ponownie. Przez ostatni tydzień działał bardzo dobrze.

#!/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
Micheasz
źródło
1
Cześć. Przed użyciem ifup --force wlan0dlaczego używaszifdown wlan0
S Andrew
@Andrew Domyślam się, że inaczej nic by nie zrobiło. A jeśli ifupnic nie robi, nie powoduje to również automatycznego ponownego połączenia. Albo to jest powód, albo łatwiej było to zakodować w ten sposób, niż przetestować, czy działałoby inaczej.
lucidbrot
W moim przypadku część dotycząca ponownego połączenia wydaje się niepotrzebna. Pingowanie Google co minutę utrzymuje połączenie w 100% stabilne.
gromit190,
6

Jest to oczekiwane zachowanie; W 100% przypadków nie można zagwarantować WiFi.

Dotyczy to Raspbian Wheezy przed 2015-05-05 dla późniejszych (i Jessie) Zobacz Jak skonfigurować sieć / WiFi / Statyczne IP

Jeśli chcesz, aby łączyło się ono automatycznie po utracie łączności, użyj wpa-roamw połączeniu zwpa_supplicant.conf)

PS Publikowanie identyfikatora SSID i PSK nie jest rozsądne

/ 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
źródło
Czy możesz podać przykład użycia wpa-roam w połączeniu z wpa_supplicant.conf? Nie używam już pliku conf, ponieważ kiedy wstawię tam poświadczenia, z jakiegoś powodu nigdy nie połączy się on z ukrytym identyfikatorem SSID. BTW, ten identyfikator SSID i PSK są nieprawidłowe, ale usunę je, ponieważ rozpraszają uwagę. Dzięki.
Micheasza
2
Wymieniłem mój powyżej. sekretem ukrytego identyfikatora SSID jestscan_ssid=1
Milliways,
3

Zgodnie z sugestią możesz użyć wpa-roam, choć polecam użycie wicd lub menedżera sieci. Dbają o wszystkie ustawienia, zajmują się także wieloma sieciami i są bardziej przyjazne dla użytkownika.

Na przykład wicd ma GUI przekleństw, które można zainstalować za pomocą:

sudo apt-get install wicd-curses

I uruchom z:

wicd-curses
tfjgeorge
źródło
1

miał takie same problemy z rozłączaniem ... dotyczy adaptera bezprzewodowego. Mój linksys ae3000 rozłącza się co kilka dni. Lekko zmodyfikowałem go, aby działał z moimi kamerami usb motion i nfs share oraz dodałem powiadomienia e-mail.

Wpis Crontab:

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

Zmodyfikowany skrypt:

#!/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
strażak
źródło
0

Zmieniłem ustawienia czasu i wszystko zaczęło działać dla mnie.

Preferencje-> Konfiguracja Raspberry Pi-> Karta Lokalizacja

Upewniłem się, że wszystkie 4 opcje są ustawione poprawnie dla mojej lokalizacji.

plyons126
źródło
0

Miałem ten sam problem, rozwiązałem go, robiąc mój PI ping Google raz na minutę.

biegać sudo crontab -e

Dodaj to na końcu pliku

* * * * * /bin/ping -c2 -I wlan0 8.8.8.8 >/dev/null
gromit190
źródło
Czy to nie jest zasadniczo to samo co zaakceptowana odpowiedź?
Dirk
Zasadniczo tak. Praktycznie nie. Moje PI nie łączy się ponownie, ponieważ nie musi. Prawdopodobnie również PO.
gromit190,