Augmentez l'autonomie de votre batterie grâce à laptop-mode-tools !

Laptop-mode-tools est un ensemble de scripts côté utilisateur permettant de contrôler finement la gestion de l'énergie de votre portable. Il nécessite quelques connaissances de votre matériel avant tout (donc lspci et lsusb vous seront d'une grande aide ainsi que toutes les infos sur votre matériel que vous pourrez récolter !). L'activation correcte de ce mode peut vous faire gagner facilement 30 minutes d'autonomie selon l'état de votre batterie !

Le laptop_mode n'est pas le laptop-mode-tools : le laptop_mode est un outil directement intégré au noyau linux et désactivé de base sur Ubuntu car il était accusé de diminuer énormément la durée de vie des disques durs en faisant parquer les têtes de lecture trop souvent. Laptop-mode-tools vous propose aussi de régler ces paramètres d'économie d'énergie mais ils sont désactivés de base. Vous n'avez donc pas à vous inquiéter. Mais si vous savez ce que vous faites, vous pouvez toujours réactiver les options idoines !

D'après ce blueprint, laptop-mode-tools pose certains problèmes d'intégration, c'est pourquoi les développeurs d'Ubuntu sont en train d'intégrer proprement ses fonctionnalités utiles dans le système par défaut d'Ubuntu (pm-utils).

Installation

Il suffit d'installer le paquet laptop-mode-tools.

Utilisation

Modification des options

De base, le laptop-mode-tools ne fait presque rien, c'est à vous à lui dire précisément ce qu'il devra effectuer pour économiser de l'énergie (rassurez-vous, c'est simplifié ^^)

Une série de modules du laptop-mode-tools sont déjà prêts à être utilisés avec très peu de modifications. Tous les fichiers de config sont situés dans /etc/laptop-mode/conf.d/.

Vous devrez disposer des droits d'administration pour pouvoir créer ou modifier les fichiers de configuration dans le dossier /etc/laptop-mode/conf.d/.

Pour se placer dans le dossier depuis une console, entrez la commande suivante :

cd /etc/laptop-mode/conf.d

Gestion de l'énergie des cartes audio AC97

Uniquement si vous possédez une carte son de type AC97, modifiez le fichier ac97-powersave.conf.

Cherchez ensuite la ligne suivant :

# Control AC97 audio chipset power?
CONTROL_AC97_POWER=0

Pour l'activer, modifiez CONTROL_AC97_POWER=0 par CONTROL_AC97_POWER=1

Gestion de l'énergie des cartes audio HDA (très communes sur les laptops)

Modifiez le fichier intel-hda-powersave.conf.

A partir de Karmic, cette option a été activée nativement dans le noyau Linux. Cette section ne vous concerne pas sauf si vous désirez régler plus finement ces paramètres d'économie d'énergie
CONTROL_INTEL_HDA_POWER=0

=1 pour activer l'économie d'énergie de la carte son.

BATT_INTEL_HDA_POWERSAVE=1
LM_AC_INTEL_HDA_POWERSAVE=0
NOLM_AC_INTEL_HDA_POWERSAVE=0

Active ou non l'économie d'énergie de la carte son lorsque le pc passe sur batterie (BATT), sur secteur avec le laptop-mode actif (LM_AC) ou sur secteur avec le laptop-mode inactif (NOLM_AC).

INTEL_HDA_DEVICE_TIMEOUT=10

Nombre de secondes après lequel la carte son doit passer en veille.

INTEL_HDA_DEVICE_CONTROLLER=1

Activer ou non la désactivation de la carte son après le timeout de la variable précédente. Passez cette variable à 0 si le petit "clic" arrivant lorsque la carte son se désactive vous gêne.

Gestion de l'énergie de la carte réseau ethernet

Modifiez le fichier ethernet.conf. Il est très fortement probable que vous possédiez une carte réseau ethernet dans votre portable, ce module vous intéressera donc, il peut faire gagner de précieuses minutes d'autonomie !

# Control Ethernet settings?
CONTROL_ETHERNET=0

Modifiez-le à CONTROL_ETHERNET=1 pour rendre le module effectif.

# Handle throttling of the ethernet deivce under specific circumstances
BATT_THROTTLE_ETHERNET=1
LM_AC_THROTTLE_ETHERNET=0
NOLM_AC_THROTTLE_ETHERNET=0

Active le bridage de la vitesse de l'ethernet lorsque le pc passe sur batterie (BATT), sur secteur avec le laptop-mode actif (LM_AC) ou sur secteur avec le laptop-mode inactif (NOLM_AC).

THROTTLE_SPEED="slowest"

Gère la vitesse de l'ethernet quand il est bridé (plus c'est lent, moins ça consomme en théorie).

DISABLE_WAKEUP_ON_LAN=1

Désactive la fonction wake on lan (WOL) du pc portable. En général, cette option est désactivée de base sur les pc, mais il est possible de la réactiver dans le bios ou via linux. Vous pouvez laisser cette option telle quelle si vous ne vous servez pas du WOL.

ETHERNET_DEVICES="eth0"

Périphérique(s) ethernet concerné(s) par les économies d'énergie. Les différents périphériques sont séparés par des espaces. Pour connaître le nom de votre périphérique, un simple "ifconfig" en console vous fournira les infos nécessaires. Il y a de très fortes chances que votre périphérique ethernet soit référencé sous eth0 sur Ubuntu/Debian.

DISABLE_ETHERNET_ON_BATTERY=1

Désactive complètement l'ethernet sur batterie. Part du principe que si vous êtes sur batterie, vous êtes sûrement connecté par le wifi, si vous avez de l'ethernet, il y a de très fortes chances qu'une prise de courant soit aussi disponible !

Suspension automatique de l'USB

Modifiez le fichier usb-autosuspend.conf. Active automatiquement la suspension de l'usb pour éviter le gaspillage de l'énergie quand un périphérique USB est branché sur le portable.

À partir de la version 1.66 de laptop mode tools, le fichier de configuration à modifier est /etc/laptop-mode/conf.d/runtime-pm.conf. La syntaxe des options n'est pas exactement la même qu'indiqué ci-après mais le fichier est bien commenté (en anglais!), ce qui permet de retrouver les équivalences.
CONTROL_USB_AUTOSUSPEND=0

Passez cette variable à 1 pour activer l'économie d'énergie de l'USB.

AUTOSUSPEND_USBID_BLACKLIST=""

Liste des périphériques USB à ne pas inclure dans la politique de sauvegarde d'énergie. Pratique si vous avez une souris usb (par exemple) qui s'éteint complètement si l'autosuspend est activé… Pour obtenir le USBID de vos périphériques, la solution la plus simple est de tous les débrancher, de taper "lsusb" en console, qui vous affichera un résultat similaire au suivant :

$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 046d:c051 Logitech, Inc. G3 (MX518) Optical Mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05ca:1837 Ricoh Co., Ltd 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

La colonne nous intéressant est celle des ID (ex : ID 046d:c051), les "Linux Foundation 2.0 root hub" sont à ignorer, ce sont les ports non branchés.

Une fois ceci fait, branchez les périphériques USB un à un et lancez à chaque fois lsusb, vous constituerez de cette manière une liste des périphériques.

Il est conseillé d'activer cette option sans filtre, de brancher tous vos périphériques, de ne pas y bouger pendant une minute et de contrôler lesquels ne sont plus utilisables sans les débrancher et les rebrancher. Ceux-là sont à indiquer dans la variable AUTOSUSPEND_USBID_BLACKLIST de la manière suivante :

AUTOSUSPEND_USBID_BLACKLIST="046d:c025 0123:abcd"
# Trigger auto-suspension of the USB deivce under conditional circumstances
BATT_SUSPEND_USB=1
LM_AC_SUSPEND_USB=0
NOLM_AC_SUSPEND_USB=0

Activer l'autosuspension des périphériques USB lorsque le pc passe sur batterie (BATT), sur secteur avec le laptop-mode actif (LM_AC) ou sur secteur avec le laptop-mode inactif (NOLM_AC).

AUTOSUSPEND_TIMEOUT=2

Nombre de secondes après lesquelles les périphériques usb doivent passer en veille.

Contrôle de la luminosité de l'écran

Modifiez le fichier lcd-brightness.conf. Si Ubuntu ne gère pas correctement la luminosité de votre écran ou si vous jugez celle-ci insuffisante, cet outil est fait pour vous !

CONTROL_BRIGHTNESS=1

Activez le contrôle de la luminosité.

Ensuite ajustez les variables suivantes en fonction de vos besoins :

BATT_BRIGHTNESS_COMMAND="echo [value]"
LM_AC_BRIGHTNESS_COMMAND="echo [value]"
NOLM_AC_BRIGHTNESS_COMMAND="echo [value]"
BRIGHTNESS_OUTPUT="/proc/acpi/video/VID/LCD/brightness"

Remplacez les [values] par une valeur contenue dans le fichier /proc/acpi/video/VID/LCD/brightness (cat /proc/acpi/video/VID/LCD/brightness pour le voir).

Si ce fichier n'existe pas, alors, vous avez peut-être un fichier /sys/class/backlight/…/brightness (remplacez "…" par le répertoire situé dans /sys/class/backlight/, pour le voir : ls /sys/class/backlight/). Pour voir la luminosité maximale que vous pouvez appliquer à votre écran, faites un cat /sys/class/backlight/…/max_brightness

Modifiez alors le contenu de vos variables de la sorte :

BATT_BRIGHTNESS_COMMAND="echo [value]"
LM_AC_BRIGHTNESS_COMMAND="echo [value]"
NOLM_AC_BRIGHTNESS_COMMAND="echo [value]"
BRIGHTNESS_OUTPUT="/sys/class/backlight/.../brightness"

(N'oubliez pas de modifier ce qu'il faut où il faut !)

Si vous devez passer par un programme externe, vous devez utiliser les commandes directement au lieu des "echo" du code précédant :

BATT_BRIGHTNESS_COMMAND="smartdimmer --set 50"
LM_AC_BRIGHTNESS_COMMAND="smartdimmer --set 100"
NOLM_AC_BRIGHTNESS_COMMAND="smartdimmer --set 100"
BRIGHTNESS_OUTPUT="/dev/null"

Vous devrez peut-être installer apt://nvclock qui dispose de l'outil smartdimmer qui permet de régler une valeur entre 30 et 100 pour ajuster la luminosité de l'écran !

Suspension du bluetooth

Modifiez le fichier bluetooth.conf. Si vous n'utilisez pas le bluetooth lorsque vous êtes sur batterie, ce serait pas mal de le désactiver complètement ! Si vous n'avez pas de bluetooth, cette section ne vous concerne pas :)

CONTROL_BLUETOOTH=0

Passez cette variable à 1 pour activer la suspension du bluetooth

BATT_ENABLE_BLUETOOTH=0

Activer oui (1) ou non (0) le bluetooth sur batterie.

AC_ENABLE_BLUETOOTH=1

Activer oui (1) ou non (0) le bluetooth sur secteur.

BLUETOOTH_INTERFACES="hci0"

Interfaces bluetooth à désactiver (voir le paragraphe concernant l'ethernet !)

Arrêter l'interrogation du lecteur CD/DVD/BD

Modifiez le fichier hal-polling.conf. L'interrogation des lecteurs CD se fait automatiquement afin de pouvoir contrôler si un disque a été inséré dans le lecteur. Si vous désactivez cette surveillance, vos disques ne seront plus ouverts automatiquement, vous devrez le faire manuellement (simplement cliquer sur l'icône de votre lecteur dans les raccourcis de gnome, pas trop dur, ça va ? ^^). Inutile de dire que si vous ne possédez pas de lecteur CD/DVD/BD, cette section ne vous concerne pas :)

CONTROL_HAL_POLLING=0

=1 pour activer le contrôle de l'interrogation

BATT_DISABLE_HAL_POLLING=1

Désactiver l'interrogation sur batterie (Oui=1, Non=0)

AC_DISABLE_HAL_POLLING=0

Désactiver l'interrogation sur secteur (Oui=1, Non=0)

HAL_POLLING_DEVICES="/dev/sg1"

Les lecteurs sur lesquels activer la surveillance de l'interrogation. Ces lecteurs se trouvent dans /dev, ils sont en général représentés par les fichiers sgX ou srX. Mettez ici une liste des accès absolus vers ces fichiers séparés par des espaces (ex : HAL_POLLING_DEVICES="/dev/sg1 /dev/sr0")

Economie d'énergie sur les puces wifi Intel

Modifiez le fichier wireless-iwl-power.conf. Les drivers Intel étant particulièrement bien optimisés pour les économies d'énergie, il est possible de définir une politique d'économie un peu plus efficace très facilement !

Si votre pc est certifié "Intel Centrino", jusqu'aux Core 2 duo inclus, votre pc possède obligatoirement une puce wifi intel ! Sinon, il faut le vérifier avec un lspci.

CONTROL_IWL_POWER=0

=1 pour activer l'économie d'énergie du wifi

IWL_AC_POWER=0
IWL_BATT_POWER=3

Ces deux options permettent de régler le mode d'économie d'énergie de la carte Wifi (un chiffre entier de 0 à 5, 0=pas d'économie, 5=mode d'économie maximal). Il est à noter que ces paramètres jouent sur la qualité du signal wifi que vous recevrez ou transmettrez !

La première variable contrôle le mode d'économie d'énergie sur secteur, la deuxième sur batterie.

Economie d'énergie sur les contrôleurs SATA Intel

Modifiez le fichier intel-sata-powermgmt.conf.

Pour savoir si vous possédez un contrôleur Sata Intel, tapez lspci en console. Cherchez ce genre de ligne dans le résultat affiché :

$ lspci
00:1f.2 SATA controller: **Intel** Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)

Si c'est du Intel, vous êtes concerné par cette économie d'énergie !

CONTROL_INTEL_SATA_POWER=0

Il n'y a rien d'autre à faire que d'activer cette option (=1)

Désactiver les sorties vidéo inutiles

Modifiez le fichier video-out.conf. Désactiver les sorties vidéo peut avoir un impact positif sur l'autonomie de votre portable, un port désactivé ne consommant pas d'énergie ! (ne fût-ce que pour contrôler qu'aucun écran n'y est branché !)

CONTROL_VIDEO_OUTPUTS=0

=1 pour activer ce module !

BATT_DISABLE_VIDEO_OUTPUTS="TMDS VGA"
LM_AC_DISABLE_VIDEO_OUTPUTS="TMDS VGA"
NOLM_AC_DISABLE_VIDEO_OUTPUTS=""

Liste des connecteurs à désactiver. Pour obtenir leurs noms, ouvrez une console et tapez xrandr qui vous affichera un résultat similaire à ceci :

$ xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1280 x 1280
LCD **connected** 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
   1280x800       60.0*+
   1280x768       60.0  
   1280x720       60.0  
...
DFP1 **disconnected** (normal left inverted right x axis y axis)
CRT1 **disconnected** (normal left inverted right x axis y axis)
TV **disconnected** (normal left inverted right x axis y axis)

Les sorties "disconnected" peuvent être mises dans la liste, ce qui donne dans ce cas :

BATT_DISABLE_VIDEO_OUTPUTS="DFP1 CRT1 TV"
LM_AC_DISABLE_VIDEO_OUTPUTS="DFP1 CRT1 TV"
NOLM_AC_DISABLE_VIDEO_OUTPUTS=""

Active ou non l'économie d'énergie lorsque le pc passe sur batterie (BATT), sur secteur avec le laptop-mode actif (LM_AC) ou sur secteur avec le laptop-mode inactif (NOLM_AC).

Possesseur d'un eeepc (ou assimilé) ?

Modifiez le fichier eee-superhe.conf Sur windows XP, un logiciel nommé "superHE" permet d'économiser de l'énergie sur batterie en bridant la vitesse du processeur et en l'overclockant sur secteur. La même fonction est disponible dans le noyau linux, dans le module "eeepc_laptop"

CONTROL_SUPERHE=0

=1 pour activer le SuperHE

BATT_SUPERHE=2
LM_AC_SUPERHE=0
NOLM_AC_SUPERHE=0

Change le mode superHE lorsque le pc passe sur batterie (BATT), sur secteur avec le laptop-mode actif (LM_AC) ou sur secteur avec le laptop-mode inactif (NOLM_AC). 0 = performance, 1 = normal, 2 = économie d'énergie.

Effacement de terminal

Modifiez le fichier terminal-blanking.conf. Permet la désactivation partielle des terminaux virtuels sous Linux (Ubuntu en fournis 6 de base).

CONTROL_TERMINAL=0

=1 pour activer le module

TERMINALS="/dev/tty1"

Chemin vers le premier périphérique terminal virtuel, si vous en possédez plusieurs, il est inutile de tous les mettre, ils seront tous désactivés d'un coup.

BATT_TERMINAL_BLANK_MINUTES=1
BATT_TERMINAL_POWERDOWN_MINUTES=2
LM_AC_TERMINAL_BLANK_MINUTES=10
LM_AC_TERMINAL_POWERDOWN_MINUTES=10
NOLM_AC_TERMINAL_BLANK_MINUTES=10
NOLM_AC_TERMINAL_POWERDOWN_MINUTES=50

Contrôle les timers de désactivation des terminaux lorsque le pc passe sur batterie (BATT), sur secteur avec le laptop-mode actif (LM_AC) ou sur secteur avec le laptop-mode inactif (NOLM_AC). Les variables au suffixe "_BLANK" contrôlent le nombre de minutes après lesquelles un terminal doit être effacé (l'écran devient noir) et celles au suffixe "_POWERDOWN", le nombre de minutes après lesquelles un terminal effacé doit être éteint (écran éteint). Pour qu'un terminal soit complètement éteint, vous devez donc additionner les deux valeurs pour savoir combien de temps ça prend :)

Scripts perso de gestion de l'énergie

Cette option nécessite que la variable
CONTROL_START_STOP

du fichier

conf.d/start-stop-programs.conf

soit initialisée à 1

Si vous avez déjà des astuces pour économiser de l'énergie sur votre portable, vous pouvez très bien les récupérer afin de les faire exécuter à différents moments ! dans /etc/laptop-mode se trouvent différents répertoires dont voici la signification :

  • batt-start → ensemble de scripts à exécuter quand on entre en mode batterie
  • batt-stop → ensemble de scripts à exécuter quand on sort du mode batterie
  • lm-ac-start → ensemble de scripts à exécuter quand on entre en mode sur secteur
  • lm-ac-stop → ensemble de scripts à exécuter quand on sort du mode sur secteur
  • nolm-ac-start → ensemble de scripts à exécuter quand on entre en mode sur secteur au repos
  • nolm-ac-stop → ensemble de scripts à exécuter quand on sort du mode sur secteur au repos</file>

Vous devez mettre un script acceptant start ou stop comme paramètre. La gestion de ces scripts est assez particulière, par exemple, si vous voulez exécuter un script lorsque vous êtes sur batterie, vous devez le placer dans le répertoire batt-start, ce script sera exécuté avec le paramètre start, si vous reconnectez votre pc sur le secteur, ce script sera réexécuté avec le paramètres stop. Vous ne devez pas placer ce script dans deux répertoires !

Pour éviter des pertes de données, créez un lien symbolique vers votre fichier script au lieu de le copier physiquement dans le répertoire approprié (grâce à la commande ln -s).

Voici un exemple de script : Il sert à désactiver une série de modules dont vous ne vous servez pas quand vous êtes sur batterie (le firewire, la gestion des manettes de jeux, de ma webcam) et à les réactiver quand vous passez sur secteur. Ce script est placé dans batt-start.

Vous devez adapter la liste des modules en fonction de votre matériel.
#!/bin/sh
if [ $1 = "start" ]
then
	rmmod ohci1394
	rmmod ieee1394
	rmmod joydev
	rmmod videodev
	rmmod uvcvideo
	rmmod v4l1_compat
else
	modprobe ohci1394
	modprobe ieee1394
	modprobe joydev
	modprobe videodev
	modprobe uvcvideo
	modprobe v4l1_compat
fi

Voir aussi

  • laptop-mode-tools.txt
  • Dernière modification: Le 28/04/2018, 11:18
  • (modification externe)