何気なしにapt upgradeしたら、raspi-configとrc_guiに項目が生えていました。先月くらいにしれっと増えていたようです。最近はイメージリリース合わせでなくても新機能は適宜入れていくスタイルのようですね。
ファンコントロール用のDeviceTreeは、SoCの温度が指定した温度(デフォルトは55度)になると、指定したGPIO(デフォルトはGPIO14/UART-TX)を通じてファンの回転を始めるというものです。
とりあえず、手元のFan SHIMで動くのか試してみました。Fan SHIMはGPIO18にFan Controlがあるので、GPIOの値は変更が必要です。
設定はraspi-configから。そもそもraspi-configの設定がかなり整理された感じがします。ファン設定はパフォーマンス設定の下のファンから設定です。
GPIOと温度のしきい値をそれぞれ入力すると有効化できます。GPIO番号は物理ピン番号ではなくBCMなどと呼ばれる方の番号で指定します。先述の通りFan SHIMなら18です。温度のしきい値は、DeviceTreeのドキュメントではデフォルト55度と書かれていますが、raspi-configでは最小値が60度になっていてそれより小さい値はエラーになるため注意が必要です。たぶんこれすり合わせミスのような気がするので、そのうちどっちかに合わせられそうです。執筆時より遠い未来の人がもしこの記事を読んでいたらちょっと気をつけてみてください。とりあえず60度でいいや。
rc_gui(GUI版設定画面)でも設定可能です。こちらは最小値の確認をし忘れましたが、まあ設定可能です。ちょっと前にrc_guiの翻訳追従したばっかりなのに、また未翻訳が増えてしまったな。まあファンくらいは大丈夫でしょう。
設定したら要再起動。温度が上がるとファンが回るか確認するには、Linux的には定番の?yesコマンドでしばきます。
$ yes > /dev/null & $ yes > /dev/null & $ yes > /dev/null & $ yes > /dev/null & (4回==4コア分実行する)
SoCの温度を監視して、60度に達したときにファンが回ることが確認できました。
$ vcgencmd measure_temp
気になったのは、何度まで下がったらファンが停止するかという点。48度くらいで止まったような気がするので、そのくらいで止まるようになるのか、設定した温度-12くらい度なのか、単に数分回すのか。昨晩見つけたばかりなので挙動はいまのところまだ謎です(特に気にしていないとも言う)。ソースコード探しに行くか……あるんかしら🤔。あと、ファンが止まった状態で放置すると、最近は55度くらいで落ち着くようです。リリース当初よりもだいぶマシになった感じがします。そのへんの話はEEPROMリリースではそんなに見かけていませんけど、去年の発熱改善の作業してた頃よりも進んでいるのかしら?
FanSHIMの場合はスクリプトが提供されていた気もしますが、公式OSがファン制御機能を提供してくれたので「Pi4の冷却しっかりやりたいけどファンの常時稼働もなあ」というユーザーにはかなり便利になったのではないかと思いますん。
たまに宣伝させて
Raspberry Piの作例&Tips同人誌「あっきぃのラズピッピいじり」委託頒布中です。最新刊は去年の冬コミ発行の5です。コミケ以来物理頒布できていないのでめちゃくちゃ在庫が残ってますが、中身はまあまあ陳腐化しにくいコンテンツ多めなので今買っても大丈夫。4はなぜか自分の読み返し頻度が高いので多分おすすめ
、自分でよく読み返すのはサイネージの作り方のとこです。
また、Eject2020も物理頒布機会がないため発行部数(150)の9割が在庫の状態です。こちらはEjectといいつつ、BH1745という色を読み取るセンサーで遊んでいるため実質ラズパイ工作本です。こちらもぜひ。