Ubuntu 14.04では、USBワイヤレスアダプターを使用してワイヤレスネットワークに接続しています。接続が切断されることがよくあります(問題を解決しようとしましたが、理由はわかりません。それは別の質問です。dmesg | grep wlan
ここ の出力を参照してください)。
ネットワークマネージャが自動的に再接続できる場合もありますが、できない場合もあります。
だからそれが外れるとき、私はしばしば走らなければなりません
Sudo dhclient -v wlan1
再接続します。それがうまくいかない場合は、実行します
Sudo wpa_supplicant -B -i wlan1 -c /etc/wpa_supplicant.conf
Sudo dhclient -v wlan1
それでもうまくいかない場合は、まずドライバrt2800usb
もリロードします。
Sudo modprobe -r rt2800usb
Sudo modprobe rt2800usb
Sudo wpa_supplicant -B -i wlan1 -c /etc/wpa_supplicant.conf
Sudo dhclient -v wlan1
切断するたびにコマンドを自動的に実行する、つまり再接続を自動化するにはどうすればよいですか?
ほとんどの場合、私のUSBアダプターのロジック名はwlan1
ですが、wlan0
である場合もあります という問題があります。
wlan1
の状態は/sys/class/net/wlan1/carrier
から取得できます。これは、2秒ごとにwifiインターフェースの状態を確認してから再接続するサンプルスクリプトです(sleep 2
を置き換えて、_ごとに接続を確認しますn
秒):
while true
do
i=$(cat /sys/class/net/wlan1/carrier)
if [ $i == 1 ]
then
echo "connected"
else
echo "reconnecting"
killall wpa_supplicant
modprobe -rv rt2800usb
modprobe -v rt2800usb
wpa_supplicant -i wlan1 -c/etc/wpa_supplicant.conf -B
dhclient wlan1
echo "reconnected successfully"
fi
sleep 2
done
テスト
このスクリプトを実行してから新しいターミナルを開いてkillall wap_supplicant
を実行すると、再接続されます。