Raspberry Piで無線LANの反応が悪い時の対処法

Raspberry Piで無線LANアダプタを使っていて、しばらく放置するとSSHの入力の反応が悪くなったり、下手するとネットワークへの接続が切断されたりすることがあります。

対処法は無線LANアダプタの設定を変更することです。それでいつでも素早くアクセスできるようになります。

Raspberry Pi向けの無線LANのUSBアダプタの購入や基本的な設定は、Raspberry Piに無線LANのUSBアダプタをつけるを参考にしてみてください。

パワーマネジメント機能をOFFにする

Raspberry Piで無線LANの反応が悪い原因は、無線LANのUSBアダプタのパワーマネジメント機能がONになっているためです。

パワーマネジメント機能がONになっていると、しばらくアクセスがないと、電気を節約するために省エネモードになります。この省エネモードがSSHの入力を鈍らせたり、悪い時にはネットワークへの接続を切断したりしたりします。

そもそも無線LANのUSBアダプタ程度の電気なんかたかが知れているので、パワーマネジメント機能をOFFにしてしまいましょう。

パワーマネジメント機能の切り方1: iwconfig wlan0 power off?

パワーマネジメント機能をOFFにする方法はいくつかありますが、そのうちの一つが下記のコマンドです。
iwconfig wlan0 power off

使っている無線LANのUSBアダプタによっては上記のコマンドでパワーマネジメント機能をOFFにできるそうですが、私が使ってるUSBアダプタは下記のエラーを出すだけでした。
Error for wireless request "Set Power Management" (8B2C) :
    SET failed on device wlan0 ; Operation not permitted.

パワーマネジメント機能の切り方2: /etc/network/interfaces

切り方1と同じ結果になるのですが、interfacesでパワーマネジメント機能をOFFにすることができるかもしれません。
sudo vim /etc/network/interfaces

wireless-power off
//保存して終了

sudo /etc/init.d/networking restart
私が使ってるUSBアダプタは前回と同じエラーを出るだけでした。

パワーマネジメント機能の切り方3: 8192cu.conf (推奨)

参考: Dropouts with USB WiFi (802.11b/g/n) Module: For Raspberry Pi

この方法が正解でした。
sudo vim /etc/modprobe.d/8192cu.conf

# Disable power saving
options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1

//保存して終了

sudo reboot

これでほとんどストレスなしでいつでも素早くアクセスできるようになります。

おまけ: iwconfigとPower Managementは嘘をつく?

無線LANのUSBアダプタのパワーマネジメント機能がONになっているかOFFになっているかを調べるにはiwconfigを使います。
iwconfig
wlan0     IEEE 802.11bgn  ESSID:"HOGEHOGE-HOGE-H"  Nickname:"<HOGE@HOGETEK>"
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:2B:1C:HO:GE:GE   
          Bit Rate:150 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=99/100  Signal level=71/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

eth0      no wireless extensions.

Power Management:off
になっているからパワーマネジメント機能はOFFになっているはず!

とか思っていると間違いです。無線LANのUSBアダプタによってはPower Management:offとか言っておいて、実際はONになっている場合があります。というか、私が持っているアダプタがそうです。

原因は知りませんが、おそらく私の持っているアダプタが省エネに特化したアダプタだから、内部でごにょごにょやっているのかなと思います。とりあえず、切り方3の8192cu.confを使うことで、パワーマネジメント機能は実質的にOFFになるっぽいんで、それを使いましょう。

追加の方法:ServerAliveIntervalを1以上にする

切り方3をやることで無線LANの反応はよくなると思いますが、それでもSSHのセッションが切れる場合は、ServerAliveIntervalを1以上にしてみましょう。

ServerAliveIntervalを1以上に設定することで、何もしないときでもSSH上で定期的にアクセスしてくれるので、セッションが切れたりアクセスが鈍るということはなくなると思います。

参考: ssh接続をタイムアウトしないようにする

Windowsの場合
Puttyjp.exeを起動
カテゴリ → 接続
Keepaliveの間隔 10

Macの場合
sudo vim /etc/sshd_config

ServerAliveInterval 10

サーバー側(Raspberry Pi)で設定する場合
sudo vim /etc/ssh/sshd_config

ClientAliveInterval 10

ちなみに私が使っている無線LANのUSBアダプタ

PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps GW-USNANO2A
PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps GW-USNANO2A (FFP)

パワーマネジメント機能を完全にOFFにしてしばらく使っていると無線LANのUSBアダプタがほんのり温かくなりました。私が使っているPLANEXのアダプタは問題なさそうですが、消費電力が高いアダプタの場合、パワーマネジメント機能をOFFにすると結構熱くなるかもしれません。

Raspberry Piで無線LANの反応が悪い時の対処法” への1件のコメント
  1. eskay より:

    おかげさまで問題が解決しました。ありがとうございました!

"Raspberry Piで無線LANの反応が悪い時の対処法" に 1 トラックバック・ピンバック
  1. […] Raspberry Piで無線LANの反応が悪い時の対処法 […]

コメントを残す

メールアドレスが公開されることはありません。