LaptopのCPU設定をtlpで変更して温度を下げる

最近暑いのもありPCがシャットダウンしてしまうことが多いです．
シャットダウンしていてログを見ると

kernel: thermal thermal_zone0: acpitz: critical temperature reached
kernel: reboot: HARDWARE PROTECTION shutdown (Temperature too high)

が残されている感じ．
tlpでCPUの設定を変更してみました．

このcritical temperatureはこの端末では100℃のようです．
通常時の温度は75度くらい．

$ sensors | grep coretemp-isa-0000 -A7
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +52.0���C (high = +100.0���C, crit = +100.0���C)
Core 0: +50.0���C (high = +100.0���C, crit = +100.0���C)
Core 1: +52.0���C (high = +100.0���C, crit = +100.0���C)
Core 2: +52.0���C (high = +100.0���C, crit = +100.0���C)
Core 3: +49.0���C (high = +100.0���C, crit = +100.0���C)

ということでいまこの端末ではtlpを導入しているのでtlpのcpuの設定を変えて見ようと思います．
設定ファイルは /etc/tlp.conf

CPU_SCALING_GOVERNOR_ON_AC/BAT/SAV

先ずは CPU_SCALING_GOVERNOR_ON_AC/BAT/SAV を設定．既定値は performance になっていそうです．
設定可能な項目は環境によって変わるので， tlp-stat -p などで確認します．この端末だと performance, powersave が設定できそうなので powersave に．

設定可能なscaling governor設定項目を確認

$ sudo tlp-stat -p | grep scaling_available_governors
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave

tlp.confを修正

-#CPU_SCALING_GOVERNOR_ON_AC=performance
-#CPU_SCALING_GOVERNOR_ON_BAT=powersave
-#CPU_SCALING_GOVERNOR_ON_SAV=powersave
+CPU_SCALING_GOVERNOR_ON_AC=powersave
+CPU_SCALING_GOVERNOR_ON_BAT=powersave
+CPU_SCALING_GOVERNOR_ON_SAV=powersave

設定変更したらtmpを再起動します． sudo service tlp restart
少し下がった気がするけどしばらく使っているとまたおこりました．

CPU_ENERGY_PERF_POLICY_ON_AC/BAT/SAV

次は CPU_ENERGY_PERF_POLICY_ON_AC/BAT/SAV を設定してみます．
こちらは power が一番低いようなので balance_performance から power へ変更．

設定可能なcpu energy performance設定項目を確認

$ sudo tlp-stat -p | grep energy_performance_available_preferences
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power

tlp.confを修正

-#CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
-#CPU_ENERGY_PERF_POLICY_ON_BAT=balance_power
-#CPU_ENERGY_PERF_POLICY_ON_SAV=power
+CPU_ENERGY_PERF_POLICY_ON_AC=power
+CPU_ENERGY_PERF_POLICY_ON_BAT=power
+CPU_ENERGY_PERF_POLICY_ON_SAV=power

設定変更したらtmpを再起動します． sudo service tlp restart
少し下がった気がするけどしばらく使っているとまたおこりました．

CPU_BOOST_ON_AC/BAT/SAV

次に CPU_BOOST_ON_AC/BAT/SAV を設定してみます．
これはCPUのturbo boostを有効/無効にする設定のようで，設定項目は 0(off)/1(on) のみのようです．

tlp.confを修正

-#CPU_BOOST_ON_AC=1
-#CPU_BOOST_ON_BAT=1
-#CPU_BOOST_ON_SAV=0
+CPU_BOOST_ON_AC=0
+CPU_BOOST_ON_BAT=0
+CPU_BOOST_ON_SAV=0

設定変更したらtmpを再起動します． sudo service tlp restart

この設定が一番効いたようで一気に温度が下がりました．上２つでは数度ずつしか下がりませんでしたが，この設定で一気に20度近く下がり，現在51℃．
ただ，PCがもたつくことが増えました．

この時点でのtlp-stat -p

$ sudo tlp-stat -p
--- TLP 1.10.2 --------------------------------------------

+++ Processor
CPU model = Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 1800000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq = 1800000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference = power [EPP]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power

/sys/devices/system/cpu/cpu1..cpu7: omitted for clarity, use -v to show all

/sys/devices/system/cpu/intel_pstate/status = active
/sys/devices/system/cpu/intel_pstate/min_perf_pct = 8 [%]
/sys/devices/system/cpu/intel_pstate/max_perf_pct = 100 [%]
/sys/devices/system/cpu/intel_pstate/no_turbo = 1
/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost = 0
/sys/devices/system/cpu/intel_pstate/turbo_pct = 68 [%]
/sys/devices/system/cpu/intel_pstate/num_pstates = 46
/sys/module/workqueue/parameters/power_efficient = N
/proc/sys/kernel/nmi_watchdog = 0

+++ Platform
/sys/firmware/acpi/platform_profile = performance
/sys/firmware/acpi/platform_profile_choices = low-power balanced performance
/sys/devices/platform/thinkpad_acpi/dytc_lapmode = 0

涼しくなってきたら設定を戻しましょう．

それと去年は問題なかったので経年劣化で熱伝導グリスが乾いてきているのかもしれません．億劫ですがヒートシンクにグリスを塗り直すと良くなる気もします．

参考url

Processor — TLP 1.10.2 documentation

ThinkPad L13 Gen 6, L13 2-in-1 Gen 6, L13 Gen 6 AMD, L13 2-in-1 Gen 6 AMD, S2 Gen 10, S2 2-in- 1 Gen 10 ハードウェア保守マニュアル ※pdf

環境

$ dpkg -l | grep tlp
ii tlp 1.10.2-2 all Optimize laptop battery life
ii tlp-pd 1.10.2-2 all Switch Power Profiles from the Desktop
ii tlp-rdw 1.10.2-2 all Switch Wi-Fi and Bluetooth on/off automatically
$ lsb_release -dr
Description: Debian GNU/Linux forky/sid
Release: n/a
$ arch
x86_64