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


13

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

我无法调整电池开始充电和停止充电的阈值。我观察到其当前的开始充电阈值约为40%,而停止充电阈值约为60%。我忘记了是否是我,以及我用来控制电池的哪个程序停止以60%充电并以40%开始充电。

我遵循了我以前的帖子/ubuntu/58789/how-to-check-charged-percentage-of-battery-and-to-ad-adjust-its-thresholds,但找不到/sys/devices/platform/smapi。我也有/proc/acpi/battery/BAT0/,但我只有三个文件 alarminfostate

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


modprobe tp_smapi以root身份尝试,然后查看下面的文件/sys/devices/platform/smapi是否存在。
雷南

@Renan:找不到模块FATAL: Module tp_smapi not found.
蒂姆(Tim)

1
按照那里的说明安装tp_smapi:thinkwiki.org/wiki/…,然后重试。
雷南

@Renan:tp_smapi仅适用于联想笔记本电脑吗?不同品牌笔记本电脑的电池充电管理模块是否不同?
2012年

某些Lenovo笔记本电脑具有tp_smapi提供的特定功能。我不了解其他品牌,但它们可能具有类似的工具(例如,我有一台Dell笔记本电脑,并且看到一个dell_laptop and dell_wmi模块;我从没有探索过以查看其功能)
Renan 2012年

Answers:


4

您需要安装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上有效。


对于即使使用sudo特权也被拒绝的任何人,请尝试 echo 60 | sudo tee /sys/devices/platform/smapi/BAT0/stop_charge_thresh
安德烈·凯波夫

8

较新的Lenovo ThinkPads(例如我的E540)与tp_smapi-dkms不兼容。幸运的是,我发现TLP实用程序可以使用两个不同的模块之一-tp_smapi或thinkpad_acpi DKMS模块 -将阈值传递给电池。

如今,可以通过标准Ubuntu或Debian存储库获得TLP。(尽管您可以从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。以我的经验,系统重启后电池电量阈值设置仍然存在。


这仅适用于ThinkPads,其他型号呢?
Akronix

@Akronix我相信TLP可以安装在几种不同类型的笔记本电脑上,并且取决于硬件,固件和体系结构,它依赖于不同的库。我直到最近才更加了解不同的库,因为相对较新的Lenovo使用TLP的方式与旧版ThinkPad略有不同。
Tommy Trussell,

但是,它不适用于我的G系列联想
Akronix,

@Akronix我必须看一下...我的ThinkPad是E540。通过遵循support.lenovo.com上的菜单, 我确定我的机器被称为“ Edge Series Thinkpad”。在使几乎所有硬件都按我的要求工作之前,我不得不浏览许多站点(例如,我放弃了指纹传感器)。
汤米·特鲁塞尔

1
@Akronix是的,我从未在我的计算机上启动过Windows。我可能仍然有磁盘,但是我试图保持“纯”状态。不幸的是,即使我购买了Lenovo,Lenovo显然也已悄然放弃了对Linux的支持,因为它已通过Ubuntu和Red Hat的“认证”。
汤米·特鲁塞尔

1

在我的笔记本电脑(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 [%]

为什么是40 60?充电真的会停止在60%吗?为什么在那里BAT0/status = Unknown-似乎很奇怪。
hrvoj3e

@ hrvoj3e我只是选择40 60作为与daisy答案一致的示例,但您可能希望以60%停止充电的原因是它可以延长电池寿命:superuser.com/questions/502328/… “未知”状态既不充电也不放电。我将其放电至49.8%,然后重新插入充电器,由于它仍在startThreshold之上,因此无法开始充电。
takhisis

谢谢(你的)信息。我的Yoga S740无法使用acpi电池控制,但是由于我在终端上花费了大量时间,因此我在外壳程序提示中设置了通知程序。然后,当我看到它高于/低于阈值时,我手动连接/断开了充电器。
hrvoj3e
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.