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 !
Il suffit d'installer le paquet laptop-mode-tools.
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/
.
/etc/laptop-mode/conf.d/
.
Pour se placer dans le dossier depuis une console, entrez la commande suivante :
cd /etc/laptop-mode/conf.d
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
Modifiez le fichier intel-hda-powersave.conf
.
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.
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 !
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.
/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.
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 !
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 !)
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")
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.
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)
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).
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.
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 :)
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 batteriebatt-stop
→ ensemble de scripts à exécuter quand on sort du mode batterielm-ac-start
→ ensemble de scripts à exécuter quand on entre en mode sur secteurlm-ac-stop
→ ensemble de scripts à exécuter quand on sort du mode sur secteurnolm-ac-start
→ ensemble de scripts à exécuter quand on entre en mode sur secteur au reposnolm-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.
#!/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