前言与背景

很多朋友会拿淘汰的旧笔记本(例如联想 IdeaPad Y500)安装 DebianfnOS(飞牛私有云) 当作低功耗家用 NAS。

笔记本长期 7x24 小时插电运行,如果电池常年处于 100% 满电高压状态,极易加速电池老化甚至发生电池鼓包。联想硬件原生支持“养生模式(Conservation Mode)”,即在硬件层面(EC 芯片)将充电电量限制在 55%~60% 左右。

在 Linux / fnOS 系统中,我们可以直接通过内核提供的 ideapad_acpi 接口开启该功能并持久化。


极速配置步骤

1. 写入持久化配置文件(推荐)

在终端中执行以下命令,利用 Linux 系统的 tmpfiles.d 机制实现开机自动写入配置:

echo 'w /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode - - - - 1' | sudo tee /etc/tmpfiles.d/ideapad-battery.conf

2. 立即生效配置

无需重启系统,运行以下命令即可立即应用:

sudo systemd-tmpfiles --create

3. 验证是否开启成功

检查当前模式状态(1 表示开启限制 60%,0 表示充满 100%):

cat /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode

若终端返回 1,说明已成功激活硬件养生模式!


核心常见疑问

Q1:为什么开启后电量仍然显示 100%?

  • 工作机制:联想的“养生模式”逻辑是**“禁止充入”,而不是“主动放电”**。
  • 如果设置前电量已经是 100%,电脑会切断充电电路改为完全由电源适配器供电,并不会主动放电降到 60%。
  • 正确测试方法
    1. 拔掉电源,依靠电池运行消耗至 50% 左右
    2. 重新插上电源;
    3. 观察电池充到 55%~60% 是否自动停止充电(状态变为 Not charging)。

常用排查与管理命令备忘

查看系统是否已配置开机自启

sudo grep -rn "conservation_mode" /etc/
  • 如果有输出 /etc/tmpfiles.d/ideapad-battery.conf:...,说明自启存在;
  • 如果返回为空,说明未配置开机自启,需重新执行上方配置命令。

查看当前电池充电与电量状态

# 查看实时电量百分比
cat /sys/class/power_supply/BAT*/capacity

# 查看充放电状态 (Charging / Not charging / Full)
cat /sys/class/power_supply/BAT*/status

恢复充至 100%(临时外出需要满电时)

如果需要带笔记本外出需要充满电,可以在终端临时关闭养生模式:

echo 0 | sudo tee /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode

(下次系统重启后依然会自动恢复为 60% 限制)

验证电源适配器是否在正常供电:

你可以运行这行命令确认电源适配器是否已被识别并正在为主板供电:

cat /sys/class/power_supply/AC*/online

(如果找不到路径也可以直接运行 cat /sys/class/power_supply/*/online)

  • 如果输出 1:说明电源适配器正在正常给电脑供电,主板工作一切正常。
  • 接下来你什么都不用做,继续保持插电状态,电量会随着自然消耗(或电脑在负载时少量借电)非常缓慢地降到 60% 左右,之后就会稳稳停在 60% 不再下降,也不会再充到 100%。

补充建议:笔记本做 NAS 必改项(合盖不休眠)

笔记本作为 NAS 往往需要合上屏幕放进机柜或角落,Debian / fnOS 默认合盖可能会触发系统休眠,需做如下修改:

  1. 编辑系统登录管理器配置:
    sudo nano /etc/systemd/logind.conf
    
  2. 找到或新增以下配置项:
    HandleLidSwitch=ignore
    HandleLidSwitchDocked=ignore
    
  3. 保存退出后重启服务生效:
    sudo systemctl restart systemd-logind