![如何确定控制 CPU 频率的所有组件?](https://linux22.com/image/1174032/%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E6%8E%A7%E5%88%B6%20CPU%20%E9%A2%91%E7%8E%87%E7%9A%84%E6%89%80%E6%9C%89%E7%BB%84%E4%BB%B6%EF%BC%9F.png)
请提两个要求:
- 有人能告诉我如何确定 a) 已安装的所有组件以及 b) 在安装时主动控制 CPU 频率的所有组件吗?
- 另外,有人能告诉我这些组件的文档在哪里吗?
[就上下文而言,论坛上似乎充斥着关于“如何设置/控制/限制 CPU 频率范围”的问题,其中许多问题似乎没有得到实际接受的答案。我有一个这样的问题,所以我必须尝试学习足够多的知识才能自己解决这个问题。不幸的是,到目前为止,文档大多都让我困惑,而且我找不到描述整体概念的“根”文档(如果存在的话)。所以,我留下了一个似乎违反规则的系统,在一个似乎限制在 800 MHz - 2.4 GHz 的系统上,CPU 的时钟速度越来越慢(低至 240 MHz!)。]
编辑跟进 Pilot6 的评论/回答:
- 这是英特尔 CPU(酷睿双核)
- 缩放驱动程序是 acpi(为什么会这样?是什么决定了这一决定——它是开箱即用的)
- 我尝试更改 scaling_min_freq,但系统覆盖了它(其值与 BIOS 用于“IntelSpeedStep”的值不匹配)
- BIOS 中是否启用 speedstep 并不重要
- 它运行很多比 min_freq 慢,这使得你关于硬件问题的最后评论特别有趣。
- 它变慢了(根据我的另一个帖子:CPU 时钟速度明显变慢 Dell / Intel Core Duo (Lubuntu 和其他)),但似乎不会太热 (~65C)。它也需要很长时间才能恢复速度 (但最终会恢复)。
托比
答案1
CPU 频率由 Linux 内核控制。Ubuntu 中没有安装任何其他东西。
对于桌面系统,通常使用两个扩展驱动程序:intel_pstate
用于相对较新的 Intel CPU 或acpi-cpufreq
用于 AMD 和其他 CPU。
acpi-cpufreq
也可以用于英特尔 CPU。
您可以通过以下方式检查系统正在使用哪一个
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_driver
对于这两种驱动程序,您可以通过将值写入和来控制最大和最小/sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
速度/sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
。
intel_pstate
并acpi-cpufreq
具有不同的扩展调节器。
您可以在 中检查并设置它们/sys/devices/system/cpu/cpufreq/policy0/scaling_governor
。
对于多核 CPU,每个核心都有一个策略。您可以单独设置策略。
如果您的 CPU 运行速度低于scaling_min_freq
,则意味着这是硬件问题。主板也可以控制频率。