Power management/Guide

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Power management/Guide and the translation is 54% complete.
Outdated translations are marked like this.


Dans les dernières années, la gestion de l'énergie est devenue l'une des fonctionnalités discriminante dans le recherche du parfait ordinateur portable. Encore faut-il que le système d'exploitation prenne en charge les nombreuses fonctionnalités d'économie d'énergie également. Dans ce guide, nous couvrons la manière de configurer votre installation de Gentoo pour qu'elle gère les ressources énergivores d'une manière automatique et flexible.

Article status
This article has some todo items:
  • Add instructions for kernel configuration of remaining CPU frequency drivers

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.

Dans ce document, nous nous focaliserons en priorité sur l'outil laptop_mode du portable car il offre un jeu complet de fonctionnalités. Néanmoins, nous nous référerons également à d'autres outils qui sont susceptibles d'offrir une approche plus fine sur certains réglages individuels. Dans de tels cas, vous devrez désactiver la fonctionnalité de l'outil laptop_mode de l'ordinateur portable, de manière à ce que les deux outils n'entrent pas en conflit pour la gestion de la même ressource.

À 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

Les outils du Laptop Mode constituent un paquet ( app-laptop/laptop-mode-tools) et permettent à l'utilisateur d'optimiser les fonctions d'économie d'énergie. Ils permettent de gérer le réglage du laptop_mode dans le noyau Linux, mais possèdent des fonctionnalités additionnelles pour peaufiner d'autres réglages en relation avec l'énergie sur le système.

Configuration du noyau Linux

Configuration minimale du noyau

Différentes sources du noyau sont disponibles dans Portage. Nous recommandons d'utiliser sys-kernel/gentoo-sources, mais si vous désirez la prise en charge du mode avancé d'hibernation, vous pouvez avoir besoin des sys-kernel/tuxonice-sources. Pour activer une gestion de l'énergie digne de ce nom dans le noyau Linux, activez au minimum les réglages suivants :

Pour activer les fonctionnalités de gestion d'alimentation appropriées dans le noyau Linux, activez les paramètres suivants:

KERNEL Configuration minimale du noyau pour la gestion de l'énergie
General setup --->
  [*] Configure standard kernel features (expert users) --->
  
Power management and ACPI options --->
  [*] Run-time PM core functionality
  [*] ACPI (Advanced Configuration and Power Interface) Support --->
    <*> AC Adapter
    <*> Battery
    -*- Button
    -*- Video
    <*> Fan
    <*> Processor
    <*> Thermal Zone
    [*] Power Management Timer Support
  
  [*] CPU Frequency scaling --->
    [*] CPU Frequency scaling
    <*>   'performance' governor
    <*>   'powersave' governor
    <*>   'userspace' governor
    <*>   'ondemand' governor
    <*>   'conservative' governor
    <*> ACPI Processor P-States driver

N'oubliez pas d'activer le pilote d'adaptation de fréquence (frequency scaling driver) du CPU pour votre modèle de CPU. Il se trouve juste après les ACPI Processor P-States driver cités plus haut.

In this case, the userspace, ondemand, and conservative governors are unnecessary. The performance governor should be selected as the default. [1]

KERNEL Kernel setup for Intel Sandy Bridge and newer processors
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 (performance)  --->
    -*- 'performance' governor
    <*> Intel P state control

Enabling additional drivers

For Intel processors used in laptops since 2011 you may want to enable additional advanced features - Thermal and powercap sysfs.

Thermal sysfs driver

KERNEL Generic Thermal sysfs driver
Device Drivers --->
  -*- Generic Thermal sysfs driver --->
    (0)   Emergency poweroff delay in milli-seconds                                                                              
    [*]   Expose thermal sensors as hwmon device                                                                                
    -*-   Enable writable trip points                                                                                          
          Default Thermal governor (step_wise)  --->                                                                           
    [*]   Fair-share thermal governor                                                                                           
    -*-   Step_wise thermal governor                                                                                            
    -*-   Bang Bang thermal governor                                                                                            
    -*-   User_space thermal governor                                                                                           
    [ ]   Thermal emulation mode support
    [*]   Power allocator thermal governor   
    <M>   Intel PowerClamp idle injection driver
    <M>   X86 package temperature thermal driver
    < >   Intel SoCs DTS thermal driver                                                                                          
          ACPI INT340X thermal drivers  --->                                                                                     
             <M> ACPI INT340X thermal drivers
    <M>   Intel PCH Thermal Reporting Driver

powercap sysfs driver

Additionally, you can enable Running Average Power Limit – RAPL technology. Both PowerTOP and turbostat utilities are aware of RAPL. For RAPL enablement use:

KERNEL Generic powercap sysfs driver
Device Drivers --->
  [*] Generic powercap sysfs driver --->
    <M>   Intel RAPL Support

To make use of Intel's Linux thermal daemon you first need to emerge sys-power/thermald and enable it via:

root #rc-config add thermald

or

root #systemctl enable thermald
Remarque
dptfxtract from Intel may be used to auto generate a thermald.conf.xml for the system.

Kernel setup finalization

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

Compilez et installez le nouveau noyau (si besoin) et redémarrez.

Utiliser les outils du laptop_mode

Installation

Les outils du mode laptop_mode s'installent via le paquet app-laptop/laptop-mode-tools. Néanmoins, ce paquet accepte des réglages additionnels via les options de la variable USE. Commençons donc par jeter un coup d'œil à ces options :

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.

Option de la variable USE Description Suggérée lorsque...
acpi Dépend de sys-apps/apmd de telle manière que les modifications dans le systèmes sont capturées et que les fonctionnalités d'économie d'énergie sont automatiquement activées/désactivées. votre ordinateur n'est pas trop ancien (~ année 2003 et postérieures)
apm Dépend de sys-apps/apmd de telle manière que les modifications dans le systèmes sont capturées et que les fonctionnalités d'économie d'énergie sont automatiquement activées/désactivées. votre ordinateur portable est très ancien.
bluetooth Dépend de net-wireless/bluez, active les laptop-mode-tools pour gérer les réglages bluetooth (activant/desactivant le service en fonction de la disponibilité de la batterie) votre ordinateur portable ( et le noyau ) prend en charge bluetooth
scsi Dépend de sys-apps/sdparm, active les laptop-mode-tools pour gérer les paramètres des disques SCSI ( et pas SATA). votre ordinateur utilise des disques SCSI

Comme vous pouvez le voir, il y a deux options de la variable USE qui semble entrer en conflit : acpi et apm . Que faut-il faire ici ?

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

Selon votre système, vous aurez besoin, soit de acpi, soit de apm. Dans la suite de ce guide, nous supposons que votre portable est assez récent pour prendre l'ACPI en charge.

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

Maintenant, un des réglages les plus importants dans chacun des fichiers de configuration est de définir si le paquet Mode Tools va contrôler un réglage particulier ou pas. Ceci est important lorsque vous voulez combiner laptop-mode-tools avec d'autres services tels que cpufreqd . Dans ce exemple, vous devrez définir CONTROL_CPU_FREQUENCY=0 :

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 #/etc/init.d/laptop_mode start
root #rc-update add laptop_mode default

With systemd:

root #systemctl enable laptop-mode.service --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

Les préfixes AC/BATT_ et LM/NOLM_ peuvent se combiner (vous pouvez donc avoir le préfixe AC_LM_).

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

Attention !
le paquet sys-power/cpufreqd est masqué est sera retiré de l'arbre de Portage.

Installation

L'application cpufreqd vous permet de gérer les fréquences du processeur dans une approche plus granulaire que ce que laptop-mode-tools prend en charge. Mais avant de nous plonger dans l'installation de cpufreqd , jetons un coup d'œil aux options de la variable USE qu'il prend en charge.

Option de la variable USE Description Suggéré lorsque...
acpi Active la prise en charge de l'ACPI, autorisant ainsi cpufreqd à être notifié à propos des événements spécifiques et à gouverner l'énergie via l'interface ACPI votre portable n'est pas trop ancien (~ année 2003 et postérieure)
apm Active la prise en charge de l'ACPI, autorisant ainsi cpufreqd à être notifié à propos des événements spécifiques et à gouverner l'énergie via l'interface APM votre portable est très ancien
lm_sensors Active la prise en charge des capteurs matériel Linux ( via sys-apps/lm_sensors ), autorisant ainsi de commuter les profils sur la base des résultats retournés par les capteurs Vous souhaitez utiliser des événements avancés via les capteurs (lm_sensors)
nforce2 Active la prise en charge de NForce, autorisant ainsi cpufreqd à changer l'horloge de bus frontal (FSB) de NForce et la fréquence de la carte video Vous disposez d'une carte graphique NVidia basée sur le jeu de circuits NForce
nvidia Active la prise en charge de la configuration des cartes graphiques NVidia (via l'interface NVidia nvclock ), autorisant ainsi cpufreqd à changer la fréquence des cartes graphiques NVidia Vous disposez d'une carte graphique NVidia
pmu Active le greffon de l'unité de gestion de l'énergie de cpufreqd . Ceci permet au logiciel d'interroger l'interface de l'alimentation en énergie du noyau de Linux, obtenant ainsi plus de renseignements sur le niveau de charge de la batterie Votre portable ne prend pas en charge l'ACPI ou l'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 .

Avec les options de la variable USE configurées, il est temps d'installer cpufreqd .

root #emerge --ask cpufreqd

Configuration

Le programme cpufreqd surveille l'état de système via plusieurs greffons. En se basant sur le retour d'information de ces greffons, il ajuste la politique utilisée pour gouverner la fréquence du processeur.

cpufreqd peut être configuré en éditant le fichier /etc/cpufreqd.conf . Il comprend trois sections distinctes :

  1. La section [General]...[/General] contient les informations générales de configuration.
  2. La section [Profile]...[/Profile] définit les politiques entre lesquelles le daemon cpufreqd peut commuter. Cette section est très semblable aux informations que vous utilisez lorsque vous définissez la politique de fréquence du processeur à la main à l'aide de la commande cpufreq-set .
  3. La section [Rule]...[/Rule] est le cheval de trait du daemon cpufreqd, est définit quand le daemon décide de commuter vers un profil différent.

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]
  
[...]

Dans l'exemple précédent, le daemon cpufreqd commutera le système sur le profil On Demand High (aussi présenté dans l'extrait plus haut). Ce profil en lui-même utilise le gouverneur ondemand avec une fréquence minimale de 40%. (en d'autres termes, un processeur à 2 GHz, aura, avec cette politique, une fréquence minimum de 800 Hz).

Comme vous pouvez le voir, le programme cpufreqd offre une approche plus granulaire sur l'adaptation de la fréquence du processeur. Mais, il n'y a pas que cela, vous pouvez ajuster l'adaptation de fréquence du processeur sur d'autres bases. La configuration par défaut met à votre disposition un échantillon de règle pour quand vous regardez un film, c'est à dire, quand vous recherchez la performance maximum, sauf si la température du processeur s'élève trop haut.

Dès que vous avez configuré le daemon cpufreqd , il est temps de le lancer (et de vous assurez que le service est chargé automatiquement ). Assurez-vous que la gestion de la fréquence du processeur par d'autres outils (tels que laptop-mode-tools ) est désactivée !

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

Voir aussi

Ressources externes

  • 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

  1. Dominik Brodowski. Intel P-State driver, [https://www.kernel.org /doc/Documentation/cpu-freq/index.txt CPU frequency and voltage scaling code in the Linux(TM) kernel]. Retrieved 12 June 2016.