梅雨の大雨が過ぎて夏日が増えるにつれ、自宅ラズパイのcpuファンが仕事をしはじめた。
ただ、あまり仕事をされ過ぎると、回転音が気になるので調整する必要がある。
で、冬用から夏用に調整してみた。

使用している空冷ファンは「fan-shim」。
busterにはファン制御機能が備わているので特別な準備は不要。
ただ単に、ファン起動の閾値を設定するだけ。

で、現在はファン起動の閾値を60度に設定している。
真冬だとこの値に逹っすることなく、ファンも冬眠状態。
が、6月間近になって五月蝿くなりだした。
そこで、特に考えもなく65度と設定...で、終るハズだったのだが。

この数日後。
たかだか数字を一つ変えただけの作業。
なので、このことをすっかりと忘れていた。

TVライブ視聴中に画面が一瞬フリーズするようなカクつく現象がちらほら。
酷いときにはそのまま再生停止してしまう始末。

しばらく、ファン制御の閾値変更とフリーズの因果関係に気がつかなかった...。

が、はっと閃いた!
そういえばこれ、以前にもブログで記したことがある。
ちなみに去年アップした記事「ラズパイのカクカク再生はアツアツが原因?
そう、動画再生時に使用するHWデコーダが熱の影響を受けているのでは?...っと。

んっ???
そう言えば...この間cpuファン制御の閾値を65度にしたよな。
ファンが起動する頻度を下げるためと考えたのだが、その点は大して効果が無いような有るような。
正直、あまり有効的に使えてないのかもしれん。
たかだか温度の設定だけだが、もう少し有効に機能させることはできないものか。

で、改めて温度設定を考えてみた。
去年はどうしていたのか?

そういえばfan-shimを導入したのは去年の寒いとき。
それまではファン制御なしの常時冷却をしていた。
日本橋にあし繁く通って静かで安価なものを物色していたような記憶がある。

夏の間は、静かなファンを常時回転させるのもありかもしれん。
しかしながら、後戻りするような選択は避けたい。
なので、fan-shimの制御方法を少しばかり変えてみる。

現在の設定では、ライブ視聴中でも温度が65度に上昇そして下降を繰返す。
それを、ライブ視聴中は常にファンを回転させて温度を下げるようにしたい。
これによりフリーズが回避できるのではと考える。
また、通常状態ではファンを停止させて静音を保つようにする。

準備としてファン停止の閾値を設定できる制御プログラムが必要がある。
いま使用しているのはraspbian busterに備わっているファン制御機能。
ただし、これは回転開始の閾値は設定できるが、停止の値が設定できないのでおまかせになっている。
きっと、現状は停止の温度が高く設定されているためTV視聴状態でもこの閾値を踏んでしまうんだと思う。
そのため、今回はcで作成されたシンプルなプログラムがgithubあるので、それを利用することに。

まずは、各状態の温度を確認する。
外気温25度の場合、
ファン停止時、
通常状態   :55度
ライブ視聴 :70度

ファン回転時、
通常状態   :45度
ライブ視聴 :55度

まずは回転開始の閾値を決める。
この値はなるべく低い温度に設定したい。
しかし、停止の通常状態が55度のため、それ以上である必要がある。
まぁ、少し余裕をみて60度とする。

次に回転停止の閾値。
この値に関しては通常時と視聴時の差が10度と少ない。
よって、状態による大きなブレないと思われるため、単純に中間の値をとって50度で設定する。

後はサービスを設定して起動するだけ。
で、とりあえず起動させて各状態をテストしてみたが、想定通りに動作しているようである。

TVライブ視聴や動画の再生では常時ファンを回転させてCPU温度を低く保つ。
使用していない時はファンを止めて静音状態を維持する。

また、ことの発端であったTVライブ視聴時のフリーズ問題。
しばらく使てみてどうなるか確認したい。

後は、悩ましいファンの回転音。
もう少し静かにならんもんか...。

追伸
この後に、少し調べてみたらfan-shim制御のアドオンが有るみたい;
まぁ、自分でも思いつくくらいだから有って当然か。