ラズパイの温度が気になります。夏だし🚀
こちらの記事のWOLサーバにCPU温度とCPU周波数を表示していますが、その詳細です
環境
- ラズパイ 3B+
- ubuntu 20.04.4 LTS
温度取得(sensors)
ubuntuなので、こちら↓に習って
sensors
このままだとcpu温度しか出ないのでこちらを参考↓
sudo sensors-detect
これでたくさん出る
温度取得(vcgencmd)
「ラズパイ 温度」とかでググると、vcgencmdの記事がたくさんヒットするのではないでしょうか
ubuntuなので、vcgencmdがありません
ので、まず入れます
sudo apt install libraspberrypi-bin
以下を実行すると温度が出ます
vcgencmd measure_temp
temp=56.9'C
sudo じゃないとだめ(でもなかった)
sudo
をしないと、以下のエラーが出ました
vcgencmd measure_temp
VCHI initialization failed
でも、最初だけ必要なのかもしれません
2回目以降はsudo
なしでもいけました
温度取得(ファイルから取得) ← 軽い!これを採用💡
これまでは前置きです(長い)
WOLサーバに合わせて記述するので、Flaskのpythonプログラム中でvcgencmd
を実行しようと思っていましたが、どうやってもブラウザに表示できませんでした
Linuxコマンドはsubprocess
で実行しようと試していましたが、どうやらこれが上手くいかない模様
なのでこちら↓を参考にして温度が収められているファイルから値を取ってくることにしました
四つめは動作電圧を確認するメリットをあまり見いだせなかったのと、動作電圧を記録したファイルが見当たらなかったためです。
とのことなので、電圧はいいや(分かれば、何かしらの原因切り分けには使えるが)
温度はここ↓
/sys/class/thermal/thermal_zone0
cat temp
59610
1000で割って、59.61℃
温度じゃないけど周波数はここ↓
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
kHz表示なので、1000で割ってMHzになる
表示仕様
温度と周波数を表示
WEBブラウザをリロードすれば値は更新
プログラム修正時
.pyファイルを書き換える時はsystemdのサービスを以下のようにする
stop(止める) → status(止まったこと確認) → .py書き換える → start → status(動いたことを確認)
ちゃんとしたコマンドは以下↓(stopの例)
sudo systemctl stop wakeonlan-server.service
nginxは触らなくても、上記だけでWEBページを更新すれば挙動がわかる
もし.pyファイルのエラーが出ていたら、stopした状態でstatusを見ればエラー箇所が表示されている
ラズパイの保証温度は70℃🔥
ところで温度は確認したとして、何度までいけるのか
70℃らしいです
ただ、設定温度で周波数を絞ります
追記:ラズパイ3B+にだけtemp_soft_limitがあります。デフォルト60°C、最高70°Cまで設定可能。設定温度で1.4GHz → 1.2GHzへスロットリング。ラズパイ3B、4Bには無い。
使っているのは3B+なのでtemp_soft_limitが存在します
/boot/firmware
にconfig.txt
がありました
中を見ると、tempナンチャラの記載がないので、デフォルトの60℃から周波数を絞り始めそうです
これを見ると、CPUは60℃近くで周波数が下限の600MHzまで下がっているので絞ってますね
通りで最近VPNが遅いわけだ!!😇
とりあえず熱暴走の心配はなさそうです(600MHzまで絞っても温度が上がるようなら暴走しますが・・・)
今は気休めのヒートシンク(自冷)しかないので足りないですね
夏本番こわい😱
2022/08/06 追記
600MHzまで下がっていることについてですが、たしかに60℃だからもありますが、↓にあるように軽負荷では周波数を下げて消費電力を抑えるので、そのために600MHzまで下っていたのかもしれません。
https://www.raspberrypi.com/news/raspberry-pi-3-model-bplus-sale-now-35/
実際、/boot/firmware/config.txt に
- temp_soft_limit=65
- temp_limit=75
を追記して、周波数を絞り始める温度を65℃に設定しましたが、温度が40℃であるにも関わらず600MHzでした。(下に記載したヒートシンクを購入して40℃程度に落ち着いています)
なので、温度が低く、重負荷となれば勝手に周波数は1.4GHzまで上がるかもしれません。
ヒートシンク漁り
このくらいヒートシンクが大きければ安心だ!
Amazonだとラズパイ4用が殆どで、価格も2000円以下で買えるのに、3用は高い!
プライムで見つけられたのはこのくらい(高い)
なのでAliExpressで買いました
長納期に待てるならあり
以上😁