at_mizo
2022年3月11日 16時55分
動作温度範囲の上限に近い環境に設置する場合、Armadillo-IoT G4が高温となりシステムが停止してしまう可能性があります。このような状況を避ける為、CPUの処理能力を制限して発熱量を低下させる方法を説明します。
発熱量低下の目安
CPUクロックを下げることでCPUコア当り1〜2℃程度、動作するCPUコアを減らすことでもCPUコア当り1〜2℃程度の発熱量を低下させることができます。
発熱量低下の参考値
Armadillo-IoT G4で実測した温度は次の通りです。単位は℃です。
thermal_zone0 | thermal_zone1 | |
---|---|---|
1.6GHz@4core | 57 | 61 |
1.6GHz@3core | 55 | 58 |
1.6GHz@2core | 53 | 55 |
1.6GHz@1core | 49 | 50 |
thermal_zone0 | thermal_zone1 | |
---|---|---|
1.2GHz@4core | 52 | 54 |
1.2GHz@3core | 50 | 52 |
1.2GHz@2core | 49 | 51 |
1.2GHz@1core | 48 | 48 |
室温環境下(約26℃)、ケースによる放熱が無い環境でstressコマンドを利用し、各CPU負荷が100%の状態で測定しました。
i.MX 8M Plusの温度を測定する
次のように温度を測定することができます。
//CPU(Arm Cortex-A53)周辺温度を測定する armadillo:~# cat /sys/class/thermal/thermal_zone0/temp //SoC(ANAMIX 内部)温度を測定する armadillo:~# cat /sys/class/thermal/thermal_zone1/temp
CPUクロックを下げる
次のように最大1.6GHzで動いているCPUクロックを1.2GHzに下げることができます。
armadillo:~# echo powersave > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
CPUのコア数を減らす
次のようにCPUのコア数を減らすことができます。
armadillo:~# echo 0 > /sys/devices/system/cpu/cpu[X]/online //[X]には1〜3の数字が入ります。
例として、通常4つ動いているCPUを2つに減らすには次のようにコマンドを実行します。
armadillo:~# echo 0 > /sys/devices/system/cpu/cpu2/online armadillo:~# echo 0 > /sys/devices/system/cpu/cpu3/online