WiFi ngắt kết nối sau khoảng thời gian trên Raspberry Pi, không kết nối lại


14

Cuối cùng tôi đã có thể kết nối Raspberry Pi của mình với mạng SSID ẩn (WPA2 Personal) bằng các cài đặt bên dưới (không sử dụng wpa_supplicant.conf).

Tuy nhiên, sau một vài giờ nó ngắt kết nối và không kết nối lại.

  • Raspberry Pi B +, chạy NOOBS.
  • Thẻ WiFi hỗ trợ USB (chipset Ralink RT5370)
  • Đã kết nối với SSID ẩn (Tôi không chắc SSID ẩn có liên quan gì đến vấn đề này, có thể là cá trích đỏ)

Đây là nhật ký:

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

Đây là / etc / mạng / giao diện

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
bạn có thể chia sẻ bạn đầu ra của sudo iwconfig wlan0Power Mgmt: Onkhông? Nếu vậy thì bạn cần phải vô hiệu hóa nó sudo iwconfig wlan0 power offđể giải quyết vấn đề của bạn
Shan-Desai

@ Giải pháp Shan-Desai đã khắc phục vấn đề của tôi. Mâm xôi Pi W của tôi sẽ ngắt kết nối cứ sau 3-5 phút. Cảm ơn rất nhiều!
Dave

Câu trả lời:


10

Cách duy nhất tôi có thể giải quyết vấn đề này là viết một kịch bản shell được chạy mỗi phút bởi một công việc định kỳ. Nó kiểm tra nếu mạng bị hỏng, nếu vậy, kết nối lại nó. Nó đã làm việc rất tốt trong tuần qua.

#!/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
Chào. Trước khi sử dụng ifup --force wlan0lý do tại sao bạn đang sử dụngifdown wlan0
S Andrew

@Andrew Tôi đoán là nó sẽ không làm gì cả. Và nếu ifupkhông làm gì, nó cũng không gây ra kết nối lại tự động. Đây là lý do, hoặc dễ dàng viết mã theo cách này hơn là kiểm tra xem nó có hoạt động khác không.
lucidbrot

Trong trường hợp của tôi, phần kết nối lại dường như không cần thiết. Ping Google mỗi phút giúp kết nối ổn định 100%.
gromit190

6

Đây là hành vi dự kiến; WiFi không thể được đảm bảo 100% thời gian.

Điều này áp dụng cho Raspbian Wheezy trước 2015-05-05 cho lần sau (và Jessie) Xem Cách tôi thiết lập mạng / WiFi / IP tĩnh

Nếu bạn muốn nó tự động kết nối lại sau khi mất kết nối, hãy sử dụng wpa-roamcùng vớiwpa_supplicant.conf)

PS Không hợp lý khi xuất bản SSID và PSK của bạn

/ etc / mạng / giao diện

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
}

Bạn có thể đưa ra một ví dụ về việc sử dụng wpa-roam kết hợp với wpa_supplicant.conf không? Tôi không sử dụng tệp conf nữa vì khi tôi đặt các khoản tín dụng vào đó, nó sẽ không bao giờ kết nối với SSID ẩn vì một số lý do. BTW, SSID và PSK đó không hợp lệ, mặc dù tôi sẽ xóa chúng vì chúng là một thứ gây xao lãng. Cảm ơn.
Mi-chê

2
Tôi đã liệt kê của tôi ở trên. bí mật để ẩn SSID làscan_ssid=1
Milliways 10/2/2015

3

Theo đề xuất, bạn có thể sử dụng wpa-roam, mặc dù tôi sẽ khuyên bạn nên sử dụng wicd hoặc trình quản lý mạng. Họ chăm sóc tất cả các cài đặt, họ cũng xử lý nhiều mạng và thân thiện với người dùng hơn.

Ví dụ, wicd có một gui chửi rủa mà bạn có thể cài đặt với:

sudo apt-get install wicd-curses

Và chạy với:

wicd-curses

1

gặp vấn đề tương tự với việc ngắt kết nối ... phải làm với bộ điều hợp không dây. Linksys ae3000 của tôi ngắt kết nối cứ sau vài ngày. Tôi đã sửa đổi một chút để hoạt động với các camera usb chuyển động và chia sẻ nfs cùng với thông báo email được thêm vào.

Mục nhập Crontab:

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

Tập lệnh đã sửa đổi:

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

Tôi đã thay đổi cài đặt thời gian và tất cả bắt đầu làm việc cho tôi.

Tùy chọn-> Cấu hình Raspberry Pi-> Tab bản địa hóa

Tôi chắc chắn rằng tất cả 4 tùy chọn đã được đặt chính xác cho vị trí của tôi.



0

Có cùng một vấn đề, giải quyết nó bằng cách làm cho PI của tôi ping Google mỗi phút một lần.

chạy sudo crontab -e

Thêm phần này vào cuối tập tin

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

Đó không phải là về cơ bản giống như câu trả lời được chấp nhận?
Dirk

Về cơ bản, có. Thực tế, không. PI của tôi không kết nối lại, vì nó không phải. Cả OP cũng vậy.
gromit190
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.