我的电池显然已经没电了(我尝试用 重新校准它power-calibrate
,但没有成功)。
$ acpi
Battery 0: Charging, 0%, charging at zero rate - will never fully charge.
Battery 1: Not charging, 0%
结果CPU频率被设置为最低值
$ grep MHz /proc/cpuinfo
cpu MHz : 399.999
cpu MHz : 400.064
cpu MHz : 400.001
cpu MHz : 400.046
$ sudo cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 400 MHz - 2.60 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 400 MHz and 2.60 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 400 MHz (asserted by call to kernel)
boost state support:
Supported: no
Active: no
我尝试过手动设置频率但失败
$ sudo cpupower frequency-set -f 2000
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?
用 sysfs 提升它也不起作用,
$ echo "2000000" | sudo tee -a /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
2000000
$ cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq
400000
如何完全禁用 CPU 频率缩放或将其设置为最大值?
该问题出现在 Linux 和 OpenBSD 上
我还可以通过以下方式测量性能下降情况
dd if=/dev/zero bs=1M count=1024 | md5sum -
它给我大约 50MB/s,几乎比预期低 10 倍。
我尝试过使用 90W 和 65W 适配器,频率没有提高。
我尝试过取出电池,但仍然以最低频率运行。
# dmidecode -t processor | grep "Speed"
Max Speed: 8300 MHz
Current Speed: 2600 MHz
# lshw -c cpu | egrep "capacity|size"
size: 400MHz
capacity: 4005MHz
答案1
如果在 sysfs 中手动设置值没有效果,这可能是因为频率在 BIOS 级别受到限制。如果您的笔记本电脑是笔记本电脑, 这是当然因为频率受到BIOS级别的限制。
确保您阅读并理解上面链接的页面。这是一项安全功能,BIOS 必须自行检测到限制 CPU 的严重原因。
在这种情况下,由于标准 65W 电源适配器的弱点以及没有可用的电池来提供额外的电源,可能无法响应峰值功率需求。
如果您确定您的适配器足够强大,并且怀疑 BIOS 有问题,或者愿意承担不可预测行为(包括数据丢失)的风险,并且确实希望忽略此限制,您可以:
将值/sys/module/processor/parameters/ignore_ppc
从 0 更改为 1
如果您希望此设置在重新启动后仍然有效,则只需将其添加processor.ignore_ppc=1
到启动命令行即可。
现在你只能靠自己了,祝你好运!
答案2
情况可能是这样的:
- 你正在看到当前的执行命令时的 cpu 频率,而不是最大频率,请参阅这。所以你可能不需要做任何其他事情就可以了。
- 您选择的值不可用,请参阅
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
。 - 该功能不受内核支持,或者存在错误,请参阅/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed:参数无效。
你可以尝试:
- 使用
cpupower-gui
。 - 没有电池,两种操作系统都是一样的。
- 同样,来自其他发行版的 live USB
请发布以下输出,适用于 Linux 和 OpenBSD(某些命令可能不可用):
uname -a
lsb_release -a
lscpu | grep "MHz".
sudo dmidecode -t processor | grep "Speed"
lshw -c cpu | egrep "capacity|size"
sudo lshw -c cpu | egrep "capacity|size"
head /sys/devices/system/cpu/cpu0/cpufreq/scaling_*
另请发布您的电脑的确切型号。
答案3
我刚刚在戴尔笔记本电脑上遇到了同样的问题:
$ lscpu | grep MHz
CPU MHz: 200.000
CPU max MHz: 4800.0000
CPU min MHz: 800.0000
事实证明,只是电源线松动了。重新插入插头解决了问题。