라즈베리 파이에서 일정 시간이 지나면 WiFi 연결이 끊어지고 다시 연결되지 않음


14

마침내 Raspberry Pi를 wpa_supplicant.conf를 사용하지 않고 아래 설정을 사용하여 숨겨진 SSID 네트워크 (WPA2 Personal)에 연결할 수있었습니다.

그러나 몇 시간이 지나면 연결이 끊어지고 다시 연결되지 않습니다.

  • NOOBS를 실행하는 Raspberry Pi B +
  • USB 전원 WiFi 카드 (Ralink RT5370 칩셋)
  • 숨겨진 SSID에 연결됨 (숨겨진 SSID가이 문제와 관련이 있는지 잘 모르겠습니다. 빨간색 청어 일 수 있습니다)

로그는 다음과 같습니다.

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

/ 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 *********************************************************

1
당신은 당신의 출력을 sudo iwconfig wlan0보여줄 수 Power Mgmt: On있습니까? 그렇다면 sudo iwconfig wlan0 power off문제를 해결하기 위해 비활성화 해야합니다
Shan-Desai

@ Shan-Desai 솔루션으로 문제가 해결되었습니다. 라즈베리 파이 W는 3-5 분마다 연결이 끊어집니다. 고마워요!
Dave

답변:


10

이 문제를 해결할 수있는 유일한 방법은 cron 작업으로 1 분마다 실행되는 쉘 스크립트를 작성하는 것입니다. 네트워크가 다운되었는지 확인한 경우 다시 연결합니다. 지난주에 아주 잘 작동했습니다.

#!/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

1
안녕하세요. 사용 ifup --force wlan0이유를 사용하기 전에ifdown wlan0
S Andrew

@Andrew 내 추측은 그렇지 않으면 아무것도하지 않을 것입니다. 그리고 ifup아무것도하지 않으면 자동 재 연결을 유발하지 않습니다. 이것이 이유 중 하나이거나 다른 방식으로 작동하는지 테스트하는 것보다이 방법으로 코딩하는 것이 더 쉽습니다.
lucidbrot

제 경우에는 재 연결 부분이 필요하지 않은 것 같습니다. 1 분마다 Google을 핑하면 연결이 100 % 안정적으로 유지됩니다.
gromit190

6

이것은 예상되는 동작입니다. WiFi는 100 % 시간을 보장 할 수 없습니다.

이는 2015-05-05 이전 (및 Jessie) 이전의 Raspbian Wheezy에 적용됩니다. 네트워킹 / WiFi / 고정 IP를 설정하는 방법을 참조하십시오.

당신이 원하는 경우는 연결 사용의 손실 후 자동으로 다시 연결하는 wpa-roam연계와wpa_supplicant.conf)

PS SSID 및 PSK를 게시하는 것은 합리적이지 않습니다.

/ etc / network / 인터페이스

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
}

wpa_supplicant.conf와 함께 wpa-roam을 사용하는 예를들 수 있습니까? 거기에 creds를 넣을 때 어떤 이유로 든 숨겨진 SSID에 연결되지 않으므로 conf 파일을 더 이상 사용하지 않습니다. BTW, SSID와 PSK는 유효하지 않지만 산만하기 때문에 제거하겠습니다. 감사.
Micah

2
나는 위에 내 것을 나열했습니다. 숨겨진 SSID의 비밀은 다음과 같습니다scan_ssid=1
Milliways

3

제안한대로 wpa-roam을 사용할 수 있지만 wicd 또는 네트워크 관리자를 사용하는 것이 좋습니다. 그들은 모든 설정을 처리하고 여러 네트워크를 처리하며보다 사용자 친화적입니다.

예를 들어 wicd에는 다음과 같이 설치할 수있는 curses gui가 있습니다.

sudo apt-get install wicd-curses

그리고 다음을 실행하십시오.

wicd-curses

1

연결 해제와 동일한 문제가 발생했습니다 ... 무선 어댑터와 관련이 있습니다. 내 linksys ae3000의 연결이 며칠마다 끊어집니다. 모션 USB 카메라 및 nfs 공유와 함께 작동하도록 약간 수정했으며 이메일 알림이 추가되었습니다.

Crontab 항목 :

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

수정 된 스크립트 :

#!/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" xxxxxxxxx@gmail.com < /dev/null  (send me an email so I know about this)
fi

0

시간 설정을 변경하고 모두 나를 위해 일하기 시작했습니다.

환경 설정-> 라즈베리 파이 구성-> 현지화 탭

내 위치에 대해 4 가지 옵션이 모두 올바르게 설정되었는지 확인했습니다.



0

같은 문제가 있었는데, 1 분에 한 번씩 PI ping을 Google로 설정하여 해결했습니다.

운영 sudo crontab -e

이것을 파일 끝에 추가하십시오

* * * * * /bin/ping -c2 -I wlan0 8.8.8.8 >/dev/null

기본적으로 허용되는 답변과 같지 않습니까?
Dirk

본질적으로 그렇습니다. 실제로는 아닙니다. PI가 필요하지 않기 때문에 PI가 다시 연결되지 않습니다. 아마 OP도 마찬가지입니다.
gromit190
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.