Wi-Fi отключается через некоторое время на Raspberry Pi, не переподключается

14

Я наконец смог подключить Raspberry Pi к скрытой сети SSID (WPA2 Personal), используя приведенные ниже настройки (не используя wpa_supplicant.conf).

Однако через несколько часов он отключается и не подключается.

  • Raspberry Pi B +, работает NOOBS.
  • 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
@ Шан-Десаи решение исправило мою проблему. Моя Raspberry 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ничего не делает, это также не вызывает автоматического переподключения. Либо это причина, либо было проще написать код таким способом, чем проверить, будет ли он работать иначе.
lucidbrot
В моем случае часть переподключения кажется ненужной. Pinging Google каждую минуту сохраняет соединение на 100% стабильным.
gromit190
6

Это ожидаемое поведение; WiFi не может быть гарантирован в 100% случаев.

Это относится к Raspbian Wheezy до 2015-05-05 на будущее (и Джесси). См. Как настроить сеть / WiFi / Статический IP

Если вы хотите, чтобы он автоматически восстанавливал соединение после потери соединения, используйте wpa-roamвместе сwpa_supplicant.conf)

PS Не имеет смысла публиковать ваш SSID и PSK

/ и т.д. / сеть / интерфейсы

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
источник
Можете ли вы привести пример использования wpa-roam в сочетании с wpa_supplicant.conf? Я больше не использую файл conf, потому что когда я помещаю туда титры, он по какой-то причине никогда не подключится к скрытому SSID. Кстати, что SSID и PSK недействительны, хотя я их уберу, поскольку они отвлекают. Благодарю.
Мика
2
Я перечислил мой выше. секрет скрытого SSIDscan_ssid=1
Milliways
3

Как и предполагалось, вы можете использовать wpa-roam, хотя я бы порекомендовал использовать wicd или сетевой менеджер. Они заботятся обо всех настройках, работают с несколькими сетями и более удобны для пользователя.

Например, в wicd есть графический интерфейс curses, который вы можете установить с помощью:

sudo apt-get install wicd-curses

И запустить с:

wicd-curses
tfjgeorge
источник
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
fireheadman
источник
0

Я изменил настройки времени, и все это начало работать для меня.

Настройки-> Конфигурация Raspberry Pi-> Вкладка Локализация

Я удостоверился, что все 4 опции были установлены правильно для моего местоположения.

plyons126
источник
0

Возникла та же проблема, я решил ее, заставляя мой PI пинговать Google один раз в минуту.

бегать sudo crontab -e

Добавьте это в конец файла

* * * * * /bin/ping -c2 -I wlan0 8.8.8.8 >/dev/null
gromit190
источник
Разве это не то же самое, что принятый ответ?
Дирк
По сути, да. Практически нет. Мой PI не переподключается, потому что это не обязательно. Скорее всего, и ОП.
gromit190