Debian Bookwormを入れたRaspberry Piが数日でWiFi経由で見えなくなる問題

WiFi接続で運用しているRaspberry Pi 3B+が、起動直後は問題なくWiFi経由でアクセスできるのに、数日たつとWiFiのアクセスポイントの接続機器リストから消え、WiFi経由でpingを打っても反応しなくなる問題が発生した。ヘッドレスで運用しているので、こうなってしまうと電源を切って入れなおすしか復活方法がなく、しばらくは遠隔で電源をオンオフできる電源スイッチを利用して症状がでると強制的に再起動していた。

しかし、この状態はどう考えてもおかしい。問題が始まったのはそれまでBullseyeだったベースのシステムイメージをBookwormベースにアップデートされたイメージに更新してからだ。ということはBookwormで何かがおかしくなったとしか思えない。そこで、IoTサーバー用の設定済みなイメージではなく、ラズパイ公式から配布されている素のBookwormをインストールして様子をみることにしたところ、やはりその状態でも数日でWiFi経由で見えなくなる現象が再発した。つまり犯人はBookwormだ。

さて、BookwormにしたらWiFiに問題が出たという情報はないかと探したところ、BookwormでRaspbianのWiFiインターフェースのPower Managementがオンにされたという情報が見つかった。WiFiのPower Managementがオンになると、無通信状態ではWiFiが省電力モードになってしまう。これはデスクトップ端末として使っているのであれば、通信が必要になればその時点でまたWiFiが再接続されるから問題ないが、サーバーとして使っている場合は省電力状態では外からのパケットに答えなくなってしまうので都合が悪い。というわけでこれが原因の可能性が高いので、WiFiのPower Managementをオフにすることにした。

実際、WiFi接続の状態を表示してPower Managementの設定を確認する。

iwconfig wlan0

すると Power Management:on と表示されるので確かにオンになっている。これを恒常的にオフにする。Bookworm以降はNetwork Manager経由でしか設定をいじれないので、Network Managerで対話的に設定を変更しなければならない。

まずはNetwork Managerを使ってWiFi接続の接続名を取得する。

nmcli connection show

すると接続名とUUIDと対応しているデバイスの一覧が表示される。ここでWiFiインターフェースであるwlan0に対応している接続名をみると preconfigured という接続名になっていた。

ここでこの preconfigured という接続の設定を変更してPower Managementをオフに設定する。

nmcli connection modify preconfigured 802-11-wireless.powersave 2

ネットで検索するとこの接続名の部分は接続しているSSIDを書くとされているものばかりがヒットするが、実際にやってみるとSSIDではそんな接続ありませんと拒否されて、ネットワークインターフェースの接続名にすると無事に設定が変更された。最後の数値は変更後の設定値だが、これが2が無効で3が有効という直感的じゃない設定値になっているので要注意だ。

これで設定が変更されたのでiwconfigで無事にPower Managementがオフになっていることを確認しよう。この操作はNetwork Manager経由でシステムの設定を変更する操作なので、再起動後もこの設定が保持される。再起動した後もiwconfigで設定を念のため確認してPower Managementがオフになったままであることが確認できた。

この設定変更後、1週間程度様子を見てみたが外部からの接続でちゃんと見えている状態が続いているので、やはりPower Managementが問題の原因だったようだ。

これで安心していろいろ設定ができるなあと思ってたら、いよいよDebianの次のバージョンのTrixieのリリースがせまってきた。う~ん、やはりTrixieが出てからTrixieで再構築した方がよさそうだ。


コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください