我使用 TLP 进行电源管理。但我怀疑它并不能真正帮助延长装有 Ubuntu 14.04 的 Dell Inspiron 5346 的电池寿命,因此我运行了sudo tlp-stat
一次,将显示屏亮度调至最低,一次将显示屏亮度调至最高。两次我都得到了相同的电流消耗,如下所示。
/sys/class/power_supply/BAT1/current_now = 882 [mA]
所以我的问题是:TLP 真的有助于管理和延长电池寿命吗?其次,如果没有,那么我的笔记本电脑有什么真正好的替代品吗?
TLP 日志:
--- TLP 0.8 --------------------------------------------
+++ Configured Settings: /etc/default/tlp
TLP_ENABLE=1
TLP_DEFAULT_MODE=AC
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60
SCHED_POWERSAVE_ON_AC=0
SCHED_POWERSAVE_ON_BAT=1
NMI_WATCHDOG=0
ENERGY_PERF_POLICY_ON_AC=performance
ENERGY_PERF_POLICY_ON_BAT=powersave
DISK_DEVICES="sda sdb"
DISK_APM_LEVEL_ON_AC="254 254"
DISK_APM_LEVEL_ON_BAT="128 128"
SATA_LINKPWR_ON_AC=max_performance
SATA_LINKPWR_ON_BAT=min_power
PCIE_ASPM_ON_AC=performance
PCIE_ASPM_ON_BAT=powersave
RADEON_POWER_PROFILE_ON_AC=high
RADEON_POWER_PROFILE_ON_BAT=low
RADEON_DPM_STATE_ON_AC=performance
RADEON_DPM_STATE_ON_BAT=battery
RADEON_DPM_PERF_LEVEL_ON_AC=auto
RADEON_DPM_PERF_LEVEL_ON_BAT=auto
WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=5
WOL_DISABLE=Y
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=1
SOUND_POWER_SAVE_CONTROLLER=Y
BAY_POWEROFF_ON_BAT=0
BAY_DEVICE="sr0"
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto
RUNTIME_PM_ALL=1
RUNTIME_PM_DRIVER_BLACKLIST="radeon nouveau"
USB_AUTOSUSPEND=1
USB_BLACKLIST_WWAN=1
RESTORE_DEVICE_STATE_ON_STARTUP=0
+++ System Info
System = Dell Inc. A02 Inspiron 5548
BIOS = A02
Release = Ubuntu 14.04.3 LTS
Kernel = 3.16.0-53-generic #72~14.04.1-Ubuntu SMP Fri Nov 6 18:17:23 UTC 2015 x86_64
/proc/cmdline = BOOT_IMAGE=/boot/vmlinuz-3.16.0-53-generic.efi.signed root=UUID=ff176661-2ba0-4348-9143-535a788862b4 ro quiet splash vt.handoff=7
Init system = upstart
+++ System Status
TLP power save = enabled
power source = battery
+++ Processor
CPU Model = Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq = 500000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 2700000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq = 500000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq = 2700000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq = 500000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq = 2700000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq = 500000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq = 2700000 [kHz]
/sys/devices/system/cpu/intel_pstate/min_perf_pct = 18
/sys/devices/system/cpu/intel_pstate/max_perf_pct = 100
/sys/devices/system/cpu/intel_pstate/no_turbo = 0
x86_energy_perf_policy: program for your kernel not installed.
/proc/sys/kernel/nmi_watchdog = 0
+++ Undervolting
PHC kernel not available.
+++ Temperatures
CPU temp = 54 [°C]
Fan speed = (not available)
+++ File System
/proc/sys/vm/laptop_mode = 2
/proc/sys/vm/dirty_writeback_centisecs = 6000
/proc/sys/vm/dirty_expire_centisecs = 6000
/proc/sys/vm/dirty_ratio = 20
/proc/sys/vm/dirty_background_ratio = 10
/proc/sys/fs/xfs/age_buffer_centisecs = (not available)
/proc/sys/fs/xfs/xfssyncd_centisecs = (not available)
/proc/sys/fs/xfs/xfsbufd_centisecs = (not available)
+++ Storage Devices
/dev/sda:
Model = ST1000LM024 HN-M101MBB
Firmware = 2BA30003
APM Level = 128
Status = active/idle
Scheduler = deadline
SMART info:
4 Start_Stop_Count = 109
5 Reallocated_Sector_Ct = 0
9 Power_On_Hours = 87 [h]
193 Load_Cycle_Count = 2731
194 Temperature_Celsius = 34 (Min/Max 20/44) [°C]
241 Total_LBAs_Written = 0.004 [TB]
+++ SATA Aggressive Link Power Management
/sys/class/scsi_host/host0/link_power_management_policy = min_power
/sys/class/scsi_host/host1/link_power_management_policy = min_power
/sys/class/scsi_host/host2/link_power_management_policy = min_power
+++ PCIe Active State Power Management
/sys/module/pcie_aspm/parameters/policy = default (using bios preferences)
+++ Intel Graphics
/sys/module/i915/parameters/powersave = 1 (enabled)
/sys/module/i915/parameters/enable_rc6 = 1 (enabled)
/sys/module/i915/parameters/enable_fbc = -1 (use per-chip default)
/sys/module/i915/parameters/lvds_downclock = 0 (disabled)
/sys/module/i915/parameters/semaphores = -1 (use per-chip default)
+++ Wireless
bluetooth = off (software)
wifi = on
wwan = none (no device)
hci0(btusb) : not connected
wlan0(iwlwifi) : connected, power management = on
+++ Audio
/sys/module/snd_hda_intel/parameters/power_save = 1
/sys/module/snd_hda_intel/parameters/power_save_controller = Y
+++ Runtime Power Management
device classes = all
device blacklist = (not configured)
driver blacklist = radeon nouveau
/sys/bus/pci/devices/0000:00:00.0/power/control = auto (0x060000, Host bridge, no driver)
/sys/bus/pci/devices/0000:00:02.0/power/control = auto (0x030000, VGA compatible controller, i915)
/sys/bus/pci/devices/0000:00:03.0/power/control = auto (0x040300, Audio device, snd_hda_intel)
/sys/bus/pci/devices/0000:00:14.0/power/control = auto (0x0c0330, USB controller, xhci_hcd)
/sys/bus/pci/devices/0000:00:16.0/power/control = auto (0x078000, Communication controller, mei_me)
/sys/bus/pci/devices/0000:00:1b.0/power/control = auto (0x040300, Audio device, snd_hda_intel)
/sys/bus/pci/devices/0000:00:1c.0/power/control = auto (0x060400, PCI bridge, pcieport)
/sys/bus/pci/devices/0000:00:1c.2/power/control = auto (0x060400, PCI bridge, pcieport)
/sys/bus/pci/devices/0000:00:1c.3/power/control = auto (0x060400, PCI bridge, pcieport)
/sys/bus/pci/devices/0000:00:1c.4/power/control = auto (0x060400, PCI bridge, pcieport)
/sys/bus/pci/devices/0000:00:1d.0/power/control = auto (0x0c0320, USB controller, ehci-pci)
/sys/bus/pci/devices/0000:00:1f.0/power/control = auto (0x060100, ISA bridge, lpc_ich)
/sys/bus/pci/devices/0000:00:1f.2/power/control = auto (0x010601, SATA controller, ahci)
/sys/bus/pci/devices/0000:00:1f.3/power/control = auto (0x0c0500, SMBus, no driver)
/sys/bus/pci/devices/0000:02:00.0/power/control = auto (0x020000, Ethernet controller, r8169)
/sys/bus/pci/devices/0000:03:00.0/power/control = auto (0x028000, Network controller, iwlwifi)
/sys/bus/pci/devices/0000:04:00.0/power/control = auto (0x038000, Display controller, fglrx_pci)
+++ USB
autosuspend = enabled
device whitelist = (not configured)
device blacklist = (not configured)
wwan blacklist = enabled
Bus 001 Device 002 ID 8087:8001 control = auto, autosuspend_delay_ms = 0 -- Intel Corp. (hub)
Bus 001 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms = 0 -- Linux Foundation 2.0 root hub (hub)
Bus 003 Device 001 ID 1d6b:0003 control = auto, autosuspend_delay_ms = 0 -- Linux Foundation 3.0 root hub (hub)
Bus 002 Device 004 ID 1bcf:2b8a control = auto, autosuspend_delay_ms = 2000 -- Sunplus Innovation Technology Inc. (uvcvideo)
Bus 002 Device 003 ID 0bda:0129 control = auto, autosuspend_delay_ms = 2000 -- Realtek Semiconductor Corp. RTS5129 Card Reader Controller (rtsx_usb)
Bus 002 Device 002 ID 8087:07dc control = auto, autosuspend_delay_ms = 2000 -- Intel Corp. (btusb)
Bus 002 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms = 0 -- Linux Foundation 2.0 root hub (hub)
+++ Battery Status
/sys/class/power_supply/BAT1/manufacturer = SDI
/sys/class/power_supply/BAT1/model_name = DELL VVMKC52C
/sys/class/power_supply/BAT1/cycle_count = (not supported)
/sys/class/power_supply/BAT1/charge_full_design = 3900 [mAh]
/sys/class/power_supply/BAT1/charge_full = 3900 [mAh]
/sys/class/power_supply/BAT1/charge_now = 689 [mAh]
/sys/class/power_supply/BAT1/current_now = 882 [mA]
/sys/class/power_supply/BAT1/status = Discharging
答案1
当然可以,但这取决于你的硬件......
tlp-stat 显示的内容current_now是 ACPI-BIOS 从电池组电子设备获取的精确值,并将其发送给 Linux 内核。因此这里无需在 tlp-stat 中进行解释或转换。
即使采用现代 LED 背光显示器,最小亮度和最大亮度之间也通常存在 2-4 W 左右的差异。
结论:电池组 – ACPI-BIOS – 内核之间出现问题;导致 current_now 读数错误。
另一个提示:您的笔记本电脑有两个图形芯片:
/sys/bus/pci/devices/0000:00:02.0/power/control = auto (0x030000, VGA compatible controller, i915)
/sys/bus/pci/devices/0000:04:00.0/power/control = auto (0x038000, Display controller, fglrx_pci)
一个集成的(Intel,i915 驱动程序)和一个独立(AMD,fglrx 驱动程序)。两个图形芯片的影响是巨大的– 可能比 TLP 节省的还要多。您应该禁用其中一个 – 最好是 AMD – 以优化电池功耗。
传输层协议故意地没有切换图形的功能,因此请查找 Ubuntu 混合图形教程。
答案2
TLP 是一个控制笔记本电脑大量电源管理选项的框架,适用于所有笔记本电脑(Thinkpad 除外,需要特定配置)。如果没有 TLP,您可能仍在使用笔记本电脑的某些电源管理选项:TLP 只是一个软件包,它在一个地方提供对各种笔记本电脑电源管理功能的相当全面的控制,其默认配置有利于延长电池寿命。
您的 tlp-stat 输出表明 TLP 处于活动状态,其中有此部分
+++ System Status
TLP power save = enabled
power source = battery
您还可以看到所有正在控制其功耗的设备。
至于为什么两次运行之间电池电流没有更新,我不知道答案。可能是笔记本电脑中的电池硬件没有正确报告此统计数据,或者在特定时间段内对其进行平均。这本身并不表示 TLP 不起作用;正确的测试应该包括给笔记本电脑一个已知的工作负载并计时电池耗尽的时间。当然这需要时间。