如何调整笔记本电池的充电阈值?

如何调整笔记本电池的充电阈值?

我的笔记本电脑是Lenovo T400,操作系统是Ubuntu 12.04。

我无法调整电池开始充电和停止充电的阈值。我观察到它目前的启动充电阈值在40%左右,停止充电阈值在60%左右。我忘了是不是我,我用什么程序控制电池在60%时停止充电,在40%时开始充电。

我按照我之前的帖子https://askubuntu.com/questions/58789/how-to-check-charged-percentage-of-battery-and-to-adjust-its-thresholds,但我没有找到/sys/devices/platform/smapi。我也有/proc/acpi/battery/BAT0/,但我只有三个文件 alarminfo并且state

我想调整阈值。所以我想知道该怎么做?

答案1

较新的 Lenovo ThinkPad(例如我的 E540)与 tp_smapi-dkms 不兼容。幸运的是我发现TLP实用程序可以使用不同的模块——例如 tp_smapi 或 thinkpad_acpi DKMS 模块-- 将阈值传达给电池。其他 Lenovo 笔记本电脑可能使用 acpi_call 内核模块与电池通信。

笔记:当内核 5.17 可用时,它将有一个名为 natacpi 的新内核模块,它消除了对 tp_smapi 的需要。此外,最新版本的 TLP 支持一些其他制造商硬件中的收费阈值

如今,TLP 可通过标准 Ubuntu 或 Debian 存储库获得。 (尽管您可能会受益于使用可用的最新版本TLP网站安装软件包。)

安装 TLP 后,使用配置文件 /etc/default/tlp 中的两行设置电池充电阈值

START_CHARGE_THRESH_BAT0=65
STOP_CHARGE_THRESH_BAT0=80

此示例告诉 TLP 将电池阈值设置为在 65% 时开始充电并在 80% 时停止充电。我发现即使在启动到未安装 TLP 的不同操作系统时,阈值仍然正确存在。 (尽管我认为如果您启动到 Windows 或其他安装了电源管理工具的操作系统,该操作系统可能会覆盖之前设置的充电阈值。)

要暂时使电池充满电,请发出以下终端命令:

 $ sudo tlp fullcharge

然后电池将充电至其最大容量,然后恢复到之前的阈值。

笔记:如果您的笔记本电脑不是“ThinkPad”,TLP 可能无法设置您的电池电量。不过最近的版本增加了支持其他品牌和型号

如果您的供应商为 Windows 提供电源管理实用程序,您可能可以使用某种形式的 Windows 启动来设置电池充电级别,然后重新启动到 Linux。根据我的经验,电池充电阈值设置在系统重新启动后仍然存在。

答案2

你需要安装tp_smapi-dkms,只需执行

apt-get install tp_smapi-dkms

完成后,用于lsmod | grep tp_smapi检查模块是否已加载,调整充电阈值,执行以下操作

echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 60 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh

添加这些行以/etc/rc.local在引导时运行它们。

该模块至少可以在 X220 上运行。

答案3

在我的笔记本电脑(Yoga 260)上,我必须获得 acpi-call-dkms,它提供了 acpi_call 内核模块:

sudo apt install tlp acpi-call-dkms
sudo tlp setcharge 40 60 #set the start and stop thresholds to 40% and 60%

输出sudo tlp stat -b

--- TLP 1.1 --------------------------------------------

+++ ThinkPad Battery Features
tp-smapi   = inactive (unsupported hardware)
tpacpi-bat = active

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SMP
/sys/class/power_supply/BAT0/model_name                     = 00HW027
/sys/class/power_supply/BAT0/cycle_count                    = (not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  44000 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  37970 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  18910 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Unknown (threshold effective)

tpacpi-bat.BAT0.startThreshold                              =     40 [%]
tpacpi-bat.BAT0.stopThreshold                               =     60 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0

Charge                                                      =   49.8 [%]
Capacity                                                    =   86.3 [%]

答案4

对于 LG Gram 笔记本电脑,有一个特定的内核驱动程序,该驱动程序似乎是开箱即用的,至少在 EndeavourOS 中是这样,有关 LG Gram 的特定功能,请参阅内核文档

特别是,它还提供了“电池保养限制”。引用该页面:

写入80/100设置/sys/devices/platform/lg-laptop/battery_care_limit电池充电的最大容量。限制充电可减少电池容量随时间的损失。

100该值在内核启动时重置。

80因此,例如,您可以使用以下命令手动将限制设置为:

echo '80' | sudo tee /sys/devices/platform/lg-laptop/battery_care_limit

我在我的 LG Gram 16 上进行了测试,它似乎工作得很好:当插入交流电并充电 85% 时,KDE 表示它正在充电,但百分比保持在 85%(“充满时间”被阻止为 1: 41)。

正如上面引用中所述,该值将在内核启动时重置,因此您可能需要再次更改该值。

我想对于更自动化的解决方案,tlp 提供支持也为此。

相关内容