Power management/Guide

In recent years, power management has become one of the differentiating features in the quest for finding the perfect laptop. Yet, the operating system must support the various power saving functionalities too. In this guide, we cover how to setup your Gentoo installation so it manages power-hungry resources in a flexible yet automated manner.

About this document...
This document describes the setup of power management features on your laptop. Although some of the information in this guide can be applied to power management for servers, it is not the intention of this document to go that route. Please be careful when applying this on a non-laptop system.

Within this document, we will focus primarily on the laptop mode tools since it offers a complete set of functionalities. However, we will also refer to other tools that might offer a more detailed approach on individual settings. In such cases, you will need to disable the feature from the laptop mode tools so that both tools do not fight over the same resource control.

About laptop_mode
The  setting is an in-kernel configuration setting that optimizes I/O, allowing disks to spin down properly (and not be woken up immediately afterwards for queued operations).

About laptop-mode-tools
The Laptop Mode Tools is a software package which allows the user to optimize power saving functions. It allows managing the  setting in the Linux kernel, but has additional features allowing you to tweak other power-related settings on the system.

Minimum kernel setup
There are different kernel sources in Portage. We recommend using , but if you want advanced hibernation support you might need. To enable proper power management features in the Linux kernel, enable at least the following settings:

Don't forget to enable the CPU frequency scaling driver for your CPU, located right after the ACPI Processor P-States driver mentioned above.

Build and install the new kernel (if necessary) and reboot.

Installation
It comes to no surprise that installation of the Laptop Mode Tools software is easily done through. However, this package takes on additional, optional settings through USE flag configuration. So let's first take a look at the supported USE flags and what they mean to the package.

As you can see, there are two USE flags that seem to collide:  and. So what's the deal there?


 * The  USE flag enables support for Advanced Power Management, an older (before year 2000) standard for power management features within a system.
 * The  USE flag enables support for Advanced Configuration and Power Interface, the successor of APM. All modern laptops support ACPI.

Depending on your system, you will either need  or   set. In the remainder of this guide, we assume that your laptop is recent enough to use ACPI.

So, with the USE flags set, let's install.

Configuration
Having  installed on your system does not automatically enable the power management features that you might need. To configure the package, first take a look at. This is the main configuration file for the package and is pretty well described (through comments).

But it is not the only configuration file to work with. The Laptop Mode Tools package supports plugins (or modules) which have their own configuration file(s). These files are located in and are named after the module they represent (such as  ).

Now, one of the important settings in each configuration file is if the Laptop Mode Tools package should govern a particular setting or not. This is important when you want to combine  with other services like. In this example case, you will need to set  :

The next few sections will help you configure  to suit your needs. When you are finished, start the  service and make sure it is started when you boot up your system.

How does laptop-mode-tools work
When running the  service, the software will check in which state your system is in. The states are defined as:


 * Battery, which is active when the system is running on battery power; the configuration files use the  prefix for settings related to this state
 * AC, which is active when the system is running on AC power; the configuration files use the  prefix for settings related to this state
 * Laptop Mode, which is active when laptop mode is enabled; the configuration files use the  prefix for settings related to this state
 * No Laptop Mode, which is active when laptop mode is disabled; the configuration files use the  prefix for settings related to this state

The  and   prefixes can be combined (so you can have a   prefix).

When the  service is started, it will switch modes based on events that occur (and of course based on the configuration settings). For instance, the setting  will make sure that the laptop mode tools switch to laptop mode when battery power is used. If that is the case, then the settings starting with ,   ,   and   will be used.

To make sure settings to not collide, it is not allowed to have overlapping settigns. In the next example, the first set (for  ) is valid, but the second one (for   ) isn't.

Colliding settings

Configuring CPU frequency management
The support for CPU frequency management in the laptop mode tools allows switching frequencies. It supports setting the CPU frequency governor, minimum frequency and maximum frequency. The configuration file used here is.

The CPU frequency governor is a kernel-level policy that defines how the kernel will select the CPU frequency. We already selected the governors we want to use in the kernel configuration earlier. Let's recap:


 * always picks the highest frequency
 * always picks the lowest frequency
 * does not pick anything, but let the user decide (or any process that the user is running that will decide for the user)
 * will scale the CPU frequency up to the highest frequency when load is available
 * will scale the CPU frequency up gradually when load is available

When switching between AC or battery, or (no) laptop mode, the appropriate governor (as well as its minimum and maximum frequency) is selected.

Configuring display brightness
With, you can have the laptop mode tools govern the brightness of your LCD screen.

The file currently uses the file to set brightness values. Recent kernels do not provide this anymore - you will need to adjust this to instead.

The values you can use are between 0 and 15, with 0 being the lowest brightness value.

Configuring other services
An interesting feature of  is to support reloading particular services (like the system logger) after switching its configuration file. This is handled through.

If enabled, the  application will switch the configuration file(s) of the mentioned services with the same file, but suffixed with ,  or. It willl then signal or reload the appropriate services so they can use the new configuration file.

Installation
The  application allows you to manage CPU frequencies in a more granular approach then what   supports. But before we dive into the installation of , let's first look at the USE flags it supports.

The USE flags ,   and   overlap, so you should only have one active. If your laptop is sufficiently recent,  is your best bet. If not,  offers all that is needed. When even APM isn't supported, you can try.

With the USE flags configured, it is time to install.

Configuration
The  application monitors the status of the system through several plugins. Based on the feedback it receives from those plugins, it will adjust the policy used to govern the CPU frequency.

can be configured by editing. It contains three different sections:


 * 1) The   section contains general configuration information
 * 2) The   section defines the policies that the   daemon can switch to. The section is very similar to the information you use when manually setting the CPU frequency policy using.
 * 3) The   section is the work-horse of the   daemon, defining when the daemon decides to switch to a different profile.

Let's take a quick look at an example rule.

Sample cpufreqd rule

In the above example,  will switch the system to the On Demand High profile (also shown in the above excerpt). This profile by itself uses the  governor with a minimum frequency of 40% (iow, a CPU of 2Ghz will have by this policy a minimum frequency of 800Mhz).

As you can see, the  application can offer a more granular approach on CPU frequency scaling. But not only that, you can tweak the CPU frequency scaling based on various other metrics available. The default configuration offers a sample rule for when you watch a movie, where you want maximum performance, unless the CPU temperature is getting too high.

When you have configured , it is time to start it (and make sure the service is loaded automatically). Make sure that CPU frequency handling by other tools (like  ) is disabled!

Tools

 * Laptop Mode Tools Homepage, includes About laptop mode.
 * PowerTOP, an interactive application helping users to find out which processes are forcing wakeups on the CPU most often.

Articles and Guides

 * A ThinkWiki article on How to reduce power consumption (on Linux). This article offers an exhaustive list of measures one can take. However, it should be noted that the laptop mode tools implements the majority of these (if properly configured).

Acknowledgements
We would like to thank the following authors and editors for their contributions to this guide:


 * swift