[raspberry pi]強化樹莓派2B、3B的wifi連接,斷線時自動重新連接或重新開機

樹莓派2B使用外接的wifi介面卡時,就是那種USB介面的,常常會有斷線的問題,即使是樹莓派3B內建的wifi,偶爾也會造成一樣的困擾。因此,為了穩定度,必須手動做一些調整並加上一些程式碼來強化之!

首先,把電源管理的功能關閉是必要的。樹莓派2B中,可以修改/etc/network/interfaces,在這個檔案中加入「wireless-power off」的敘述,重開機即可。但是這個方法在樹莓派3B上行不通,而需要在/etc/rc.local增加「/sbin/iwconfig wlan0 power off」,再重開機。是否已經正確關閉電源管理功能,可由指令「iwconfig」,看看Power Management是否為off。

再來,配合sudo crontab -e排程來執行網路介面是否up或down的修正,如下範例:

#!/bin/bash
NOW=`date "+%Y-%m-%d %H:%M:%S"`
HOST=`hostname`
wlan0=`cat /sys/class/net/wlan0/operstate`
down="down"

if [ "$wlan0" == "$down" ]; then
    ip link set wlan0 down
    ip link set wlan0 up
    /sbin/wpa_cli -i wlan0 select_network 0
    MSG="${NOW}: restart wlan0"
    echo "$MSG"
    sleep 10
    wlan0again=`cat /sys/class/net/wlan0/operstate`
    if [ "$wlan0again" == "$down" ]; then
        MSG="${NOW}: reboot ${HOST}"
        echo "$MSG"
        /sbin/shutdown -r now
    else
        echo "${NOW}: wlan0 is ok"
    fi
else
    echo "${NOW}: wlan0 is ok"
fi

留言

這個網誌中的熱門文章

[樹莓派]複製運行中的開機SD卡