diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2017-05-30 11:01:17 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2017-05-30 11:01:17 -0300 |
commit | 70ef8c84b32bc67be37f616496e0f7af5da3df54 (patch) | |
tree | 0406d5360d7ae806cf02eb8bfc5e66678bf9d797 | |
parent | 2c75c692751b2b85458ccfd8499dff5129810f87 (diff) | |
download | puppet-nodo-70ef8c84b32bc67be37f616496e0f7af5da3df54.tar.gz puppet-nodo-70ef8c84b32bc67be37f616496e0f7af5da3df54.tar.bz2 |
Enhance laptop battery support
-rw-r--r-- | files/etc/default/tlp | 278 | ||||
-rw-r--r-- | manifests/subsystem/power/tlp.pp | 12 | ||||
-rw-r--r-- | manifests/utils/laptop/debian.pp | 1 | ||||
-rw-r--r-- | manifests/utils/laptop/mode_tools.pp | 8 | ||||
-rw-r--r-- | manifests/utils/laptop/thinkpad/battery.pp | 18 | ||||
-rw-r--r-- | manifests/utils/laptop/tlp.pp | 25 |
6 files changed, 323 insertions, 19 deletions
diff --git a/files/etc/default/tlp b/files/etc/default/tlp new file mode 100644 index 0000000..761a04a --- /dev/null +++ b/files/etc/default/tlp @@ -0,0 +1,278 @@ +# ------------------------------------------------------------------------------ +# tlp - Parameters for power save +# See full explanation: http://linrunner.de/en/tlp/docs/tlp-configuration.html + +# Hint: some features are disabled by default, remove the leading # to enable +# them. + +# Set to 0 to disable, 1 to enable TLP. +TLP_ENABLE=1 + +# Operation mode when no power supply can be detected: AC, BAT +# Concerns some desktop and embedded hardware only. +TLP_DEFAULT_MODE=AC + +# Seconds laptop mode has to wait after the disk goes idle before doing a sync. +# Non-zero value enables, zero disables laptop mode. +DISK_IDLE_SECS_ON_AC=0 +DISK_IDLE_SECS_ON_BAT=2 + +# Dirty page values (timeouts in secs). +MAX_LOST_WORK_SECS_ON_AC=15 +MAX_LOST_WORK_SECS_ON_BAT=60 + +# Hint: CPU parameters below are disabled by default, remove the leading # +# to enable them, otherwise kernel default values are used. + +# Select a CPU frequency scaling governor. +# Intel Core i processor with intel_pstate driver: +# powersave(*), performance +# Older hardware with acpi-cpufreq driver: +# ondemand(*), powersave, performance, conservative +# (*) is recommended. +# Hint: use tlp-stat -p to show the active driver and available governors. +# Important: +# You *must* disable your distribution's governor settings or conflicts will +# occur. ondemand is sufficient for *almost all* workloads, you should know +# what you're doing! +#CPU_SCALING_GOVERNOR_ON_AC=powersave +#CPU_SCALING_GOVERNOR_ON_BAT=powersave + +# Set the min/max frequency available for the scaling governor. +# Possible values strongly depend on your CPU. For available frequencies see +# the output of tlp-stat -p. +#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 + +# Set Intel P-state performance: 0..100 (%) +# Limit the max/min P-state to control the power dissipation of the CPU. +# Values are stated as a percentage of the available performance. +# Requires an Intel Core i processor with intel_pstate driver. +#CPU_MIN_PERF_ON_AC=0 +#CPU_MAX_PERF_ON_AC=100 +#CPU_MIN_PERF_ON_BAT=0 +#CPU_MAX_PERF_ON_BAT=30 + +# Set the CPU "turbo boost" feature: 0=disable, 1=allow +# Requires an Intel Core i processor. +# Important: +# - This may conflict with your distribution's governor settings +# - A value of 1 does *not* activate boosting, it just allows it +#CPU_BOOST_ON_AC=1 +#CPU_BOOST_ON_BAT=0 + +# Minimize number of used CPU cores/hyper-threads under light load conditions +SCHED_POWERSAVE_ON_AC=0 +SCHED_POWERSAVE_ON_BAT=1 + +# Kernel NMI Watchdog: +# 0=disable (default, saves power), 1=enable (for kernel debugging only) +NMI_WATCHDOG=0 + +# Change CPU voltages aka "undervolting" - Kernel with PHC patch required +# Frequency voltage pairs are written to: +# /sys/devices/system/cpu/cpu0/cpufreq/phc_controls +# CAUTION: only use this, if you thoroughly understand what you are doing! +#PHC_CONTROLS="F:V F:V F:V F:V" + +# Set CPU performance versus energy savings policy: +# performance, normal, powersave +# Requires kernel module msr and x86_energy_perf_policy from linux-tools +ENERGY_PERF_POLICY_ON_AC=performance +ENERGY_PERF_POLICY_ON_BAT=powersave + +# Hard disk devices; separate multiple devices with spaces (default: sda). +# Devices can be specified by disk ID also (lookup with: tlp diskid). +DISK_DEVICES="sda sdb" + +# Hard disk advanced power management level: 1..254, 255 (max saving, min, off) +# Levels 1..127 may spin down the disk; 255 allowable on most drives. +# Separate values for multiple disks with spaces. Use the special value 'keep' +# to keep the hardware default for the particular disk. +DISK_APM_LEVEL_ON_AC="254 254" +DISK_APM_LEVEL_ON_BAT="128 128" + +# Hard disk spin down timeout: +# 0: spin down disabled +# 1..240: timeouts from 5s to 20min (in units of 5s) +# 241..251: timeouts from 30min to 5.5 hours (in units of 30min) +# See 'man hdparm' for details. +# Separate values for multiple disks with spaces. Use the special value 'keep' +# to keep the hardware default for the particular disk. +#DISK_SPINDOWN_TIMEOUT_ON_AC="0 0" +#DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0" + +# Select IO scheduler for the disk devices: cfq, deadline, noop (Default: cfq); +# Separate values for multiple disks with spaces. Use the special value 'keep' +# to keep the kernel default scheduler for the particular disk. +#DISK_IOSCHED="cfq cfq" + +# SATA aggressive link power management (ALPM): +# min_power, medium_power, max_performance +SATA_LINKPWR_ON_AC=max_performance +SATA_LINKPWR_ON_BAT=min_power + +# Exclude SATA host devices from link power management. +# Separate multiple hosts with spaces. +#SATA_LINKPWR_BLACKLIST="host1" + +# Runtime Power Management for AHCI controllers and disks: +# on=disable, auto=enable +# EXPERIMENTAL ** WARNING: auto will most likely cause system lockups/data loss +#AHCI_RUNTIME_PM_ON_AC=on +#AHCI_RUNTIME_PM_ON_BAT=on + +# Seconds of inactivity before disk is suspended +AHCI_RUNTIME_PM_TIMEOUT=15 + +# PCI Express Active State Power Management (PCIe ASPM): +# default, performance, powersave +PCIE_ASPM_ON_AC=performance +PCIE_ASPM_ON_BAT=powersave + +# Radeon graphics clock speed (profile method): low, mid, high, auto, default; +# auto = mid on BAT, high on AC; default = use hardware defaults. +# (Kernel >= 2.6.35 only, open-source radeon driver explicitly) +RADEON_POWER_PROFILE_ON_AC=high +RADEON_POWER_PROFILE_ON_BAT=low + +# Radeon dynamic power management method (DPM): battery, performance +# (Kernel >= 3.11 only, requires boot option radeon.dpm=1) +RADEON_DPM_STATE_ON_AC=performance +RADEON_DPM_STATE_ON_BAT=battery + +# Radeon DPM performance level: auto, low, high; auto is recommended. +RADEON_DPM_PERF_LEVEL_ON_AC=auto +RADEON_DPM_PERF_LEVEL_ON_BAT=auto + +# WiFi power saving mode: on=enable, off=disable; not supported by all adapters. +WIFI_PWR_ON_AC=off +WIFI_PWR_ON_BAT=on + +# Disable wake on LAN: Y/N +WOL_DISABLE=Y + +# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs). +# A value of 0 disables, >=1 enables power save. +SOUND_POWER_SAVE_ON_AC=0 +SOUND_POWER_SAVE_ON_BAT=1 + +# Disable controller too (HDA only): Y/N +SOUND_POWER_SAVE_CONTROLLER=Y + +# Set to 1 to power off optical drive in UltraBay/MediaBay when running on +# battery. A value of 0 disables this feature (Default). +# Drive can be powered on again by releasing (and reinserting) the eject lever +# or by pressing the disc eject button on newer models. +# Note: an UltraBay/MediaBay hard disk is never powered off. +BAY_POWEROFF_ON_BAT=0 +# Optical drive device to power off (default sr0). +BAY_DEVICE="sr0" + +# Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable +RUNTIME_PM_ON_AC=on +RUNTIME_PM_ON_BAT=auto + +# Runtime PM for *all* PCI(e) bus devices, except blacklisted ones: +# 0=disable, 1=enable +RUNTIME_PM_ALL=1 + +# Exclude PCI(e) device adresses the following list from Runtime PM +# (separate with spaces). Use lspci to get the adresses (1st column). +#RUNTIME_PM_BLACKLIST="bb:dd.f 11:22.3 44:55.6" + +# Exclude PCI(e) devices assigned to the listed drivers from Runtime PM +# (should prevent accidential power on of hybrid graphics' discrete part). +# Default is "radeon nouveau"; use "" to disable the feature completely. +# Separate multiple drivers with spaces. +RUNTIME_PM_DRIVER_BLACKLIST="radeon nouveau" + +# Set to 0 to disable, 1 to enable USB autosuspend feature. +USB_AUTOSUSPEND=1 + +# Exclude listed devices from USB autosuspend (separate with spaces). +# Use lsusb to get the ids. +# Note: input devices (usbhid) are excluded automatically (see below) +#USB_BLACKLIST="1111:2222 3333:4444" + +# WWAN devices are excluded from USB autosuspend: 0=do not exclude / 1=exclude +USB_BLACKLIST_WWAN=1 + +# Include listed devices into USB autosuspend even if already excluded +# by the driver or WWAN blacklists above (separate with spaces). +# Use lsusb to get the ids. +#USB_WHITELIST="1111:2222 3333:4444" + +# Set to 1 to disable autosuspend before shutdown, 0 to do nothing +# (workaround for USB devices that cause shutdown problems). +#USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1 + +# Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown +# on system startup: 0=disable, 1=enable. +# Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below +# are ignored when this is enabled! +RESTORE_DEVICE_STATE_ON_STARTUP=0 + +# Radio devices to disable on startup: bluetooth, wifi, wwan. +# Separate multiple devices with spaces. +#DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan" + +# Radio devices to enable on startup: bluetooth, wifi, wwan. +# Separate multiple devices with spaces. +#DEVICES_TO_ENABLE_ON_STARTUP="wifi" + +# Radio devices to disable on shutdown: bluetooth, wifi, wwan +# (workaround for devices that are blocking shutdown). +#DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan" + +# Radio devices to enable on shutdown: bluetooth, wifi, wwan +# (to prevent other operating systems from missing radios). +#DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan" + +# Radio devices to enable on AC: bluetooth, wifi, wwan +#DEVICES_TO_ENABLE_ON_AC="bluetooth wifi wwan" + +# Radio devices to disable on battery: bluetooth, wifi, wwan +#DEVICES_TO_DISABLE_ON_BAT="bluetooth wifi wwan" + +# Radio devices to disable on battery when not in use (not connected): +# bluetooth, wifi, wwan +#DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan" + +# Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module +# required). Charging starts when the remaining capacity falls below the +# START_CHARGE_THRESH value and stops when exceeding the STOP_CHARGE_THRESH value. +# Main / Internal battery (values in %) +START_CHARGE_THRESH_BAT0=75 +STOP_CHARGE_THRESH_BAT0=80 +# Ultrabay / Slice / Replaceable battery (values in %) +#START_CHARGE_THRESH_BAT1=75 +#STOP_CHARGE_THRESH_BAT1=80 + +# ------------------------------------------------------------------------------ +# tlp-rdw - Parameters for the radio device wizard +# Possible devices: bluetooth, wifi, wwan + +# Hints: +# - Parameters are disabled by default, remove the leading # to enable them. +# - Separate multiple radio devices with spaces. + +# Radio devices to disable on connect. +#DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan" +#DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan" +#DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi" + +# Radio devices to enable on disconnect. +#DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan" +#DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT="" +#DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT="" + +# Radio devices to enable/disable when docked. +#DEVICES_TO_ENABLE_ON_DOCK="" +#DEVICES_TO_DISABLE_ON_DOCK="" + +# Radio devices to enable/disable when undocked. +#DEVICES_TO_ENABLE_ON_UNDOCK="wifi" +#DEVICES_TO_DISABLE_ON_UNDOCK="" diff --git a/manifests/subsystem/power/tlp.pp b/manifests/subsystem/power/tlp.pp new file mode 100644 index 0000000..1c07d1c --- /dev/null +++ b/manifests/subsystem/power/tlp.pp @@ -0,0 +1,12 @@ +class nodo::subsystem::power::tlp { + include nodo::utils::laptop::tlp + + file { '/etc/default/tlp': + ensure => present, + owner => 'root', + group => 'root', + mode => '0644', + source => 'puppet:///modules/nodo/etc/default/tlp', + require => Package['tlp'], + } +} diff --git a/manifests/utils/laptop/debian.pp b/manifests/utils/laptop/debian.pp index d45ec4c..9b34eb5 100644 --- a/manifests/utils/laptop/debian.pp +++ b/manifests/utils/laptop/debian.pp @@ -6,7 +6,6 @@ class nodo::utils::laptop::debian { package { [ 'cpufrequtils', 'acpi-support', - 'laptop-mode-tools', ]: ensure => installed, } diff --git a/manifests/utils/laptop/mode_tools.pp b/manifests/utils/laptop/mode_tools.pp new file mode 100644 index 0000000..5937378 --- /dev/null +++ b/manifests/utils/laptop/mode_tools.pp @@ -0,0 +1,8 @@ +# Conflicts with TLP +class nodo::utils::laptop::mode_tools( + $ensure = 'installed', +) { + package { 'laptop-mode-tools': + ensure => $ensure, + } +} diff --git a/manifests/utils/laptop/thinkpad/battery.pp b/manifests/utils/laptop/thinkpad/battery.pp deleted file mode 100644 index ecf4649..0000000 --- a/manifests/utils/laptop/thinkpad/battery.pp +++ /dev/null @@ -1,18 +0,0 @@ -# apci-call or tp-smapi available -# https://www.thinkwiki.org/wiki/Tp_smapi -class nodo::utils::laptop::thinkpad::battery( - $implementation = 'acpi-call', - $ensure = 'installed', -) { - package { [ - 'tlp', - ]: - ensure => $ensure, - } - - package { [ - "${implementation}-dkms", - ]: - ensure => $ensure, - } -} diff --git a/manifests/utils/laptop/tlp.pp b/manifests/utils/laptop/tlp.pp new file mode 100644 index 0000000..47e1712 --- /dev/null +++ b/manifests/utils/laptop/tlp.pp @@ -0,0 +1,25 @@ +# See https://www.thinkwiki.org/wiki/Tp_smapi +# Support available apci-call or tp-smapi +# Conflicts with laptop-mode-tools from nodo::utils::laptop::mode_tools +class nodo::utils::laptop::tlp( + $implementation = 'acpi-call', + $ensure = 'installed', +) { + package { [ + 'tlp', + ]: + ensure => $ensure, + } + + package { [ + "${implementation}-dkms", + ]: + ensure => $ensure, + } + + # This package requires network-manager, which + # conflicts with wicd. + package { 'tlp-rdw': + ensure => absent, + } +} |