AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 34452
Accepted
ændrük
æ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 13 个回答
  • 234298 Views

13 个回答

  • Voted
  1. 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 特定的,要么只针对少数选定的供应商。

    • 102
  2. 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 软件包在官方存储库中可用。

    • 41
  3. 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 中也同样有效。

    • 19
  4. 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 上重新启动并更改省电配置。

    • 13
  5. Phi Quang Phuoc
    2020-10-31T22:29:23+08:002020-10-31T22:29:23+08:00
    1. 安装 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
      
    2. 打开 TLP 的配置文件
      sudo gedit /etc/tlp.conf
      
    3. 查找有关电池设置的行,删除前导 # 以进行注释,并可能插入您想要的值
      START_CHARGE_THRESH_BAT0=75
      STOP_CHARGE_THRESH_BAT0=80
      
    4. 重启tlp
      sudo tlp start
      
    5. 检查配置状态
      sudo tlp-stat -b
      
    • 12
  6. AjayC
    2021-11-03T19:27:34+08:002021-11-03T19:27:34+08:00

    我有一台华硕笔记本电脑,我从互联网上找到的方法如下。这种方法可能已经是上述某些应用程序的一部分,但将其放在这里以供参考。

    1. 创建一个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
      
    2. 将文件移动到此位置/etc/systemd/system
    3. 运行以下命令。
      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 年了,没有任何问题。

    • 6
  7. Lewis Chung
    2011-04-11T17:59:02+08:002011-04-11T17:59:02+08:00

    您是否检查过您的笔记本电脑上是否有针对此的 BIOS 设置?我的笔记本电脑有一个 Windows 应用程序以及 BIOS 中的“电池寿命延长器”设置,以实现这一确切功能。

    • 4
  8. 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
    

    分别。

    • 3
  9. 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
    
    • 3
  10. 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 设计,则性能会明显下降。

    • 2

相关问题

  • 在显卡之间切换

  • 修复台式机和笔记本电脑 Ubuntu 10.04 机器中的笔记本电脑硬盘驱动器加载周期/kerchunking [关闭]

  • Thinkpad T60 闪屏

  • 如何在默认设置不起作用的笔记本电脑上使休眠/睡眠工作?

  • 如何解决联想笔记本电脑上恢复/电源问题时禁用的蓝牙?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve