Radiko録音サーバのラズパイにはSambaサーバとしてMacからアクセスして録音ファイルを取るのだが、1日ぐらい放置しておくとアクセスできない症状が。
調べてみるとRaspberry PiのWi-Fiにはパワーセーブ機能があるらしく、どうやらこれが原因の様子。
というわけで確認から設定まで。
確認方法
まずはSSHでラズパイへアクセスして無線LANの設定を確認。
$ iwconfig wlan0
wlan0 IEEE 802.11 ESSID:"xxx"
〜省略〜
Power Management:on
デフォルトではPower ManagementがOnになっている。これが一定時間経つと無線LANをサスペンド状態にし、通信ができなくなっているためオフにする。
設定方法
$ sudo iwconfig wlan0 power off
これで一旦はPower ManagementはOffに出来る。
しかし再起動するとまたデフォルトのOnになってしまうため、起動時に自動で設定を実行してくれるrc.localに記述。
記述するのはnanoでもvimでもいいけど、sudoじゃないと上書きできないようなので注意。
以下はnanoで編集のパターン。
$ sudo nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
sudo sh -c "echo $_IP > /boot/IPaddress.txt"
sudo sh -c "date >> /boot/IPaddress.txt"
fi
〜中略〜
iwconfig wlan0 power off # wlan0 power management off <- 追記
exit0
記載したらctrl + oで上書き保存してnano終了。
設定が反映されているか再起動して確認。
$ sudo reboot
再起動後、もう一度iwconfigで確認してPower Managementがoffになっていたら成功。
$ iwconfig wlan0
wlan0 IEEE 802.11 ESSID:"xxx"
〜省略〜
Power Management:off
これで無線LAN経由の通信はいまのところ切断されなくなり、運用できている。