如何将电池充电限制为80%?


87

我刚刚了解到,某些联想笔记本电脑包含一个实用程序,该实用程序可将电池充电容量限制在0-80%之内,以减慢电池寿命的衰减:

屏幕截图

如何在Ubuntu中做到这一点?


您可以确认aquaherd的答案对您有用吗?
cfi

Answers:


76

不幸的是,充电阈值是特定于固件和供应商的。

幸运地为Lenovo ThinkPad用户提供了ThinkWiki上概述的解决方案。

它基本上说您必须安装和加载tp_smapi内核模块:

sudo apt-get install tp-smapi-dkms
sudo modprobe tp_smapi

并将所需的充电阈值写入以下虚拟文件/sys/devices/platform/smapi

echo 40 | sudo tee /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 80 | sudo tee /sys/devices/platform/smapi/BAT0/stop_charge_thresh

然后,一旦达到80%,它将停止充电,仅当跌至40%以下时才开始充电。

东芝和其他公司可能具有类似的内核模块,将固件功能公开到/sys/proc空间,但专利问题的可能性很小。出于相同的原因,可以处理此问题的应用程序可能是特定于Thinkpad的应用程序,或仅针对某些选定的供应商。


1
感谢您提供此信息。这是一个好的开始-希望至少对于最初的Q问问者而言。硬件供应商应为linux驱动程序开发人员提供更多支持。遗憾的是,必须浪费大量的时间来逆向工程硬件协议。
cfi

1
我在Ubuntu中做过sudo apt-get install tp-smapi-dkms。它安装了。然后我在做echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh,它说bash: /sys/devices/platform/smapi/BAT0/start_charge_thresh: No such file or directory。为什么?
Alex Malex 2012年

4
@ændrük, alex@ubuntu:~$ sudo modprobe tp_smapi FATAL: Error inserting tp_smapi (/lib/modules/3.5.0-17-generic/updates/dkms/tp_smapi.ko): No such device。我错过了什么?如果我不回答,我将要提出一个新问题。
亚历克斯·马利克斯

1
@Mika看来T420需要 acpi-call-dkms按照linrunner.de/en/tlp/docs/…的
附加

2
它需要一台ThinkPad笔记本电脑才能通过TLP设置这些充电值。TLP也支持其他笔记本电脑(例如Dell,HP),但不支持linrunner页面上常见问题解答中所述的所有功能。有关充电阈值的配置,请参阅:linrunner.de/en/tlp/docs/…–
Luckyrings

17

接受的答案不适用于我的新Lenovo T440s。显然固件已更改。按照http://www.thinkwiki.org/wiki/Tpacpi-bat,我做了

git clone https://github.com/teleshoes/tpacpi-bat.git
cd tpacpi-bat/
./install.pl
sudo ./tpacpi-bat -s ST 1 15 # load internal battery when below 15%
sudo ./tpacpi-bat -s SP 1 95 # stop charging at 95%
sudo ./tpacpi-bat -g ST 2 # when is external battery loaded?

作为参考,我在debian测试中进行了此操作,但是我确信它也可以在ubuntu中工作。


17

Ubuntu(和其他发行版)现在有一个更好的应用程序:

TLP – Linux高级电源管理

TLP为您带来了Linux高级电源管理的好处,而无需了解每个技术细节。TLP带有针对电池寿命进行了优化的默认配置,因此您可能只是安装而忘了它。尽管如此,TLP还是高度可定制的,可以满足您的特定要求。

它控制的参数之一是维持电池充电极限。它仍然仅适用于Thinkpads,但鉴于项目的性质-如果其他设备的合适驱动程序将可用,这些驱动程序也很可能也集成到该项目中。因此,如果您几年后要阅读此评论,请查看文档,也许您的设备实际上受支持。

Ubuntu软件包可在官方存储库中获得


支持的设备列表在哪里?我找不到他们文档的一部分。万一你知不知道是否tlp被支持Thinkpad X1 carbon,以及
Kasun Siyambalapitiya

2
到目前为止,@ KasunSiyambalapitiya tlp只是用于此目的的两个工具Tp smapitpacpi-bat的前端。只要您的模型至少受其中之一支持,它就可以工作(或提交错误)。您的似乎没有在其支持的硬件页面上列出,但是快速浏览便发现后者可能有效。
liori

7

在运行Windows 8.1的Toshiba R830上,我安装了Toshiba Power Saver应用程序,以将电池电量限制为80%

当我在Linux(Ubuntu,Mint等)上启动时,最大电量仍然限制为80%。

因此,东芝节电器似乎将其配置存储在BIOS中。

唯一的缺点是,如果要使用充满电的电池旅行,则必须在Windows上重新启动并更改节电配置。


1
欢迎来askubuntu!您与Mint的搜索结果似乎与Ubuntu无关。您可以用与本网站相关的术语来重新措词吗?谢谢!
极客长老

10
Hello Elder Geek,您好,这与BIOS相关,因此可以在双启动配置下的任何操作系统上使用。此Toshiba BIOS配置无法通过BIOS菜单访问,而只能通过仅在Windows上运行的Power Saver应用程序访问。
eosphere

2
同样适用于linovo瑜伽3 11inch。
ctrl-alt-delor

2
Mint的结果显然与Ubuntu相关。
Stefan Reich

3

您是否检查过笔记本电脑上是否有BIOS设置?我的笔记本电脑在此BIOS中具有Windows应用程序以及BIOS中的“电池寿命扩展器”设置。


3
BIOS设置程序屏幕中没有此类设置。
ændrük

1

通常(几乎总是),这是Windows可以远程更改的BIOS中的选项。在Linux中远程更改它非常困难。我的建议?启动计算机时,请粉碎功能键,尤其是F1,F2,F3,F6,F8,F10和F12。其中一个(也许另一个)会将您带入BIOS菜单。它说明了启动时使用的密钥,但是通常不会保持足够长的时间。

查找电源设置(此处仅箭头键,没有鼠标)。找到面糊保护程序或面糊优化程序或类似的东西。将其更改为启用,然后保存并重新启动。这应该做。

当电池无法充电超过80%时,Linux往往会吓坏了,但这只会破坏您的预期充电时间。不用担心这里。

还需要帮助吗?评论您的问题!我有帮助吗?+1我:)

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.