如何解决 leap15.2 CPU 在空闲时一直处于满速睿频的状态

刚刚上手 Leap 笔记本空闲什么不做都很烫手,找原因发现是 CPU 即使是空闲也一直是睿频状态。
查看了 CPU 的策略是 powersave,能不能像风滚草一样设置为动态频率,空闲时以较低频率,需要时睿频
求解决办法

https://wiki.archlinux.org/index.php/CPU_frequency_scaling_(简体中文)#CPU_频率驱动程序

禁用 pstate 可以解决睿频问题;动态频率就不清楚了

powersave 和 performance 的问题上面文档中也有写。

这个我看了,我想改成 conservative 模式,但是一直失败

zh@localhost:~> sudo cpupower -c all frequency-set -g conservative
[sudo] root 的密码:
Setting cpu: 0
Error setting new values. Common errors:

  • Do you have proper administration rights? (super-user?)
  • Is the governor you requested available and modprobed?
  • Trying to set an invalid policy?
  • Trying to set a specific frequency, but userspace governor is not available,
    for example because of hardware which cannot be set to a specific frequency
    or because the userspace governor isn’t loaded?
    zh@localhost:~>

pstate 驱动仅支持 performance 和 powersave governors and the performance 可以比老的 ondemand governor 更省电.

tlp 安装一个?

用这个 bumblebee 还能正常用么,bbswitch 会不会出现 bug?

问题找到了我不说你 tlp 就不会出现这种情况,应该是 15.2 默认装了 tlp,但是我有没有配置所以才导致这个结果的

如果你装了 TLP,贴一个sudo tlp-stat -p的结果让我们看看,按理说 TLP 不配置,就已经是智能的节电模式了。按照 TLP 的官方文档确实这样,默认配置就是省电的。但是你需要手动在 systemd 上启用 TLP 才行。况且我在 Leap15.2 上也没这种状况。

— TLP 1.1 --------------------------------------------

+++ Processor
CPU model = Intel® Core™ i7-4710HQ CPU @ 2.50GHz

/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 = 800000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 3500000 [kHz]

/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq = 800000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq = 3500000 [kHz]

/sys/devices/system/cpu/cpu2/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq = 800000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq = 3500000 [kHz]

/sys/devices/system/cpu/cpu3/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq = 800000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq = 3500000 [kHz]

/sys/devices/system/cpu/cpu4/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu4/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu4/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq = 800000 [kHz]
/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq = 3500000 [kHz]

/sys/devices/system/cpu/cpu5/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu5/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu5/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq = 800000 [kHz]
/sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq = 3500000 [kHz]

/sys/devices/system/cpu/cpu6/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu6/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu6/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq = 800000 [kHz]
/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq = 3500000 [kHz]

/sys/devices/system/cpu/cpu7/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu7/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu7/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq = 800000 [kHz]
/sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq = 3500000 [kHz]

/sys/devices/system/cpu/intel_pstate/min_perf_pct = 22 [%]
/sys/devices/system/cpu/intel_pstate/max_perf_pct = 100 [%]
/sys/devices/system/cpu/intel_pstate/no_turbo = 0
/sys/devices/system/cpu/intel_pstate/turbo_pct = 36 [%]
/sys/devices/system/cpu/intel_pstate/num_pstates = 28

x86_energy_perf_policy.cpu0 = balance-power
x86_energy_perf_policy.cpu1 = balance-power
x86_energy_perf_policy.cpu2 = balance-power
x86_energy_perf_policy.cpu3 = balance-power
x86_energy_perf_policy.cpu4 = balance-power
x86_energy_perf_policy.cpu5 = balance-power
x86_energy_perf_policy.cpu6 = balance-power
x86_energy_perf_policy.cpu7 = balance-power

/sys/module/workqueue/parameters/power_efficient = N
/proc/sys/kernel/nmi_watchdog = 0

+++ Undervolting
PHC kernel not available.

我现在修改了一下,但是还是达不到 win 上的效果最低都是 2.5Ghz,占用不高,就是频率高

首先,我不建议用 GUI 进行配置。因为 TLP1.1 到 1.3 的配置文件发生了变化,不知道你的 GUI 是否兼容 1.1 版,有没有做这么一个检查。
其次,Intel CPU 驱动的部分电源控制功能要求 Intel Core i Gen. 5 (Skylake) 或者更新的 CPU,而你的 CPU 是 Gen. 4 Haswell。

GUI 是基于文本的,基本是文本上的选项然后后面配上值。
所以我是关掉比较好?还是我这 u 应该用旧版,但是我看文件我的只支持 performance&powersave。
但是之前选用 powersave 跟没选一样 :mask:我是对着官方文档改的文件 gui 分类看起来比较方便

难说,你的 TLP 抱怨PHC kernel not available.就是不能对 CPU 降压的意思,但按理说,你不需要这个。
也许可以试试 GitHub - kitsunyan/intel-undervolt: Intel CPU undervolting and throttling configuration tool ,手动管理 CPU 电源,但有没有用我也不知道。
主要是我没有这么老的硬件,我也没办法测试。

会不会是 intel pstate 设置有问题?看文档我的 CPU 只支持 performance 和 powersave 两种模式,调速就是交由 intel pstate 来做了。很奇怪的是可以通过限制
CPU_MIN_PERF_ON_AC=0
CPU_MAX_PERF_ON_AC=100
CPU_MIN_PERF_ON_BAT=0
CPU_MAX_PERF_ON_BAT=25
在电池的情况下
CPU 频率能够锁在 897~898MHz 在浏览网页的情况下使用率也只有 10% 到 20%
PS:tlp 版本是 1.1

我是在运行参数里加入 intel_pstate=disable