aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2017-05-30 11:01:17 -0300
committerSilvio Rhatto <rhatto@riseup.net>2017-05-30 11:01:17 -0300
commit70ef8c84b32bc67be37f616496e0f7af5da3df54 (patch)
tree0406d5360d7ae806cf02eb8bfc5e66678bf9d797
parent2c75c692751b2b85458ccfd8499dff5129810f87 (diff)
downloadpuppet-nodo-70ef8c84b32bc67be37f616496e0f7af5da3df54.tar.gz
puppet-nodo-70ef8c84b32bc67be37f616496e0f7af5da3df54.tar.bz2
Enhance laptop battery support
-rw-r--r--files/etc/default/tlp278
-rw-r--r--manifests/subsystem/power/tlp.pp12
-rw-r--r--manifests/utils/laptop/debian.pp1
-rw-r--r--manifests/utils/laptop/mode_tools.pp8
-rw-r--r--manifests/utils/laptop/thinkpad/battery.pp18
-rw-r--r--manifests/utils/laptop/tlp.pp25
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,
+ }
+}