需配置电源管理模块实现AC/电池自动切换策略:一、校准UKUI参数;二、用udev绑定CPU调频;三、启用TLP双模控制;四、用kylin-power-manager强制同步。

如果您在麒麟OS中希望系统根据当前供电状态(交流电或电池)自动切换性能与节能策略,则需配置电源管理模块以识别并响应电源类型变化。以下是实现此功能的具体步骤:
一、配置UKUI电源管理器自动响应电源类型
UKUI桌面环境通过org.ukui.power-manager Schema统一管理电源行为,其内置逻辑支持依据AC/battery状态自动加载不同策略,但默认未完全启用智能切换机制,需手动校准参数。
1、检查当前AC模式下的屏幕关闭时间设置:gsettings get org.ukui.power-manager sleep-display-ac
2、将AC模式屏幕关闭时间设为1800秒(30分钟),确保插电时保持活跃:gsettings set org.ukui.power-manager sleep-display-ac 1800
3、设置AC模式下系统不休眠:gsettings set org.ukui.power-manager sleep-computer-ac 0
4、设置电池模式屏幕关闭时间为300秒(5分钟),触发节能响应:gsettings set org.ukui.power-manager sleep-display-battery 300
5、启用电池模式下自动进入挂起:gsettings set org.ukui.power-manager sleep-computer-battery 600
二、绑定CPU频率调节策略与电源状态
内核级CPU调频策略需与电源状态联动,通过udev规则监听power_supply事件,在AC接入或断开时动态切换governor,实现底层功耗响应。
1、创建udev规则文件:sudo nano /etc/udev/rules.d/99-cpu-governor.rules
2、写入AC接入时启用performance策略的规则:SUBSYSTEM=="power_supply", ACTION=="online", RUN+="/bin/sh -c 'for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $i; done'"
3、写入AC断开时启用powersave策略的规则:SUBSYSTEM=="power_supply", ACTION=="offline", RUN+="/bin/sh -c 'for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo powersave > $i; done'"
4、重载udev规则:sudo udevadm control --reload-rules && sudo udevadm trigger
三、启用TLP服务并配置AC/BAT双模策略
TLP守护进程原生支持AC与BAT独立配置,可替代手动udev方案,提供更稳定、细粒度的硬件级电源控制,包括USB自动挂起、SATA链路降频、无线模块省电等。
1、安装TLP:sudo apt update && sudo apt install tlp tlp-rdw
2、启用TLP服务:sudo systemctl enable tlp && sudo systemctl start tlp
3、编辑TLP配置:sudo nano /etc/default/tlp
4、设置AC模式CPU最大频率为全速:CPU_MAX_FREQ_ON_AC=0
5、设置BAT模式CPU最大频率限制为1.8GHz:CPU_MAX_FREQ_ON_BAT=1800000
6、启用BAT模式下PCIe ASPM节能:PCIE_ASPM_ON_BAT=powersave
四、使用kylin-power-manager命令行工具强制同步状态
麒麟OS自带的kylin-power-manager工具可主动探测当前电源状态并立即应用对应策略,适用于udev或TLP未及时响应的边缘场景,支持周期性轮询触发。
1、查询当前电源状态:kylin-power-manager --get-power-source
2、手动触发AC策略应用:kylin-power-manager --apply-ac-policy
3、手动触发BAT策略应用:kylin-power-manager --apply-bat-policy
4、设置每30秒自动检测并同步:sudo nano /etc/cron.d/kylin-power-sync,添加行 */1 * * * * root /usr/bin/kylin-power-manager --auto-apply > /dev/null 2>&1


















