Raspberry Piの温度管理をソフトウェアで

Raspberry Piの温度管理をソフトウェアで

E34dfb243cc4baa2f1d4306941d9cfd8?s=128

Kenichiro MATOHARA

September 13, 2020
Tweet

Transcript

  1. Raspberry Pi Raspberry Pi の温度管理を の温度管理を ソフトウェア ソフトウェア で で

    Doc Writer <matoken@kagolug.org> 1 / 22
  2. Kenichiro Kenichiro Matohara(matoken) Matohara(matoken) 鹿児島から参加 好きなLinuxディストリビューションはDebian 6月に申し込んだRakuten miniで上り改善……未だ 来ないでもキャンペーンやってる お仕事募集

    mailto:work@matohara.org https://matoken.org 2 / 22
  3. Raspberry Pi Raspberry Pi 多分今一番有名なSBC 入手性がよく情報も多い 元々教育向けだったけどホビーや組み込みにも モデルが沢山ある 3 /

    22
  4. 今回の環境 今回の環境 Raspberry Pi 3 model B Raspberry Pi OS

    arm64(β) と armhf 4 / 22
  5. 省電力なので計算を任せ 省電力なので計算を任せ て放置したりしがち て放置したりしがち CPU 100% x4 夏前までは問題なく動いていたが夏になって固まる ように 5

    / 22
  6. まずはログを撮る まずはログを撮る crontabで1分毎に情報を記録 UNIX Time date +%s SoC温度 /sys/class/thermal/thermal_zone0/temp スロットリング周りのフラグ

    vcgencmd get_throttled arm周波数 vcgencmd measure_clock arm (外気温度も取るべきだった) * * * * * printf "`date +\%s`,`cat /sys/class/thermal/thermal_zone0/temp`,`echo "o 6 / 22
  7. 負荷を掛ける 負荷を掛ける 今回のテストで使った負荷(いつもはvanity address/vttとかとか) $ cat /dev/urandom > /dev/null &

    $ cat /dev/urandom > /dev/null & $ cat /dev/urandom > /dev/null & $ cat /dev/urandom > /dev/null & 7 / 22
  8. 温度の問題みたい? 温度の問題みたい? 既定値ではCPU(SoC)がの温度が85度までに設定さ れている CPU温度80度(制限設定温度-5度)からスロットリン グ CPU温度85度を越えると固まっているように見え る…… 外気が35度を越えると駄目な感じ 8

    / 22
  9. OSの問題? OSの問題? Raspberry Pi OS arm64(β)を使っていたのでそのせい かと思いarmhf版に入れ替え→ 固まるまでの時間が 伸びたがやっぱり固まる 9

    / 22
  10. 正攻法 正攻法 ヒートシンク,ファンの増設 空調 10 / 22

  11. 金欠なのでとりあえずソ 金欠なのでとりあえずソ フトだけでどうにか フトだけでどうにか 11 / 22

  12. SoC制限温度を下げる SoC制限温度を下げる 85度はちょっと高そう 70度以下にしたほうがいいという書き込みを見か けたので70度に設定 /boot/config.txt でパラメータを設定できる まあ固まる temp_limit=70 12

    / 22
  13. SoCの最大周波数を下げ SoCの最大周波数を下げ てみる てみる まあ固まる arm_freq=800 13 / 22

  14. SoCの最小周波数を下げ SoCの最小周波数を下げ てみる(これが効くので てみる(これが効くので は?) は?) 600MHz以下には設定できないみたいでやっぱり固ま る…… arm_freq_min=400 $

    vcgencmd get_config int | grep arm_freq arm_freq=800 arm_freq_min=600 14 / 22
  15. Raspberry Pi のスロッ Raspberry Pi のスロッ トリングでは無理そう トリングでは無理そう 600MHz以下に下げられない &

    600MHzにスロットリ ングされても固まる 15 / 22
  16. cpulimit cpulimit シグナルを使ってプロセスの制限を行う cat からはじまるプロセスを50%に制限 温度が下がるのを確認 :) $ pgrep ^cat

    | xargs -n1 -I{} sh -c "cpulimit -p {} -l 50 -v &" 特定プロセスのcpu利用率を制限するcpulimitを試す – matoken’s meme 16 / 22
  17. とりあえずcpulimitで行 とりあえずcpulimitで行 けそう けそう 温度を見張って温度が高くなったらcpulimitを有効 に 温度が下がったら戻す 17 / 22

  18. 来夏に実戦投入? 来夏に実戦投入? 現在は100% x4でも固まらない 18 / 22

  19. その他のパラメータ(未確 その他のパラメータ(未確 認) 認) arm_freq 以外のパラメータ gpu_freq, core_freq, h264_freq, isp_freq,

    v3d_freq, sdram_freq, over_voltage, over_voltage_sdram…… 調べるのちょっと大変かも(不安定になりそう) https://elinux.org/RPicon g#Overclocking_options 19 / 22
  20. そもそも そもそも 空調入れたい 20 / 22

  21. 発表時のツッコミとか 発表時のツッコミとか cpufreqでクロック制御できるよ Raspberry pi だと色々いじったことぼくもあります (ボルトさげると電流下がるんですけどそのうち起動 しなくなったりするのでたのしいですね) (Wi が動かなくなったり)

    僕も熱で困っていた事があるので、cpulimit今度試 してみようと思います。有難うございました。 boot/cmdline.txtでmaxcpusが指定できるようで す。 https://uzulla.hateblo.jp/entry/2018/05/04/163608 21 / 22
  22. 奥付 奥付 発表 2020-09-13(Sun) 発表者 ライセンス CC BY-NC-SA 4.0 日本Androidの会秋葉原支部ロボット部

    第96回 勉強会 Kenichiro Matohara(matoken) 22 / 22