Power management/Guide

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Power management/Guide and the translation is 52% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎日本語 • ‎한국어 • ‎русский • ‎中文(中国大陆)‎

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 a Gentoo installation so it manages power-hungry resources in a flexible yet automated manner.

Introduction

À propos de ce document...

Ce document décrit la configuration de la gestion d'énergie sur votre ordinateur portable. Bien que quelques unes des informations fournies dans ce guide s'appliquent aussi aux serveurs, ce n'est pas l'objectif de ce document que de couvrir ce cas. Soyez donc prudent lorsque vous appliquerez ce guide à autre chose qu'un ordinateur portable.

Within this document, the primary focus will be on 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, the feature from the laptop mode tools must be disabled so that both tools do not fight over the same resource control.

À propos du laptop_mode (mode ordinateur portable)

Le paramètre laptop_mode du noyau permet l'optimisation des entrées/sorties, en autorisant les disques à se mettre au ralenti proprement (et à ne pas être réveillés aussitôt lors d'opération en files).

À propos des outils du laptop-mode

The Laptop Mode Tools is a software package (app-laptop/laptop-mode-tools) which allows the user to optimize power saving functions. It allows managing the laptop_mode setting in the Linux kernel, but has additional features that allow the tweaking of other power-related settings on the system.

Linux kernel configuration

Configuration minimale du noyau

There are different kernel sources in Portage. We recommend using sys-kernel/gentoo-sources, but if advanced hibernation support is desired, sys-kernel/tuxonice-sources might be needed. To enable proper power management features in the Linux kernel, enable the following settings:

KERNEL Minimum kernel setup for Power Management
Power management and ACPI options --->
  -*- Device power management core functionality
  [*] ACPI (Advanced Configuration and Power Interface) Support --->
    <*> AC Adapter
    <*> Battery
    -*- Button
    -*- Video
    <*> Fan
    <*> Processor
    <*> Thermal Zone
  
  [*] CPU Frequency scaling --->
        Default CPUFreq governor (ondemand)  --->
    -*- 'performance' governor
    <*> 'powersave' governor
    <*> 'userspace' governor for userspace frequency scaling
    -*- 'ondemand' cpufreq policy governor
    <*> 'conservative' cpufreq governor
    <*> ACPI Processor P-States driver

Do not forget to enable the CPU frequency scaling driver for the CPU. For the SandyBridge and higher Intel core series of processors, userspace, ondemand, and conservative governors are unnecessary; performance should be selected as the default, and Intel P state control should be selected instead of ACPI Processor P-States driver. [1]

For a more detailed description see the Power management/Processor#Kernel article.

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

Utiliser les outils du laptop_mode

Installation

It comes to no surprise that installation of the Laptop mode tools software is easily done via:

root #emerge --ask app-laptop/laptop-mode-tools

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.

USE flag Description Suggested when...
acpi Depend on sys-power/acpid so that changes in the system are captured and power saving features are automatically enabled/disabled. the laptop is not too old (around year 2003 and later).
apm Depend on sys-apps/apmd so that changes in the system are captured and power saving features are automatically enabled/disabled. the laptop is very old.
bluetooth Depend on net-wireless/bluez , enabling laptop-mode-tools to manage bluetooth settings (enabling/disabling the service based on battery availability) the laptop (and kernel) support bluetooth.
scsi Depend on sys-apps/sdparm , enabling laptop-mode-tools to manage SCSI (and not SATA) disk parameters. the laptop uses SCSI disks.

Observe there are two USE flags that seem to collide: acpi and apm. So what is the deal?

  • L'option apm de la variable USE active la prise en charge de Advanced Power Management (Gestion avancée de l'énergie) , un ancien standard (avant 2000) pour les fonctionnalités de gestion de l'énergie dans un système.
  • L'option acpi de la variable USE active la prise en charge de l'Advanced Configuration and Power Interface (Configuration avancée et Interface énergie) , le successeur d'APM. Tous les portables modernes prennent en charge l'ACPI.

Depending on the system, either acpi or apm will need to be set. In the remainder of this guide, it is assumed the laptop is recent enough to use ACPI.

Une fois les options de la variable USE définies, installons le paquet laptop-mode-tools .

root #emerge --ask laptop-mode-tools

Configuration

Le fait d'avoir laptop-mode-tools installé sur votre système n'active pas automatiquement les fonctionnalités dont vous pourriez avoir besoin. Pour configurer ce paquet, commencez par regarder le fichier de configuration principal /etc/laptop-mode/laptop-mode.conf . Il est très bien documenté.

Mais ce n'est pas le seul fichier de configuration disponible. Le paquetLaptop Mode Tools prend en charge des greffons (ou modules) qui possèdent leur(s) propre(s) fichier(s) de configuration. Ces fichiers sont situés dans /etc/laptop-mode/conf.d et prennent le nom du module qu'ils représentent (comme intel-sata-powermgmt.conf ).

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 combining laptop-mode-tools with other power management services such as cpufreqd. In this example case, CONTROL_CPU_FREQUENCY=0 must be set:

FILE /etc/laptop-mode/conf.d/cpufreq.conf
CONTROL_CPU_FREQUENCY=0

Les quelques sections suivantes vous aideront à configurer laptop-mode-tools pour qu'il réponde à vos besoins. Après avoir terminé, démarrez le service laptop_mode et assurez-vous qu'il est lancé à chaque démarrage du système.

With OpenRC:

root #rc-service laptop_mode start
root #rc-update add laptop_mode default

With systemd:

root #systemctl laptop-mode.service enable --now

Comment fonctionnent les outils laptop-mode-tools ?

Lorsque vous lancez le service laptop_mode le logiciel va regarder dans quel état se trouve votre système. Les différents états possibles sont :

  • Battery , qui est actif lorsque le système prend son énergie sur la batterie ; les fichiers de configuration utilisent le préfixe BATT_ pour les réglages correspondant à cet état
  • AC , qui est actif lorsque le système prend son énergie sur le secteur ; les fichiers de configuration utilisent le préfixe AC_ pour les réglages correspondant à cet état
  • Laptop Mode , qui est actif lorsque le Laptop Mode est activé; les fichiers de configuration utilisent le préfixe LM_ pour les réglages correspondant à cet état
  • No Laptop Mode , qui est actif lorsque le Laptop Mode est désactivé ; les fichiers de configuration utilisent le préfixe NOLM_ pour les réglages correspondant à cet état

The AC/BATT_ and LM/NOLM_ prefixes can be combined to have a AC_LM_ prefix.

Après que le service laptop_mode a démarré, il change de mode en se basant sur des événements qui se produisent ( et bien sûr sur la configuration). Par exemple, le réglage ENABLE_LAPTOP_MODE_ON_BATTERY=1 s'assurera que les outils du mode laptop commutent vers laptopmode quand la batterie est vide. Si c'est le cas, alors les réglages commençant par LM_ , LM_BATT_ , BATT_LM_ et BATT_ seront utilisés.

Pour s'assurez que les réglages n'entrent pas en conflit, il n'est pas autorisé d'avoir des réglages qui se recouvrent. Dans l'exemple qui suit, le premier réglage (pour CPU_MAXFREQ ) est valide, mais le deuxième (pour CPU_GOVERNOR ) ne l'est pas.

CODE Colliding settings
## Valid set
BATT_CPU_MAXFREQ=fastest
LM_AC_CPU_MAXFREQ=fastest
NOLM_AC_CPU_MAXFREQ=fastest
  
## Invalid set
BATT_CPU_MINFREQ=fastest
LM_AC_CPU_MINFREQ=fastest
# The following includes AC and BATT, but BATT is already defined
NOLM_CPU_MINFREQ=fastest

Configurer la gestion de fréquence du processeur

La prise en charge de la gestion de la fréquence du processeur (CPU) dans les outils du mode portable autorise la commutation des fréquences. Elle prend en charge le réglage du gouverneur de fréquence du processeur, fréquence maximale et minimale. Le fichier de configuration utilisé ici est /etc/laptop-mode/conf.d/cpufreq.conf .

Le gouverneur de fréquence du processeur est une politique de niveau noyau qui définit comment le noyau choisira la fréquence du processeur. Nous avons déjà sélectionné le gouverneur que nous voulons utiliser dans la configuration du noyau précédemment. Récapitulons :

  • performance sélectionne toujours la fréquence la plus haute
  • powersave sélectionne toujours la fréquence la plus basse
  • userspace ne sélectionne rien, mais laisse l'utilisateur décider ( ou tout processus que l'utilisateur exécute qui décidera pour lui)
  • ondemand adapte la fréquence du processeur jusqu'à la valeur la plus haute quand la charge est disponible.
  • conservative adapte graduellement la fréquence du processeur vers le haut lorsque la charge est disponible.

En commutant entre AC et batterie, ou (pas) de mode portable, le gouverneur approprié (aussi bien que ses fréquence maximale et minimale) est choisi.

Configurer la luminosité de l'écran

Via le fichier /etc/laptop-mode/conf.d/lcd-brightness.conf , vous pouvez faire en sorte que les outils du mode portable gouvernent la luminosité de l'écran.

Le fichier utilise actuellement le fichier /proc/acpi/video/VID/LCD/brightness (bug 499544) pour définir les valeurs de luminosité. Les noyaux récents ne fournissent plus cette fonctionnalité — vous devrez ajuster cela vous-même dans /sys/class/backlight/acpi_video0/brightness.

Les valeurs que vous pouvez utiliser sont comprises entre 0 et la valeur contenue dans /sys/class/backlight/acpi_video0/max_brightness; 0 étant la valeur correspondant à la luminosité la plus faible.

Configurer les autres services

Une fonctionnalité intéressante des outils du mode portable (laptop-mode-tools) est de prendre en charge le rechargement de services particuliers ( comme la journalisation du système) après changement de fichier de configuration. Ceci est pris en charge via le fichier /etc/laptop-mode/conf.d/configuration-file-control.conf .

Si elle est activée, l'application de mode portable (laptop_mode) commutera les fichiers de configuration des services mentionnés vers un fichier de même nom, mais suffixé par -nolm-ac , -lm-ac ou -batt . Elle le signalera alors aux services appropriés, ou les rechargera, de manière à ce qu'ils utilisent les nouveaux fichiers de configuration.

Utiliser cpufreqd

Warning
Package sys-power/cpufreqd is deprecated and has been removed from the Portage tree. sys-power/ncpufreqd can still be used for 2.6.x kernels.

Installation

The cpufreqd application allows the user to manage CPU frequencies in a more granular approach than what laptop-mode-tools supports. But before we dive into the installation of cpufreqd, let us first look at the USE flags it supports.

USE flag Description Suggested when...
acpi Enable support for ACPI, allowing cpufreqd to be notified about specific events as well as govern power through the ACPI interface the laptop is not very old (around year 2003 and later)
apm Enable support for APM, allowing cpufreqd to be notified about specific events as well as govern power through the APM interface the laptop is very old
lm_sensors Enable support for the Linux hardware sensors (through sys-apps/lm_sensors), allowing to switch profiles based on hardware sensor results using advanced events through lm_sensors
nforce2 Enable support for NForce, allowing cpufreqd to change the NForce FSB clock and video card frequency an NVidia graphics card based on the NForce chipset is present
nvidia Enable support for NVidia graphical card configuration (through the NVidia nvclock interface), allowing cpufreqd to change the video card frequency of NVidia graphical cards an NVidia graphics card is present
pmu Enable the Power Management Unit plug-in of cpufreqd. This allows the software to poll the Linux kernel Power Supply interface, getting more detailed information on battery charge the laptop does not support ACPI or APM

Les options acpi, apm et pmu de la variable USE empiètent l'une sur l'autre, c'est pourquoi vous ne devriez en avoir qu'une seule activée. Si votre portable est assez récent, acpi est votre meilleur pari. Si ce n'est pas le cas, apm vous offre tout ce qui est nécessaire. Quand, même APM n'est pas pris en charge, vous pouvez essayer pmu .

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

root #emerge --ask cpufreqd

Configuration

The cpufreqd 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.

cpufreqd can be configured by editing /etc/cpufreqd.conf. It contains three different sections:

  1. The [General]...[/General] section contains general configuration information.
  2. The [Profile]...[/Profile] section defines the policies that the cpufreqd daemon can switch to. The section is very similar to the information used when manually setting the CPU frequency policy using cpufreq-set.
  3. The [Rule]...[/Rule] section is the work-horse of the cpufreqd daemon, defining when the daemon decides to switch to a different profile.

Jetons un rapide coup d'œil à un exemple de règle.

File/etc/cpufreqd.confÉchantillon de règle cpufreqd

[...]
  
[Profile]
name=On Demand High
minfreq=40%
maxfreq=100%
policy=ondemand
[/Profile]
  
[Rule]
name=AC Off - High Power
ac=off
battery_interval=70-100
profile=On Demand High
[/Rule]
  
[...]

This is a deprecated template. Help us update this template!

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

The cpufreqd application can offer a more granular approach on CPU frequency scaling. But not only that, but the CPU frequency scaling can be tweaked based on various other metrics available. The default configuration offers a sample rule: when a movie is watched, maximum performance is desired (unless the CPU temperature is getting too high).

When cpufreqd has been 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 laptop-mode-tools) is disabled!

root #rc-update add cpufreqd default
root #/etc/init.d/cpufreqd start

See also

External resources

  • 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.
  • 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).

References