背景#
机器:HP Pavilion Aero 13-be1xxx,AMD Ryzen 5 5625U (Zen 3, 6c12t),36 Wh 小电池,2560×1600 IPS 屏,Fedora 44 / kernel 7.0 / KDE Plasma。
拔电跑 Cursor agent 编码时整机功率 9-12W,想压低 idle 基线并提升续航。
硬件画像(先确认)#
# 电池容量与状态
cat /sys/class/power_supply/BAT0/uevent
# CPU / pstate / EPP / boost
cat /sys/devices/system/cpu/amd_pstate/status # active
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor # powersave
cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
# 平台 profile(HP PMF / hp-wmi)
cat /sys/firmware/acpi/platform_profile_choices # cool quiet balanced performance
# Wi-Fi 省电
iw dev wlp1s0 get power_save
# 现有电源服务(不能同时跑 TLP 和 power-profiles-daemon)
systemctl is-active tlp power-profiles-daemon tuned三项立刻能拿到的优化(实测有效)#
# 1. Wi-Fi 省电(MT7922 默认 off,开启省 ~0.3-0.5W)
sudo iw dev wlp1s0 set power_save on
# 2. EPP 拉到 power(idle 降 ~0.5-1W)
echo power | sudo tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
# 3. 键盘背光关掉(如果有)
echo 0 | sudo tee /sys/class/leds/*kbd_backlight*/brightness 2>/dev/null不要再去试
platform_profile=cool/quiet,本机 BIOS 拒收,见后文。
持久化:TLP 配置#
把上面这套写进 TLP,让 AC/BAT 自动切换。
/etc/tlp.d/00-aero.conf:
# HP Pavilion Aero 13-be1xxx / Ryzen 5 5625U
# 电池侧偏省电,AC 侧保留性能;插拔自动切换。
CPU_SCALING_GOVERNOR_ON_AC=powersave
CPU_SCALING_GOVERNOR_ON_BAT=powersave
CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
CPU_ENERGY_PERF_POLICY_ON_BAT=power
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=1
CPU_HWP_DYN_BOOST_ON_AC=1
CPU_HWP_DYN_BOOST_ON_BAT=0
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=on
PCIE_ASPM_ON_AC=default
PCIE_ASPM_ON_BAT=powersupersave
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto
USB_AUTOSUSPEND=1
USB_EXCLUDE_AUDIO=1
USB_EXCLUDE_PRINTER=1
RADEON_DPM_PERF_LEVEL_ON_BAT=auto
RADEON_DPM_STATE_ON_BAT=battery应用并启用:
sudo tlp start
sudo systemctl enable tlp.service
sudo systemctl enable tlp-pd.service # 消除 tlp-stat 的 warning
sudo tlp-stat -p | head -40 # 验证生效设计取舍#
- 保留
CPU_BOOST_ON_BAT=1:日常要跑 Cursor agent + ripgrep 索引,关 boost 会显著拖慢响应;靠CPU_HWP_DYN_BOOST_ON_BAT=0让 boost 不被无脑触发即可。 - 没动 NVMe APST / SATA ALPM:5625U 平台默认就是省电策略,TLP 不干预反而稳。
- 没设
PLATFORM_PROFILE_ON_BAT:理由见下一节。
platform_profile 坑:放弃,不是配置问题#
写入 cool / quiet / low-power 都被驱动拒收。dmesg 揭示真相:
hp-wmi: Failed to apply initial fan settings: -22
platform_profile: Failed to get profile for handler hp-wmi-22 = -EINVAL:hp-wmi 在驱动初始化阶段调 WMI 想读取 PMF 状态就被 BIOS 拒了。本机 BIOS 是 AMI F.03,与 kernel 7.x 的 hp-wmi 接口对不上,是已知兼容性 bug。
副作用是 platform_profile sysfs 节点写入会立刻进入 stuck 态:
$ cat /sys/firmware/acpi/platform_profile
cat: 无效的参数重启也不复位。两条解法不值得折腾:
- 升级 BIOS(HP 官网有更新版,Linux 走
fwupdmgr refresh && fwupdmgr update看 LVFS 是否推了) - 升级 kernel 到 7.1+(看 hp-wmi 是否修了)
少了这一档 PMF 限制,影响是峰值时 sustained TDP 仍按 15W 跑。但电池实测平均功耗已经够低,收益 < 1W,不值得。
直接从 TLP 配置里删掉 platform_profile 行避免日志报错:
sudo sed -i '/^PLATFORM_PROFILE/d' /etc/tlp.d/00-aero.conf实测数据(拔电 1.5 小时 / Cursor agent 编码)#
数据源:/var/lib/upower/history-rate-*.dat + history-charge-*.dat。
| 指标 | 值 |
|---|---|
| 拔电时长 | 5636 秒 ≈ 1h 34min |
| 电量消耗 | 95% → 48% = 47% |
| 实际放电 | 36 Wh × 47% ≈ 16.9 Wh |
| 平均整机功率 | ≈ 10.8 W |
| 推算满电续航 | ≈ 3.3 小时 |
瞬时轨迹:
0 min 9.25 W 刚拔电,编辑器 idle
30 min 10.41 W 开始干活
60 min 11.56 W Cursor agent + rg 全核
90 min 11.60 W 持续负载idle baseline 已经被压到 9.25W,工作负载顶上去也只到 11.6W,没再出现 20W+ 的尖峰。
平均功率测量脚本(30s 采样平均)#
调优后验证用:
( for i in $(seq 1 30); do
awk -F= '/CURRENT_NOW/{c=$2} /VOLTAGE_NOW/{v=$2} END{print v*c/1e12}' \
/sys/class/power_supply/BAT0/uevent
sleep 1
done ) | awk '{s+=$1; n++} END{printf "平均 %.2f W (n=%d)\n", s/n, n}'还能再降的方向(边际收益)#
按收益从高到低:
- 屏幕亮度:2560×1600 IPS 是单一最大负载,每降 20% 整机 ~ -0.5W。
- Cursor 关掉不用的 workspace:每个挂载的项目都跑 Codebase Indexing + file watcher。只留当前要改的项目。
- 关 Cursor 后台 Agent(左下 status bar),不用就关。
- NTFS 分区项目搬到 ext4:跨架构文件读写 CPU 占用高 1.5-3 倍。
- 看视频时:Firefox 强制硬解(
media.av1.enabled=false,让 YouTube 回退到 VP9 走 VCN 硬解)。5625U 是 Vega APU,不支持 AV1 硬解,软解 AV1 比硬解 VP9 多 5-8W。
不要做#
pcie_aspm=force内核参数:MT7922 + AMD 平台开太狠 Wi-Fi 会断流。- 关 SMT / 关核:Zen 3 race-to-idle 反而被破坏。
power_dpm_force_performance_level=low把 GPU 死锁低频:滚动卡顿,省那 0.5W 不值。- 改
cpufreq上限:amd_pstate active 模式下硬限频会绕过节能调度算法,反而费电。 - 再去折腾
platform_profile:BIOS 接口 bug,等官方更新。
验证清单#
调完跑一遍:
echo "--- governor / EPP / boost ---"
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
cat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
cat /sys/devices/system/cpu/cpufreq/boost
echo "--- wifi ---"
iw dev wlp1s0 get power_save
echo "--- TLP 当前 profile ---"
sudo tlp-stat -s | grep -E "TLP profile|Power source"
echo "--- 整机瞬时功率 ---"
awk -F= '/CURRENT_NOW/{c=$2} /VOLTAGE_NOW/{v=$2} END{printf "P=%.2fW\n", v*c/1e12}' \
/sys/class/power_supply/BAT0/uevent预期值(电池模式):
- governor:
powersave - EPP:
power - boost:
1 - Wi-Fi:
Power save: on - TLP profile:
balanced/BAT或battery/BAT - 整机功率: idle ~ 7-9 W,工作 ~ 10-12 W
复盘#
- 没花一分钱、没换硬件,平均功耗从估计的 12-13W(默认 Fedora)降到实测 10.8W,相当于续航多了 ~30%。
- 大头来自三个开关:EPP=power、Wi-Fi PS、TLP 在 AC/BAT 间自动切策略。
- AMD APU 上的 platform_profile 在 hp-wmi 这条路上不稳,能跑就跑、跑不了别死磕。
- 真正的天花板是屏幕(2.5K IPS 满亮度 ~4-5W)和应用层(Cursor 多 workspace + Electron)。
最后更新: 2026-06-29 适用环境: HP Pavilion Aero 13-be1xxx (Ryzen 5 5625U) / Fedora 44 / kernel 7.0.13 / KDE Plasma / TLP 1.10.1