라즈베리 파이에서 일정 시간이 지나면 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.