シングルボードコンピュータを使っていて。
CPUの温度を調べたり。
熱暴走しやすい個体の、クロック数を変更したり。
そのようなコマンドを記録しておこうと思います。
温度表示
CPUや基板の温度を℃表示するコマンドを作ってみました。scaleの場合、小数点3桁以降は切捨てになるようです。
echo "scale=2;`cat /sys/class/thermal/thermal_zone0/temp` / 1000" | bc -l
echo "scale=2;`cat /sys/class/thermal/thermal_zone1/temp` / 1000" | bc -l
CPU動作周波数確認
cpufrequtilsをインストールしました。
sudo apt install cpufrequtils
コアごとのcpu情報表示
cpufreq-info
ポリシー表示
CPU周波数の下限と上限、どのような変更方法かを表示します。
cpufreq-info -s
統計表示
どの周波数が使用されたかステータスを表示します。
cpufreq-info -s
こちらはRaspberry Pi Zero Wの例になります。CPU周波数は700MHzから1GHzの範囲で、on demand(適用的に)変化するようです。
こちらは最大クロックを1008MHzにクロックダウンした、NanoPi M4の例になります。最小クロックは600MHzを指定したのですが、統計を見ると、408MHzで動作する場合もあるようです。多くは600MHzから1008MHzの範囲で動作しているようですが、1416MHzや1512MHzで動作する場合もあるようです。
CPU周波数変更
シングルボードコンピュータの種類によって、CPU周波数を変更できるものもあるようです。
NanoPi M4でArmbianを動かした場合。既定のCPU周波数は600MHzから2016MHzで動作しますが、/etc/default/cpufurequtilsファイルを変更することで、上述のように上限を1008MHzに変更したり、下限を変更することも可能のようです。
sudo vi /etc/default/cpufrequtils
このような感じでMIN_SPEEDやMAX_SPEED等の設定値を変更することで、動作周波数を調整できるようです。
たとえばシングルボードコンピュータが熱暴走で動作が不安定だったり。
消費電力を抑える場合など、これらのコマンドで解析後、CPUの温度を調整することで、対応ができそうです。
何か他の便利なコマンドがありましたら、追記させて頂こうと思います。