ændrük Asked: 2011-04-11 17:51:19 +0800 CST2011-04-11 17:51:19 +0800 CST 2011-04-11 17:51:19 +0800 CST 如何将电池充电限制为 80% 容量? 772 我刚刚了解到一些联想笔记本电脑包含一个实用程序,可以将电池充电容量限制在 0-80% 以内,以减缓电池寿命的衰减: 我怎样才能在 Ubuntu 中做到这一点? laptop 13 个回答 Voted Best Answer aquaherd 2011-10-27T13:34:42+08:002011-10-27T13:34:42+08:00 很遗憾,收费阈值是特定于固件和供应商的。 幸运的是,联想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 特定的,要么只针对少数选定的供应商。 liori 2016-07-15T14:32:27+08:002016-07-15T14:32:27+08:00 现在有一个更好的应用程序可用于 Ubuntu(和其他发行版): TLP——Linux 高级电源管理 TLP 为您带来 Linux 高级电源管理的好处,而无需了解每一个技术细节。TLP 带有已针对电池寿命优化的默认配置,因此您可能只需安装并忘记它。尽管如此,TLP 是高度可定制的,可以满足您的特定要求。 它控制的参数之一是维持电池充电限制。正如@tanius 在评论中指出的那样(请给他们点赞!),虽然 TLP 过去只能在 Thinkpad 上工作,但最新版本支持来自多个供应商的设备,并且考虑到项目的性质——如果其他设备的适当驱动程序将变得可用,很可能这些也将被集成到这个项目中。因此,如果您在几年后阅读此评论,请查看文档,也许您的设备现在已受支持。 Ubuntu 软件包在官方存储库中可用。 Fred Schoen 2014-12-18T08:17:19+08:002014-12-18T08:17:19+08:00 接受的答案不适用于我的新联想 T440。显然固件发生了变化。在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 中也同样有效。 eosphere 2014-06-22T04:31:31+08:002014-06-22T04:31:31+08:00 在运行 Windows 8.1 的 Toshiba R830 上,我安装了 Toshiba Power Saver 应用程序以将电池电量限制为 80% 当我在 Linux(Ubuntu、Mint 等)上启动时,最大电量仍然限制为 80%。 因此,东芝省电似乎将其配置存储到 BIOS 中。 唯一的缺点是,如果我想带着充满电的电池旅行,我必须在 Windows 上重新启动并更改省电配置。 Phi Quang Phuoc 2020-10-31T22:29:23+08:002020-10-31T22:29:23+08:00 安装 TLP: sudo add-apt-repository ppa:linrunner/tlp sudo apt update sudo apt install tlp # Check what package needed for battery: sudo tlp-stat -b # If acpi_call is recommended sudo apt install acpi-call-dkms # If smapi is recommended sudo apt install tp-smapi-dkms 打开 TLP 的配置文件 sudo gedit /etc/tlp.conf 查找有关电池设置的行,删除前导 # 以进行注释,并可能插入您想要的值 START_CHARGE_THRESH_BAT0=75 STOP_CHARGE_THRESH_BAT0=80 重启tlp sudo tlp start 检查配置状态 sudo tlp-stat -b AjayC 2021-11-03T19:27:34+08:002021-11-03T19:27:34+08:00 我有一台华硕笔记本电脑,我从互联网上找到的方法如下。这种方法可能已经是上述某些应用程序的一部分,但将其放在这里以供参考。 创建一个battery_charge_threshold.service像这样命名的服务文件。 [Unit] Description=Set the battery charge threshold After=multi-user.target [Service] Type=oneshot ExecStart=/bin/bash -c 'echo 80 > /sys/class/power_supply/BAT0/charge_control_end_threshold' [Install] WantedBy=multi-user.target 将文件移动到此位置/etc/systemd/system 运行以下命令。 sudo chmod 644 /etc/systemd/system/battery-charge-threshold.service sudo systemctl daemon-reload sudo systemctl enable battery-charge-threshold.service 执行此操作后,80% 的收费阈值(根据服务文件)将在重新启动之间保持不变。如果电流水平高于 80%,它也会停止对电池充电。希望这可以帮助。我已经使用它将近 1.5 年了,没有任何问题。 Lewis Chung 2011-04-11T17:59:02+08:002011-04-11T17:59:02+08:00 您是否检查过您的笔记本电脑上是否有针对此的 BIOS 设置?我的笔记本电脑有一个 Windows 应用程序以及 BIOS 中的“电池寿命延长器”设置,以实现这一确切功能。 Tshaka Eric Lekholoane 2021-01-29T05:04:36+08:002021-01-29T05:04:36+08:00 我编写了一个命令行应用程序来执行此操作。 最简单的入门方法是从发布页面下载应用程序并运行 $ ./bat --help 从它所在目录中的终端,该目录应显示帮助文档。 如果有错误,可能与权限有关。以下命令可能会解决问题。 chmod +x ./bat 基本上,运行 $ ./bat --threshold 将打印出当前阈值。 要设置一个新的阈值,比如 60%,运行 ./bat --threshold 60 要在重新启动之间保持当前阈值,请运行 sudo ./bat --persist 注意:持久化在底层使用systemd,但这与大多数 Linux 发行版捆绑在一起,包括 Ubuntu。 提示:将应用程序放在类似的目录/usr/local/bin/中$PATH将使您能够从任何地方运行它,而不仅仅是在应用程序所在的目录中。然后上面的命令变成, bat --help bat --threshold 60 bat --persist 分别。 Robie Basak 2021-07-13T08:40:15+08:002021-07-13T08:40:15+08:00 在我的戴尔 XPS 上,我smbios-utils使用sudo apt install smbios-utils. 这个包提供了一个名为smbios-battery-ctl. 从 Ubuntu 20.04 开始,基于电池电量的充电控制似乎已经可用。完整的详细信息在手册页中,但是对于基本的 80% 设置,我认为这会起作用: sudo smbios-battery-ctl --set-custom-charge-interval 75 80 sudo smbios-battery-ctl --set-charging-mode=custom 这将在电池电量低于 75% 时开始充电,并在达到 80% 时停止充电。 要将设置改回: sudo smbios-battery-ctl --set-charging-mode=adaptive ceremcem 2020-09-24T14:35:08+08:002020-09-24T14:35:08+08:00 我刚刚为戴尔笔记本电脑发现了一个硬件黑客: 戴尔充电器使用 3 个引脚,一个用于 (+),一个用于 (-),一个用于戴尔充电器识别通信(1-Wire 协议)。这条通讯线通常是连接器中心的那根,针状的针。 如果您切断此通信线路,笔记本电脑将继续使用交流电运行,但电池将不再充电。 找到通讯线,切断它,在中间放置一个开关。尽可能多地为笔记本电脑的电池充电,然后关闭该开关。您的笔记本电脑将使用交流电,但您的电池将保持在您留下的电量。 有关各种场景的建议收费水平,请参阅此答案:https ://superuser.com/a/664583/187576 编辑 显然,这种方法的一个缺点是,如果找不到已识别的充电器,笔记本电脑的性能会降低。 对于正常使用而言,这可能不是问题,但是,如果您需要 CPU 功率来进行类似 3D 设计,则性能会明显下降。
很遗憾,收费阈值是特定于固件和供应商的。
幸运的是,联想ThinkPad用户获得了ThinkWiki上概述的解决方案。
它基本上说您必须安装和加载
tp_smapi
内核模块:并将所需的计费阈值写入以下虚拟文件
/sys/devices/platform/smapi
:到80%就停止充电,低于40%才开始充电。
东芝和其他公司可能有一个类似的内核模块,可以将固件功能暴露给
/sys
或/proc
空间,但专利问题的可能性很小。出于同样的原因,可以处理此问题的应用程序要么是 Thinkpad 特定的,要么只针对少数选定的供应商。现在有一个更好的应用程序可用于 Ubuntu(和其他发行版):
它控制的参数之一是维持电池充电限制。正如@tanius 在评论中指出的那样(请给他们点赞!),虽然 TLP 过去只能在 Thinkpad 上工作,但最新版本支持来自多个供应商的设备,并且考虑到项目的性质——如果其他设备的适当驱动程序将变得可用,很可能这些也将被集成到这个项目中。因此,如果您在几年后阅读此评论,请查看文档,也许您的设备现在已受支持。
Ubuntu 软件包在官方存储库中可用。
接受的答案不适用于我的新联想 T440。显然固件发生了变化。在http://www.thinkwiki.org/wiki/Tpacpi-bat之后,我做到了
作为参考,我在 debian 测试中这样做了,但我确信它在 ubuntu 中也同样有效。
在运行 Windows 8.1 的 Toshiba R830 上,我安装了 Toshiba Power Saver 应用程序以将电池电量限制为 80%
当我在 Linux(Ubuntu、Mint 等)上启动时,最大电量仍然限制为 80%。
因此,东芝省电似乎将其配置存储到 BIOS 中。
唯一的缺点是,如果我想带着充满电的电池旅行,我必须在 Windows 上重新启动并更改省电配置。
我有一台华硕笔记本电脑,我从互联网上找到的方法如下。这种方法可能已经是上述某些应用程序的一部分,但将其放在这里以供参考。
battery_charge_threshold.service
像这样命名的服务文件。/etc/systemd/system
执行此操作后,80% 的收费阈值(根据服务文件)将在重新启动之间保持不变。如果电流水平高于 80%,它也会停止对电池充电。希望这可以帮助。我已经使用它将近 1.5 年了,没有任何问题。
您是否检查过您的笔记本电脑上是否有针对此的 BIOS 设置?我的笔记本电脑有一个 Windows 应用程序以及 BIOS 中的“电池寿命延长器”设置,以实现这一确切功能。
我编写了一个命令行应用程序来执行此操作。
最简单的入门方法是从发布页面下载应用程序并运行
从它所在目录中的终端,该目录应显示帮助文档。
如果有错误,可能与权限有关。以下命令可能会解决问题。
基本上,运行
将打印出当前阈值。
要设置一个新的阈值,比如 60%,运行
要在重新启动之间保持当前阈值,请运行
注意:持久化在底层使用systemd,但这与大多数 Linux 发行版捆绑在一起,包括 Ubuntu。
提示:将应用程序放在类似的目录
/usr/local/bin/
中$PATH
将使您能够从任何地方运行它,而不仅仅是在应用程序所在的目录中。然后上面的命令变成,分别。
在我的戴尔 XPS 上,我
smbios-utils
使用sudo apt install smbios-utils
. 这个包提供了一个名为smbios-battery-ctl
. 从 Ubuntu 20.04 开始,基于电池电量的充电控制似乎已经可用。完整的详细信息在手册页中,但是对于基本的 80% 设置,我认为这会起作用:这将在电池电量低于 75% 时开始充电,并在达到 80% 时停止充电。
要将设置改回:
我刚刚为戴尔笔记本电脑发现了一个硬件黑客:
戴尔充电器使用 3 个引脚,一个用于 (+),一个用于 (-),一个用于戴尔充电器识别通信(1-Wire 协议)。这条通讯线通常是连接器中心的那根,针状的针。
如果您切断此通信线路,笔记本电脑将继续使用交流电运行,但电池将不再充电。
找到通讯线,切断它,在中间放置一个开关。尽可能多地为笔记本电脑的电池充电,然后关闭该开关。您的笔记本电脑将使用交流电,但您的电池将保持在您留下的电量。
有关各种场景的建议收费水平,请参阅此答案:https ://superuser.com/a/664583/187576
编辑
显然,这种方法的一个缺点是,如果找不到已识别的充电器,笔记本电脑的性能会降低。
对于正常使用而言,这可能不是问题,但是,如果您需要 CPU 功率来进行类似 3D 设计,则性能会明显下降。