华硕Ubuntu系统设置电池阈值的方法咨询
嘿,我之前帮不少华硕笔记本用户搞定过类似的电池阈值设置问题,针对你的VivoBook S14和Ubuntu 16.04,有几个可行的路子可以试试:
方案1:利用系统原生sysfs接口
很多华硕机型在Linux下已经支持通过sysfs直接设置充电阈值,你可以先检查是否有这个接口:
- 打开终端,运行以下命令查看电池相关文件:
ls /sys/class/power_supply/BAT0/ - 如果你看到
charge_control_end_threshold或者charge_stop_threshold这类文件,说明可以直接设置:# 设置充电上限为60% echo 60 | sudo tee /sys/class/power_supply/BAT0/charge_control_end_threshold - 这个设置重启后会失效,要让它永久生效,可以编辑
/etc/rc.local文件:
在sudo nano /etc/rc.localexit 0这一行之前添加:
保存退出后重启系统,设置就会自动生效了。echo 60 | tee /sys/class/power_supply/BAT0/charge_control_end_threshold
方案2:使用华硕专用工具
asus-battery-charge-limit 这个开源工具专门针对华硕笔记本开发,能帮你轻松设置充电阈值,步骤如下:
- 先安装编译依赖:
sudo apt install git build-essential - 获取该工具的源码后,进入源码目录编译安装:
cd asus-battery-charge-limit make && sudo make install - 设置充电阈值为60%:
sudo asus-battery-charge-limit set 60 - 开启开机自启,确保重启后设置依然有效:
sudo systemctl enable asus-battery-charge-limit.service
方案3:尝试
acpi-call模块(针对部分旧机型) 如果上面两个方案都不行,可以试试acpi-call模块,它能调用笔记本的ACPI方法来设置阈值:
- 安装模块:
sudo apt install acpi-call-dkms - 加载模块:
sudo modprobe acpi_call - 测试华硕常见的充电阈值设置命令(不同机型可能命令不同,你可以多尝试几个参数,比如把
0x3C换成你需要的百分比对应的十六进制值,60的十六进制就是0x3C):echo "\_SB.PCI0.LPCB.EC0.VPC0.SBMC 0x03 0x3C 0x00 0x00 0x00 0x00 0x00 0x00" | sudo tee /proc/acpi/call - 如果返回结果是
0x00,说明设置成功。同样可以把这个命令加入/etc/rc.local或者创建systemd服务实现开机自启。
额外提示
Ubuntu 16.04是比较老旧的版本了,对新硬件的支持可能有限。如果上面的方法都不奏效,建议考虑升级到Ubuntu 20.04或更高版本,新版本的内核对华硕笔记本的电池管理支持会更好,说不定原生就能识别并设置充电阈值。
内容的提问来源于stack exchange,提问作者Théo Cheynel




