无法在 19.10 中控制 7390 xps 13 2-in-1 上的 CPU 频率

无法在 19.10 中控制 7390 xps 13 2-in-1 上的 CPU 频率

我无法使用 tlp、cpupower 或其他工具来控制 CPU 频率。内核版本是 5.3.0-19-generic。

我尝试使用 intel_pstate active 或使用“intel_pstate=disabled”作为内核启动参数关闭 intel pstate,然后使 acpi-cpufreq 成为驱动程序。无论哪种方式都无法控制 CPU 频率。

注意:我必须关闭 BIOS 中的“安全启动”才能使用 x86_energy_perf_policy 更改性能策略。但不管怎样,它还是不起作用。

行为如下:

(1) 使用 intel_pstate 驱动程序和策略“performance”,CPU 频率徘徊在最高 1.3GHz(大约 1.25GHz)附近。使用策略“powersave”,CPU 频率徘徊在 1.1GHz 附近,或者根本没有变化。尝试使用 cpupower 或 tlp 设置进行任何设置均无济于事。

(2)使用 acpi-cpufreq 驱动程序时,任何工具(单独使用)的设置都无关紧要。

我每次只使用一个工具,同时从系统中删除其他工具,以确保这些工具不会发生冲突。

系统的作用:CPU 频率会进行调整,就好像它们始终由“按需”调节器控制一样。但无论如何,我无法设置性能策略或调节器或其他设置来将 CPU 保持在任何频率以下 - 它们会随时上升。

我已经在 Google 上搜索了两周,查看了与我的问题相关的所有内容,并尝试了许多建议,但都不起作用。使用所有工具(tlp、cpupower、cpufreqd、cpurequtils 等),CPU 将默认由“ondemand”调控器控制。(系统调用脚本 /lib/systemd/set-cpufreq 来设置它。)当然,我可以更改它,但这似乎无关紧要。

任何帮助是极大的赞赏。

答案1

找到解决方案。首先,不是禁用 intel_pstate。其次,根据需要设置 tlp 默认值。

接下来,暂时关闭 BIOS 中的“安全启动”。这是以下命令生效的必要条件。

问题(我有 8 个 CPU,因此是 0-7)

$ x86_energy_perf_policy -c 0-7 --hwp-max 1

这会将某种硬件最大频率参数(?固件)设置为最低级别,以便最大 CPU 频率由 cpupower 更改以匹配最低 CPU 频率。(如果尚未设置,--hwp-min 1 将设置最小频率参数。但您不需要这样做。)

您现在可以在 BIOS 中再次打开“安全启动”。

然后发出

$ cpupower -c 所有频率设置 -u 800Mhz -g powersave

以你喜欢的任何速度运行,它都应该能正常工作。到目前为止,一切都很顺利。挂起/唤醒不会干扰 CPU 频率设置。tlp 中的 AC 和 BATT 设置得到了应有的尊重。

注意:当系统空闲时,我所能达到的最低功耗约为 3.5 瓦。如果您能将 7390 的功耗降低,请发帖!

答案2

cpuf - 用于设置 CPU 最小/最大频率的简单 Bash GUI

你可以使用这个使用 GUI 还是简单的 Bash 脚本来限制 CPU?覆盖频率:

示范

在这个演示中,cpuf窗口在左侧,conky系统信息在右侧。演示的进展如下:

  • YouTube 视频正在播放时演示已开始
  • 默认 CPU 最小/最大频率为800/3500
  • 将 CPU 最小值/最大值覆盖为800/800并且 CPU 使用率跳升至 20%
  • 将 CPU 最小值/最大值覆盖为3500/3500并且 CPU 使用率下降到 10%
  • 演示循环并重新开始

cpuf-demo.gif

相关内容