PowerTOP pour optimiser la consommation d'énergie de votre portable

From Manjaro Linux
Jump to: navigation, search

Retour à l'accueil


Vue d'ensemble

La durée de vie de la batterie d'un portable peut éventuellement être prolongée par l'utilisation de PowerTOP, un outil de diagnostic utilisé pour identifier et signaler les problèmes liés à la consommation d'énergie et la gestion de celle-ci. La façon dont PowerTOP peut être utilisé pour optimiser la consommation d'énergie et sa gestion de façon permanente - et par conséquent prolonger l'autonomie - va dépendre de la version du noyau et du chipset utilisé.

Installer PowerTOP

La commande pour installer PowerTOP est la suivante :

sudo pacman -S powertop 


Il va aussi être nécessaire de télécharger Ethtool - un utilitaire de contrôle des pilotes du réseau et du matériel - étant donné qu'il peut être utilisé dans ce processus d'optimisation. Pour ce faire, entrez la commande :

sudo pacman -S ethtool

Identifier le noyau existant en cours d'utilisation

Kernel ID2.png


Si le noyau en cours d'exécution dans Manjaro n'est pas immédiatement visible, il peut être obtenu en ouvrant le terminal et en entrant la commande suivante :

uname -r

Comme on peut le voir dans l'exemple ci-contre, le noyau en cours d'exécution dans cette Manjaro est le 3.6.0-1-MANJARO. Ces informations ne sont pas arbitraires, et chaque partie a une signification :

3 indique la version ; 6 indique la révision majeure; 0 indique la révision mineure; 1 indique la correction d'erreurs; et Manjaro indique la distribution spécifique utilisée.

Utiliser PowerTop pour diagnostiquer sa consommation

Astuce: Lors de la première utilisation PowerTOP, il est utile de noter les informations fournies dans les onglets Summary et Tuning, car celles-ci peuvent être utilisées ultérieurement à fin de comparaison pour vérifier le succès de l'optimisation permanente de votre système. Lorsque vous générez un fichier HTML, enregistrez-le à un autre endroit de votre choix pour le sauvegarder, sinon il peut être écrasé lors de la génération d'un autre diagnostic HTML.

Quelle que soit la version du noyau utilisée, pour simplement produire un diagnostic de la consommation d'énergie existante, entrez la commande suivante dans le terminal :

sudo powertop


La sortie sera divisée en plusieurs onglets dans le terminal, ceux-ci pouvant être sélectionnés en appuyant sur les touches fléchées droite ou gauche, selon le cas. Le dernier onglet, appelé 'Tunables', est particulièrement intéressant car il liste les options disponibles pour réduire la consommation d'énergie. Pour fermer et quitter le diagnostic à tout moment, il suffit d'appuyer sur la touche <esc>.


Par ailleurs, PowerTOP peut également être utilisé pour créer un fichier HTML contenant le diagnostic et les méthodes d'optimisation proposées. Lorsqu'il est généré, ce fichier sera automatiquement enregistré dans votre dossier d'accueil (home), qui contient également des dossiers tels que 'Documents', 'Musique', et 'Réléchargements'... Pour créer le fichier HTML, entrez la commande suivante dans un terminal :

sudo powertop -html


Le processus peut prendre quelques instants. Une fois terminé, le fichier HTML peut être ouvert en utilisant votre navigateur Internet favori. A nouveau, le fichier contiendra plusieurs onglets.


Méthode d'Optimisation Permanente pour le noyau 3.4

Le processus simple (mais un peu long) ci-dessous devrait apporter des changements permanents d'optimisation pour les portables utilisant le noyau 3.4, en particulier s'ils sont dotés de chipsets Intel. Autrement, ceux qui utilisent une version 3.5 du noyau ou ultérieure - et/ou qui utilisent des chipsets autres qu'Intel (par exemple AMD) - peuvent utiliser la deuxième méthode indiquée, plus complexe (mais plus rapide). Cependant, pour ceux qui utilisent le noyau 3.4 et sont équipés d'un chipset Intel :

1. Rechargez complètement votre ordinateur portable ;

2. Débranchez-le ;

3. Ouvrez le terminal, et lancez PowerTOP en entrant la commande suivante :

sudo powertop


4. Laissez le portable inactif pendant au moins 60 minutes ;

5. Fermez le terminal et redémarrez l'ordinateur portable ;

6. Comparez la gestion de l'alimentation actuelle avec les résultats précédents en exécutant à nouveau PowerTOP.


Méthode d'Optimisation Permanente pour le noyau 3.5 et ultérieur

note: Le message d'erreur suivant peut s'afficher lorsque vous créez le fichier HTML PowerTOP : Cannot load from file /var/cache/powertop/saved_parameters.powertop. Il peut être ignoré en toute sécurité, cela n'affectera en aucune façon le processus.


Actuellement, PowerTOP n'effectue pas automatiquement des modifications permanentes lorsque vous utilisez la version du noyau 3.5 et les versions ultérieures. En outre, il peut ne pas fonctionner pour les ordinateurs portables utilisant des puces autres que celles fabriquées par Intel. Cependant, il est toujours possible de créer un script de démarrage qui contient les commandes d'optimisation appropriées qui seront exécutés automatiquement lors du démarrage.



Créer le fichier HTML PowerTOP et le script de démarrage

Le fichier HTML généré par PowerTOP contient les commandes d'optimisation nécessaires, à utiliser dans le script de démarrage. Pour créer le fichier HTML, entrez la commande suivante dans le terminal:

sudo powertop -html


Le processus peut prendre quelques instants. A la fin, il va être nécessaire de créer le script de démarrage réel, nommé startup.sh. La syntaxe de la commande pour créer le script de démarrage est la suivante :

sudo [text editor] /usr/local/bin/startup.sh


Par exemple, si vous voulez modifier le fichier depuis le terminal en utilisant nano (un éditeur de texte standard basé sur le terminal), alors entrez :

sudo nano /usr/local/bin/startup.sh

Autrement - si vous avez installé la version complète de Manjaro (donc pas la Net-Edition) - vous pouvez trouver plus facile d'utiliser l'éditeur de texte gedit à la place. Pour utiliser gedit à la place, la commande est :

sudo gedit /usr/local/bin/startup.sh


Ensuite, quittez le terminal en laissant ouvert le script de démarrage vide.


Editer le script de démarrage

Attention: Assurez-vous que seules les commandes sont transférées à partir du fichier HTML de PowerTOP, et pas les explications qui les précèdent...


L'étape suivante consiste à transférer les commandes d'optimisation répertoriées dans le fichier HTML de PowerTOP dans le script de démarrage:

1. En utilisant votre gestionnaire de fichiers, localisez le fichier PowerTOP tml.html situé dans votre répertoire Home, et ensuite ouvrez-le en utilisant votre navigateur favori ;

2. Une fois le fichier ouvert dans votre navigateur, cliquez sur l'onglet Tuning pour l'afficher. Un exemple de ce à quoi il peut ressembler est donné ci-dessous :

PowerTOPb.png


3. Comme illustré, l'onglet Tuning se compose de deux colonnes. Chaque ligne dans la première colonne (à gauche) fournit une suggestion de ce qui pourrait être fait pour optimiser la consommation. Chaque ligne de la seconde colonne (à droite) fournit la commande réelle qui peut être utilisé dans le script de démarrage pour mettre cette suggestion en pratique. Par conséquent, il va être nécessaire de copier et coller une par une chaque commande de la seconde colonne seulement dans le script de démarrage vide. A titre d'exemple, un script complet de démarrage automatique a été affiché ci-dessous. Il est basé sur l'onglet Tuning de l'exemple de PowerTOP donné ci-dessus :


Attention: Les commandes fournies ici sont spécifiques à l'ordinateur portable utilisé par l'auteur, et sont présentés ici à titre purement illustratif. Elles ne doivent pas être simplement copiées et collées dans votre propre script de démarrage.


iw dev wlan0 set power_save off
echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy';
echo '0' > '/proc/sys/kernel/nmi_watchdog';
echo '1500' > '/proc/sys/vm/dirty_writeback_centisecs';
echo '1' > '/sys/module/snd_hda_intel/parameters/power_save';
echo 'auto' > '/sys/bus/usb/devices/2-6/power/control';
echo 'auto' > '/sys/bus/usb/devices/5-1/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.3/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:02.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.7/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1b.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:02:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.1/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.1/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.1/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.2/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.4/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.7/power/control';
ethtool -s eth0 wol d;


Dès que toutes les commandes d'optimisation ont été copiées, collées, et vérifiées, sauvez vos modifications et fermez le fichier en :

  • nano : appuyant sur CTRL et 'x' pour quitter, 'y' pour sauver, et Entrée pour finir, ou
  • gedit : sélectionnant l'option "Enregistrer" et en fermant ensuite la fenêtre.


Rendre Exécutable le Script de Démarrage

Pour que les commandes d'optimisation soient exécutées, il faut que le script de démarrage lui-même soit rendu exécutable. De cette façon, il sera exécuté comme n'importe lequel des autres programmes appelés lors du démarrage. Pour rendre exécutable le script de démarrage, entrez la commande suivante dans le terminal :

sudo chmod +x /usr/local/bin/startup.sh


Si vous le souhaitez, il est possible d'exécuter le script de démarrage immédiatement dans le terminal. Cela présente l'avantage de permettre d'identifier les commandes qui ne peuvent pas fonctionner (par exemple en raison d'un mauvais emplacement spécifié, ou en raison d'un utilitaire nécessaire tel que ethtool n'ayant pas été installé). Pour ce faire, entrez la commande suivante:

sudo /usr/local/bin/startup.sh


À l'occasion, il peut être nécessaire de ré-éditer le script de démarrage, de modifier ou de supprimer les commandes incorrectes, et/ou de télécharger des utilitaires spécifiques. Cependant, lorsque ceci est effectué, il n'est pas nécessaire de rendre à nouveau le script exécutable.


Exécuter le Script de Démarrage dès le lancement avec rc.local

Tout ce qui est nécessaire, c'est de le placer le fichier rc.local, qui est lui-même automatiquement appelé au lancement..


Ouvrir le fichier rc.local

La syntaxe pour ouvrir le fichier rc.local est :

sudo [text editor] /etc/rc.local


Par exemple, si vous voulez visualiser ce fichier depuis le terminal en utilisant nano (un éditeur de texte standard basé sur le terminal), alors entrez :

sudo nano /etc/rc.local

Autrement - si vous avez installé la version complète de Manjaro (donc pas la Net-Edition) - vous pouvez trouver plus facile d'utiliser l'éditeur de texte gedit à la place. Pour utiliser gedit à la place, la commande est :

sudo gedit /etc/rc.local

Editer le fichier rc.local

Dès son ouverture, copiez et collez les commandes suivante à la fin du fichier :

/usr/local/bin/startup.sh
exit


Dans l'exemple suivant, le fichier rc.local a été modifié avec les commandes nécessaires pour appeler le script de démarrage exécutable qui va optimiser la gestion de l'alimentation. Les commandes elles-mêmes ont été surlignées en vert à fin d'illustration :

#!/bin/bash
#
# /etc/rc.local: Local multi-user startup script.
#
/usr/local/bin/startup.sh
exit


Une fois le fichier rc.local modifié, sauvez vos modifications et fermez le fichier en :

  • nano : appuyant sur CTRL et 'x' pour quitter, 'y' pour sauver, et Entrée pour finir, ou
  • gedit : sélectionnant l'option "Enregistrer" et en fermant ensuite la fenêtre.


Redémarrez votre système pour faire prendre en compte vos changements. Dès le redémarrage, comparez la gestion actuelle de l'alimentation avec la précédente en lançant à nouveau PowerTOP et en étudiant les onglets Summary et Tuning.


Exécuter le Script de Démarrage dès le lancement avec SystemD

Depuis Manjaro 0.8.9, rc.local est remplacé par systemD.

Pour activer un script au démarrage, il faut donc:

  • Appliquer la méthode précédente puis créer un service qui lance rc.local qui lancer ensuite le script powertop,
  • Créer un service qui lance directement le script powertop


Créer un service

La syntaxe pour créer le service :

sudo [text editor] /etc/systemd/system/monService.service


Mettre ensuite dedans:

[Unit]
Description=Description de ce que fait le service
[Service]
Type=oneshot
ExecStart=/chemin/vers/le/script
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target


Vérifier le bon fonctionnement du service

Vérifions le bon fonctionnement du service, cette commande lance le service:

sudo systemctl start monService.service

Si le service fonctionne on peux l'activer à chaque démarrage.

Activer le service au démarrage

Pour l'activer le service à chaque démarrage:

sudo systemctl enable monService.service

Le service sera maintenant lancé à chaque démarrage avec les droits root.


Retour à l'accueil