dil*_*ant 6 upgrade laptop power-management pm-utils 15.04
自从从 14.10 升级到 15.04 以来,我用来为笔记本电脑设置适当的热配置文件模式的自定义脚本停止工作,我认为这是因为 pm-utils 不响应 AC/BAT 切换。
现在,如果这是系统的新预期行为,那么我现在应该把脚本放在哪里来完成这项工作(即使在交流电源上,我的笔记本电脑也需要正常运行)?
好的,在 Arch Wiki 中找到了答案。他们给出了下一个解决方案:
systemd 只有一件事不能做(从 systemd-204 开始):电源管理取决于系统是使用交流电还是电池运行。为了填补这个空白,您可以创建一个 udev 规则,在插入和拔出 AC 适配器时运行脚本:
Run Code Online (Sandbox Code Playgroud)/etc/udev/rules.d/powersave.rules SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/path/to/your/script true" SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/path/to/your/script false"
对于我的 Sony Vaio,我将其作为我的个人设置:
/etc/udev/rules.d/99-laptopac.rules
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/local/bin/sony-thermal.sh true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/local/bin/sony-thermal.sh false"
Run Code Online (Sandbox Code Playgroud)
/usr/local/bin/sony-thermal.sh
#!/bin/sh
帮助() {
猫<<EOF
0 美元:索尼笔记本电脑热配置管理
此脚本在“性能”和“静音”模式之间进行选择,具体取决于
关于笔记本电脑是使用交流电源还是电池电源运行。
EOF
}
set_sony_thermal_profile() {
[ ! -d /sys/devices/platform/sony-laptop ] && 退出 $NA
[ ! -f /sys/devices/platform/sony-laptop/thermal_control ] && 退出 $NA
案例 1 美元
表现)
printf "将 SONY 热控制设置为性能模式。"
热控制=性能;;
沉默的)
printf "将索尼热控制设置为静音模式。"
热控制=静音;;
*)
printf "将索尼热控制设置为平衡模式。"
热控制=平衡;;
esac
echo "$thermal_control" > /sys/devices/platform/sony-laptop/thermal_control && echo Done. || \
回声失败。
}
案例 1 美元
真) set_sony_thermal_profile 静音;;
假)set_sony_thermal_profile 性能;;
帮助) 帮助;;
*) 退出 $NA ;;
esac
退出 0
这可以防止我的笔记本电脑中的 CPU 持续进入“节流”状态,即使在轻负载条件下,性能和用户体验也会有所损失。
默认的 Ubuntu 电源脚本可以通过这种方式触发。
pm-utils添加包含此内容的文件
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/sbin/pm-powersave true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/sbin pm-powersave false"
Run Code Online (Sandbox Code Playgroud)
到/etc/udev/rules.d/
当您从电池切换到交流电源并切换回来时,将应用默认的 Ubuntu 省电功能。
存在启动时不触发的问题。要修复它,请添加
udevadm trigger -s power_supply
Run Code Online (Sandbox Code Playgroud)
到/etc/rc.local之前exit0。
对于 Ubuntu 16.04,另一个问题是网络管理器默认关闭电源管理。当启动界面时,它会覆盖该pm-utils设置。
这也可以通过添加文件来修复02-powersave
#!/bin/sh
[ "$1" = "wlan0" ] && [ "$2" = "up" ] && udevadm trigger -s power_supply
Run Code Online (Sandbox Code Playgroud)
到/etc/NetworkManager/dispatcher.d。
注意:您需要更换wlan0为可在 中找到的无线接口ifconfig。
| 归档时间: |
|
| 查看次数: |
4226 次 |
| 最近记录: |