Linux不提供睿频独立开关,需硬件支持、内核cpufreq驱动及BIOS/UEFI协同;确认启用需检查bios_limit、lscpu提示及BIOS设置,performance模式需显式放宽scaling_max_freq才能触发睿频,禁用则依赖no_turbo或策略切换。

Linux 本身不提供“睿频”(Turbo Boost)的独立开关,它依赖于硬件支持 + 内核 cpufreq 驱动 + BIOS/UEFI 设置三者协同。所谓“配置睿频”,实际是确认是否启用、限制其范围,或在策略中允许它生效——不是手动开/关某个按钮。
确认 CPU 是否支持并已启用睿频
先看硬件和固件是否放行:
-
cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit:若输出值高于cpuinfo_max_freq,说明 BIOS 允许睿频;若等于cpuinfo_max_freq,大概率被禁用 -
lscpu | grep -i "turbo\|boost":检查是否有Turbo boost enabled: yes或类似提示(部分内核需开启intel_rapl或acpi-cpufreq驱动才显示) - 重启进 BIOS/UEFI,查找
Intel Turbo Boost Technology或AMD Precision Boost选项,确保为Enabled
注意:cpupower frequency-info 输出中的 boost state support 行才是最终依据;若为 No,即使 BIOS 开了也没用——常见于老旧内核或某些服务器 BIOS 锁死。
让 performance 模式真正用上睿频
很多用户设了 performance 却没看到频率冲到标称睿频值,问题常出在策略未覆盖 boost 范围:
-
sudo cpupower frequency-set -g performance仅保证运行在scaling_max_freq,但该值默认不包含睿频档位 - 必须显式放宽上限:
echo $(cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit) | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq - 对所有核心批量执行(bash):
for i in /sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_max_freq; do echo $(cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit) | sudo tee $i; done - 验证:
watch -n1 'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq',跑 stress-ng -c1 后应能短暂跳到睿频值(如 4.7GHz)
限制或禁用睿频(避免过热/降频)
睿频虽好,但在散热受限或静音场景下反而引发 throttling。禁用不是删功能,而是“不让它触发”:
- 最稳妥方式:设
powersave或conservative策略,它们默认不请求 boost 频率 - 硬性封顶:将
scaling_max_freq设为基频(如echo 2500000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq) - 禁用 boost 功能(需驱动支持):
echo 0 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo(仅 Intel pstate 驱动有效;AMD 无等效接口) - 注意:
no_turbo是全局开关,写入后performance模式也失去睿频能力,且部分笔记本 BIOS 会忽略该设置
为什么 cpupower set -r 不起作用?
执行 sudo cpupower frequency-set -r -d 3.0GHz -u 4.0GHz 后频率仍超 4.0GHz?这是常见误解:
-
-r(range mode)只约束scaling_min_freq和scaling_max_freq,但睿频是独立于该区间的“瞬时提升”,不受此限 - Intel pstate 驱动下,
scaling_max_freq实际是基频上限;睿频由硬件自动叠加,内核无法通过 sysfs 直接封堵 - 真正有效的压制手段只有:
no_turbo=1(pstate)、降低 PL1/PL2 功耗墙(需intel-rapl工具)、或 BIOS 中关闭 Turbo - 验证是否生效:
cat /sys/devices/system/cpu/intel_pstate/no_turbo应输出1;再看scaling_cur_freq是否不再突破基频
复杂点在于:睿频不是软件可编程的“模式”,而是硬件响应负载+温度+功耗余量的实时行为。你只能影响它的触发条件,不能命令它“此刻升频”。最容易被忽略的是 BIOS 设置与内核驱动类型的匹配——比如 BIOS 关了 Turbo,no_turbo 文件就根本不会出现。


















