Raspberry Piで一定時間後にWiFiが切断され、再接続されない


14

最終的に、以下の設定を使用して(wpa_supplicant.confを使用せずに)Raspberry Piを非表示の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ソリューションは私の問題を修正しました。ラズベリーPi Wは3〜5分ごとに切断されます。どうもありがとう!
デイブ

回答:


10

この問題を解決できる唯一の方法は、cronジョブによって毎分実行されるシェルスクリプトを作成することでした。ネットワークがダウンしているかどうかを確認し、ダウンしている場合は再接続します。先週はとてもうまくいきました。

#!/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私の推測では、そうでなければ何もしません。また、ifup何もしない場合、自動再接続も発生しません。これが理由であるか、そうでなければ動作するかどうかをテストするよりも、この方法でコーディングする方が簡単でした。
明id

私の場合、再接続部分は不要のようです。1分ごとにGoogleにpingを送信すると、接続が100%安定します。
gromit190

6

これは予想される動作です。WiFiは常に100%保証することはできません。

これは、2015-05-05より前のRaspbian Wheezy(およびJessie)に適用されます(ネットワーク/ WiFi /静的IPの設定方法を参照)

接続が失われた後に自動的に再接続する場合wpa-roamは、wpa_supplicant.conf)

PSあなたのSSIDとPSKを公開することは賢明ではありません

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

wpa_supplicant.confと組み合わせてwpa-roamを使用する例を教えてください。confファイルを使用しなくなったのは、そこに信任状を置くと、何らかの理由で隠しSSIDに接続することがないからです。ところで、SSIDとPSKは有効ではありませんが、気が散るので削除します。ありがとう。
ミカ

2
私は上記のものをリストしました。非表示のSSIDの秘密はscan_ssid=1
ミリウェイズ

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

時間設定を変更すると、すべてが機能し始めました。

設定-> Raspberry Pi設定->ローカリゼーションタブ

4つのオプションがすべて自分の場所に正しく設定されていることを確認しました。



0

同じ問題を抱えていたので、私のPIに1分ごとにpingを実行して解決しました。

走る sudo crontab -e

これをファイルの最後に追加します

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

それは受け入れられた答えと本質的に同じではありませんか?
ダーク

基本的にははい。実際には、ありません。PIは再接続しません。再接続する必要がないからです。おそらくOPもそうではありません。
gromit190
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.