CPU锁定在最低频率,cpufreqd说它不会管理它?

sor*_*121 5 cpu debian

我有一台运行 CrunchBang Statler(基于 Debian Squeeze)和 1.4GHz Pentium M 的 Dell Latitude D600。我在 Conky 中注意到我的 CPU 频率卡在 600MHz,即使在执行像 Flash 视频这样的 CPU 密集型操作时也是如此。所以我安装了 cpufreqd,运行了 cpufreq-info,它返回了这个:

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 600 MHz - 1.40 GHz
  available frequency steps: 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz, 600 MHz
  available cpufreq governors: powersave, userspace, conservative, ondemand, performance
  current policy: frequency should be within 600 MHz and 600 MHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz.
  cpufreq stats: 1.40 GHz:0.00%, 1.20 GHz:0.00%, 1000 MHz:0.00%, 800 MHz:0.00%, 600 MHz:100.00%
Run Code Online (Sandbox Code Playgroud)

请注意“需要协调频率的 CPU”部分。CPUFreqD 似乎无法管理我的处理器频率,并且还说它保持在 600MHz 到 600MHz 的范围内。我打开了 SpeedStep,据说 2.6 完全支持它(我从 Wheezy 向后移植了 2.6.39),但我从未注意到 SpeedStep 做任何事情。如果我禁用它,BIOS 会说我会卡在 600MHz。

电源没有问题,因为笔记本电脑没有电池;它完全依赖于其电源线。如何启用处理器的全频?Linux 在频率上对我撒谎吗?我在 Linux 方面经验丰富,所以我不怕尝试复杂的修复。

sor*_*121 5

一个月后,我改用 Arch Linux,发现了真正的问题及其解决方案。

我的戴尔 D600 中没有电池,仅靠交流适配器供电运行。当 BIOS 检测到没有安装电池时,它会永久降低 CPU 的时钟频率,以避免 AC 适配器过载。

如果您想覆盖此行为,您所要做的就是添加processor.ignore_ppc=1到内核​​引导命令的末尾(通常在您的 GRUB 配置中找到)。然后您可以使用 acpi_cpufreq 驱动程序正确启用 CPU 频率缩放。

或者您可以选择不便宜并购买电池。这样也能解决问题。