使用 TLP 改善 Linux 中的电源使用情况/电池寿命

使用 TLP 改善 Linux 中的电源使用情况/电池寿命

我的华硕 X550DP 笔记本电脑上安装了最新的 Ubuntu 14.04。我的问题是电池一直在放电。当我插入交流适配器时,它会将电池充电到 96% 左右并停止充电,但电源管理工具显示我的电池正在使用中并且正在放电。问题是什么?

编辑(我的交流电已插入)

AC 型材 AC适配器

电池概况 笔记本电池

答案1

使用 TLP 改善 Linux 中的电源使用情况/电池寿命

概述

使用它来提高电池性能并保持温度。以下是如何安装和配置 TLP:

sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw smartmontools ethtool

联想ThinkPad笔记本

sudo apt-get install tp-smapi-dkms acpi-call-tools tlp tlp-rdw smartmontools ethtool

- **tlp-rdw** – Radio Device Wizard - Need to enable/disable & Power saving (Wifi / Bluetooth )
- **smartmontools** - needed by tlp-stat to display disk drive S.M.A.R.T. data
- **ethtool** - needed to disable wake on lan
- **tp-smapi-dkms** ThinkPad only, tp-smapi is needed for battery charge thresholds and ThinkPad specific status output of tlp-stat
- **acpi-call-tools** ThinkPad only, acpi-call is needed for battery charge thresholds on Sandy Bridge and newer models

配置

删除默认的 Ubuntu CPU 频率配置

 sudo update-rc.d -f ondemand remove 

TLP 开发人员

(这不是 TLP 的一般先决条件,但只需要如果用户决定更改默认调控器。如果用户发出命令无需改变 TLP 设置同样,他最终得到了“性能”,这对电池寿命来说相当糟糕。),适用于部分3.)处理器和频率调节

TLP 的主配置文件位于 /etc/default/tlp

sudo gedit /etc/default/tlp

参数

一般提示

  1. 以_AC结尾的参数在连接电源时有效
  2. 以 _BAT 结尾的参数在使用电池供电时有效
  3. 包含空格的参数必须用双引号括起来,例如:“”
  4. 某些参数默认处于非活动状态;删除前导“#”即可激活

  1. 一般的

     TLP_ENABLE=1
    

    设置为 0 以禁用 TLP(需要重新启动),应启用它,因此保留默认值

  2. 文件系统

     DISK_IDLE_SECS_ON_AC=0
     DISK_IDLE_SECS_ON_BAT=2 
    

    DISK_IDLE_SECS_ON_BAT=2 = 您可以保留默认值(2)或者您可以将其编辑为5,Ubuntu 默认使用5,这取决于你,阅读下面的帮助

     cat /usr/lib/pm-utils/power.d/laptop-mode
    

    这控制系统尝试避免写入磁盘的积极程度。磁盘闲置的时间越长,您可以节省的电量就越多。

    这仅在电池供电时有效,并且在交流电源下会将这些值恢复为内核默认值。

    默认值 5,这将启用笔记本电脑模式并强制系统等待 5 秒每当有东西要求写入磁盘时,我们都会清除尽可能多的数据。

  3. 脏页值

      MAX_LOST_WORK_SECS_ON_AC=15
      MAX_LOST_WORK_SECS_ON_BAT=60 
    

    保留默认值

    默认为60,表示直到60%的可用系统内存被脏信息填满时,内核才会开始强制进程写出已经改变但未保存的文件信息。

  4. 处理器和频率调节

    CPU_SCALING_GOVERNOR_ON_AC=按需 CPU_SCALING_GOVERNOR_ON_BAT=节能

    删除哈希并将其编辑为保守的。

    这取决于你想要什么,你也可以使用ON_BAT=省电

    选择 CPU 频率调节器:ondemand/powersave/performance/conservative

    州长??

    州长决定应该使用什么频率。

    模块描述:

     ondemand        Dynamically switch between CPU(s) available if at 95% cpu load  
     performance     Run the cpu at max frequency  
     conservative    Dynamically switch between CPU(s) available if at 75% load  
     powersave       Run the cpu at the minimum frequency
    

    TLP 开发人员

    使用“保守”而不是“省电”——尤其是在交流电下——不应该是一个普遍的建议,而只是产生过多热量或风扇噪音的硬件的一个选择。

  5. 最小/最大频率

     #CPU_SCALING_MIN_FREQ_ON_AC=0
     #CPU_SCALING_MAX_FREQ_ON_AC=0
     #CPU_SCALING_MIN_FREQ_ON_BAT=0
     #CPU_SCALING_MAX_FREQ_ON_BAT=0
    

    设置缩放调节器可用的最小/最大频率。可能的值很大程度上取决于您的 CPU。有关可用频率,请参阅 tlp-stat 输出的“+++ 处理器”部分。

    暗示:默认情况下,参数是禁用的,删除前导#以启用它们,否则使用内核默认值。

  6. 涡轮增压

     CPU_BOOST_ON_AC=1
     CPU_BOOST_ON_BAT=0
    

    设置 CPU“turbo boost”功能:0=禁用/1=允许,需要 Intel Core i 处理器和内核 3.7 或更高版本。

    重要的: 这可能与你的发行版的调节器设置相冲突,值为 1不是激活提升,它只是允许它

  7. CPU 核心/超线程

     SCHED_POWERSAVE_ON_AC=0
     SCHED_POWERSAVE_ON_BAT=1
    

    在轻负载条件下尽量减少使用的 CPU 核心/超线程数量

  8. 核心

     NMI_WATCHDOG=0
    
       Activate kernel NMI watchdog timer (0 = disabled/save power, 1=enabled). A value of 1 is relevant for kernel debugging only.
    
  9. 硬盘高级电源管理级别

     DISK_APM_LEVEL_ON_AC="254 254"
     DISK_APM_LEVEL_ON_BAT="128 128"
    

    设置“高级电源管理级别”。可能的值范围在 1 到 255 之间:

    1 – 最大节能/最低性能

    重要的:此设置可能会导致磁盘驱动器磨损加剧,因为读写头会过度卸载(从咔嗒声中可以识别)

    128 – 节能与磨损之间的折衷(电池上的 TLP 标准设置)
    192 – 防止某些 HDD 过度卸载磁头
    254 – 最小节能/最大性能(交流电上的 TLP 标准设置)
    255 – 禁用 APM(某些磁盘型号不支持)

多个磁盘的不同值以空格分隔。

  1. 磁盘 I/O 调度程序

     #DISK_IOSCHED="cfq cfq"
    

    为磁盘设备选择 io 调度程序:noop/deadline/cfq(默认值:cfq)用空格分隔多个设备的值。

    无操作通常是内存支持的块设备(例如 ramdisk)和其他非旋转介质(闪存)的最佳选择,因为尝试重新安排 I/O 会浪费资源

    最后期限是一个轻量级的调度程序,它试图对延迟设置一个硬性限制

    韓國尝试维护系统范围内 I/O 带宽的公平性

  2. SATA 主动链路电源管理(阿尔及利亚航空发动机):

    min_power/medium_power/max_performance
    
    SATA_LINKPWR_ON_AC=max_performance
    SATA_LINKPWR_ON_BAT=min_power
    

    阿尔普 积极链路电源管理 (ALPM) 是一种机制,其中 SATA AHCI 控制器可以在零 I/O 活动期间将连接到磁盘的 SATA 链路置于非常低的功率模式,并在需要完成工作时置于活动电源状态。测试表明,这可以在典型系统上节省大约 0.5-1.5 瓦的功率。(有关更多信息,请查看“ 资料来源和额外帮助 ”

  3. PCI Express 活动状态电源管理(PCIe ASPM):

    (默认/性能/省电)

    暗示:某些机器需要内核启动选项 pcie_aspm=force

    PCIE_ASPM_ON_AC=性能 PCIE_ASPM_ON_BAT=省电

  4. Radeon 显卡时钟速度

    (配置文件方法):低/中/高/自动/默认

    自动 = BAT 上为中等,AC 上为高;默认 = 使用硬件默认值(仅限内核 >= 2.6.35,不适用于 fglrx 驱动程序!)

    #RADEON_POWER_PROFILE_ON_AC=high
    #RADEON_POWER_PROFILE_ON_BAT=low
    
  5. WiFi省电模式

    1=禁用/5=启用

    (Linux 2.6.32 及更高版本,仅限某些适配器!)

    WIFI_PWR_ON_AC=1
    WIFI_PWR_ON_BAT=5
    
  6. 禁用局域网唤醒

    Y = 是 , N = 否

    WOL_DISABLE=Y
    
  7. Intel HDA 音频节能

    为 Intel HDA、AC97 设备启用音频省电功能(超时时间以秒为单位)。值为 0 表示禁用省电功能 / >=1 表示启用省电功能。

    SOUND_POWER_SAVE=1
    

    禁用控制器 (仅限 HDA): Y/N

    SOUND_POWER_SAVE_CONTROLLER=Y
    
  8. 关闭 UltraBay 中的光驱>>(仅限 ThinkPad)

    设置为 1 可在使用电池供电时关闭 UltraBay 中的光驱(仅限 ThinkPad)。值为 0 则禁用此功能(默认)。可以通过释放(并重新插入)弹出杆或按下较新型号上的光盘弹出按钮来重新启动驱动器。笔记:UltraBay 硬盘永不关闭。

    BAY_POWEROFF_ON_BAT=1
    

    光驱设备关闭(默认sr0)

    BAY_DEVICE="sr0"
    
  9. pci(e) 总线设备的运行时电源管理

    RUNTIME_PM_ON_AC=on
    RUNTIME_PM_ON_BAT=auto
    

    当前时间 PM全部pci(e) 总线设备

    RUNTIME_PM_ALL=1
    

    运行时 PM全部pci(e) 总线设备:0=禁用/1=启用,警告:实验选项,可能导致系统不稳定

    有时候,当我将它插入 USB 3 端口时,我的 USB 鼠标适配器无法工作,而当我将它插入 USB 2 端口时,它就能正常工作,而且我的所有 USB 3 设备都能正常工作,没有问题。

  10. USB 自动暂停

    设置为 0 以禁用 / 1 以启用 USB 自动暂停功能

     USB_AUTOSUSPEND=1
    
  11. 系统启动和关闭

    RESTORE_DEVICE_STATE_ON_STARTUP=0
    
    Restores radio device state (builtin bluetooth, wifi, wwan) from previous shutdown on system startup:
    

    0 – 禁用,1 – 启用

     DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan" 
    

    在系统启动时禁用内置无线电设备:

    bluetooth
    wifi – Wireless LAN
    wwan – Wireless Wide Area Network (UMTS)
    

    多个设备之间以空格分隔。

    我有一个错误蓝牙设备在启动时未被禁用,因此如果你遇到此问题,只需执行以下配置

     sudo nano /etc/rc.local 
    

    并在 exit 0 之前添加以下行

     rfkill block bluetooth
    

保存并退出并重启

使用 TLP

安装后,TLP 将在系统启动时自动激活。

要立即启动而不重新启动或应用更改的设置,请使用:

  sudo tlp start

使用 tlp-stat 终端命令检查 TLP 是否正常工作

 sudo tlp-stat

检查系统温度

 sudo tlp-stat -t

仅显示电池信息:

 sudo tlp-stat -b
 sudo tlp-stat --battery 

仅显示配置:

tlp-stat -c
tlp-stat --config

仅显示无线电设备开关状态:

tlp-stat -r
tlp-stat --rfkill

仅显示温度和风扇速度:

tlp-stat -t 

应用电池设置(忽略实际电源):

sudo tlp bat

应用 AC 设置(忽略实际电源):

sudo tlp ac

您可以检查您正在使用哪个 I/O。

 sudo tlp-stat  # Check the section +++ Storage Devices

追踪模式

为了更仔细地检查 TLP 中的疑似问题,请在 /etc/default/tlp 中激活跟踪模式:

 TLP_DEBUG="lock nm path pm rf run sysfs udev usb" 

在 /etc/default/tlp 末尾添加上述行,可以随时使用以下命令读取累积的跟踪数据

 tlp-stat -T 

或者

 grep "tlp" /var/log/debug 

如果缺少跟踪输出,则必须修改 rsyslogd 配置。创建/etc/rsyslog.d/90-debug.conf包含以下内容的文件

 *.=debug;\
 auth,authpriv.none;\
 news.none;mail.none -/var/log/debug

并重新启动守护进程

 sudo /etc/init.d/rsyslog restart 

资料来源和其他帮助

可选调整

使用以下方法调整 CPU 频率indicator-cpufreq

安装

indicator-cpufreq将帮助您随时更改 CPU 频率:

 sudo apt-get install indicator-cpufreq 

短跑> 搜索启动> 编辑indicator-cpufreq添加-f或复制粘贴以下命令:

 indicator-cpufreq -f 

截屏

截屏

截屏

通过该指示器,你将能够监控当前的 CPU 频率并可以更改 CPU 频率

更改 CPU 频率

点击指标

截屏

省电调整适用于英特尔显卡

配置

 sudo nano /etc/default/grub

改变:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 

到:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.lvds_downclock=1 drm.vblankoffdelay=1"

并运行:

 sudo update-grub

重新启动以应用更改。您不需要其他调整,因为它们已默认添加。

附加建议

定期对电池放电

每周至少对电池放电两次。

我一直在 Windows 中使用戴尔实用程序,它显示我的电池健康度为 94%。之前我只有 76%,因为我没有放电。现在我每周放电两次,现在电量为 94%,电池续航时间接近 5 小时。

@Syzygy

电池放电电池放电前请阅读

更新

VA-API(英特尔/AMD GPU 硬件加速)

概述

我已经测试了 VA-API 硬件加速Ubuntu 13.04并且它可以节省大约 2 到 4 瓦的电池电量并在播放电影时节省 CPU 使用率,我会推荐它,因为它没有缺点。

关于 VA-API

VA-API(视频加速 API)的主要目的是在各种入口点(VLD、IDCT、运动补偿等)实现硬件加速视频解码/编码,以适应当今流行的编码标准(MPEG-2、MPEG-4 ASP/H.263、MPEG-4 AVC/H.264 和 VC-1/VMW3)。曾考虑扩展 XvMC,但由于其最初设计仅针对 MPEG-2 MotionComp,因此从头设计一个可以充分发挥当今 GPU 的视频解码能力的接口更有意义。

帮助完整链接

在 Ubuntu 中安装 Intel / AMD VA-API 驱动程序

###for Intel GPU(适用于 Intel HD Graphics 以及 G45 及更高版本):

 sudo apt-get install i965-va-driver libva-intel-vaapi-driver vainfo

###for AMD Radeon GPU(您还需要专有驱动程序!):

 sudo apt-get install xvba-va-driver vainfo

在 Ubuntu 中安装支持 VA-API 的 MPlayer

默认情况下,官方 Ubuntu 存储库中提供的 MPlayer 版本不支持 VA-API,但您可以使用提供带有 VA-API 支持的自定义 MPlayer 版本的 PPA。

 sudo add-apt-repository ppa:sander-vangrieken/vaapi
 sudo apt-get update
 sudo apt-get install mplayer-vaapi

现在你需要安装smplayer 或 vlc

 sudo add-apt-repository ppa:rvm/smplayer
 sudo apt-get update
 sudo apt-get install smplayer

或者

 sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

配置

韓國電腦韓軟體

在里面选项选项卡> 首选项,在视频选项卡 > 常规视频 > 输出驱动程序上,将视频输出驱动程序设置为“vaapi”:

截屏

甚高频液晶

位于“工具”>“首选项”>“输入和编解码器”>“启用”中使用 GPU 加速解码

截屏

有用的网址

更新

英特尔显卡的 PowerSavingTweaks

 sudo nano /etc/default/grub

改变:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 

到:

 GRUB_CMDLINE_LINUX_DEFAULT=""quiet splash pcie_aspm=force i915.lvds_downclock=1 drm.vblankoffdelay=1  i915.semaphores=1"

并运行:

 sudo update-grub

增加了 2 个新选项

1 = pcie_aspm=force,2 = i915.信号量=1

测试结果显示,它节省了大约 0.75 到 1 瓦的电池电量

总结:平均 9.40 瓦

概括:

平均 8.56 瓦

我会尝试更新更多的测试结果,本次更新仍在beta过程,我已经测试过了仅两次, 请分享你的结果还。

有用的网址

电池寿命增加 3 倍

如果你谷歌一下i915.信号量=1&i915.semaphores=1 节省电池你会发现非常好的链接

答案2

你还有问题吗?你可以尝试重新校准电池。只需按照所述步骤操作即可这里在“如何手动校准电池”段落下。该过程本身与 Ubuntu 的工作方式相同。

答案3

不准确的测量仪会导致电池容量值错误。电池可能会报告其仍有 10% 的容量,而实际上其容量要低得多,这会导致计算机意外关机。进行完全放电(100% 至至少 3%)的最适当方法包括以下步骤:

将电池充满电至最大容量 (100%);让电池“休息” 2 小时或更长时间,以便从充电过程中冷却下来。在此期间,您可以正常使用电脑;拔下电源线,并将电脑设置为在 5% 时自动休眠。如果您无法选择 5%,则应使用允许的最小值,但绝不能低于 5%;

让电脑不停地放电,直到电脑自动休眠。您可以在此时间内正常使用电脑;当电脑完全关机时,让其处于休眠状态 5 小时或更长时间;然后将电脑插入交流电源不停地进行完全充电,直到其达到最大容量 (100%)。您可以在此时间内正常使用电脑。

校准过程结束后,报告的磨损程度通常比之前更高。这是很自然的,因为它现在报告的是电池保持充电所需的真实电流容量。锂离子电池的放电次数有限(通常为 200 到 300 次),随着时间的推移,它们保持的容量会减少。

许多人倾向于认为“如果校准会导致更高的磨损程度,那么这是一件坏事”。这是错误的,因为正如所说,校准的目的是让您的电池报告其可以容纳的真实容量,并且是为了避免意外情况,例如,在演示过程中,计算机突然在电量为 30% 时关闭。
来源:电池保养

相关内容