Raspberry Pi ZeroW に ssh接続
を行い操作をしていたが、いつ頃からかうまく繋がらなくなった。
症状としては次のような状況だった。
- ssh接続するもクライアント側のモニタには何も表示されない
- うまく接続できてもすぐに切れてしまう
- キーボードからの入力が表示されるまでにとても時間がかかる
このような状況であったが、vncでは接続できていた。
その為、vncで画面を映し、ターミナルを立ち上げて操作することで凌いでいた。
この状況の原因ははっきりとわからないが、次の記事を参考に対応した。
Disable power management in Stretch
https://www.raspberrypi.org/forums/viewtopic.php?t=194619
行うことは次の2つ。
- 無線モジュールの電源管理を無効にする
- sshd_config の ClientAliveInterval を有効にする
無線モジュールの電源管理
対応したラズベリーパイはbusterである。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
起動時のログを確認してみるとオンボードの無線LANの省電力モードが有効になっている。
$ dmesg | grep brcm
[ 15.998658] brcmfmac: F1 signature read @0x18000000=0x1541a9a6
[ 16.018794] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[ 16.019229] usbcore: registered new interface driver brcmfmac
[ 16.285029] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[ 16.285227] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[ 16.286454] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Oct 22 2019 01:59:28 version 7.45.98.94 (r723000 CY) FWID 01-3b33decd
[ 26.054895] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
これはiwconfigコマンドでも確認できる。
電源管理を無効にするためには次のコマンドを実行する。
$ sudo iwconfig wlan0 power off
この設定は再起動すると元に戻る。
起動後に実行するには、/etc/rc.local の exit 0; の前にコマンドを記入する。
$ tail /etc/rc.local
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
# wifi power management
iwconfig wlan0 power off
exit 0
再起動後に無効になっていることを確認する。
sshdの ClientAliveInterval を有効にする
sshd_config ファイルの設定を確認すると、 ClientAliveInterval
が無効になっている。
$ grep Alive /etc/ssh/sshd_config
#TCPKeepAlive yes
#ClientAliveInterval 0
#ClientAliveCountMax 3
次のように変更した。
$ grep Alive /etc/ssh/sshd_config
#TCPKeepAlive yes
ClientAliveInterval 10
#ClientAliveCountMax 3
sshdを再起動する。
これでしばらく様子を見ることにする。
[2020-06-29 追記]
しばらく様子を見ていたが、問題が発生しなくなった。
起動メッセージを見ると電源管理が一旦有効になるが、その後に無効になる状況。
sshでの接続時に少し反応は遅れるが、その後は問題なく操作が出来る。
一方だけの設定にしてみるとssh接続がうまく出来ない状況だった。
電源管理を有効のままにした場合、接続がうまく出来ず何も出力されないまま切断される。
ClientAliveInterval を無効にした場合、接続するとログインメッセージが表示されるがプロンプトが表示されない、又は プロンプトが表示後コマンド入力してもレスポンスがない。
入力自体は行えているようで、タイムアウトで切断されている模様。
コメント
コメントを投稿