Voici mes astuces pour augmenter la durée de vie sur batterie sous Linux. Bien sûr, ça vient en complément de la réduction de luminosité, etc...
- Je n'ai pas de périphérique Bluetooth -> blacklist bluetooth dans un fichier de /etc/modprobe.d
- usbcore.autosuspend=1 dans un fichier de /etc/modprobe.d
- /etc/sysctl.conf : vm.swappiness = 0 -> Ne swap que contraint et forcé (pour augmenter la durée de vie de mon SSD (ça n'a pas trop à voir mais c'est au même endroit sur mon portable))
- Dans un fichier de /etc/pm/config.d : SATA_ALPM_ENABLE=true (Agressive Link Power Management sur le bus SATA)
- Dans un fichier de /etc/pm/power.d exécutable (ce script est appelé à chaque fois qu'on branche/débranche le câble) :
#!/bin/bash
case $1 in
true)
### Passage en mode batterie ###
# Mode laptop (groupement des accès disques)
echo 5 > /proc/sys/vm/laptop_mode
# Economie sur les bus SATA
for h in /sys/class/scsi_host/host* ; do
echo min_power > $h/link_power_management_policy
done
# E/S disque toutes les 15 secondes (défaut 5)
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
# Eclairage écran à 50%
# echo 5 > /sys/devices/virtual/backlight/acpi_video0/brightness
# USB powersaving
for i in /sys/bus/usb/devices/*/power/autosuspend ; do
echo 1 > $i
done
# Gestion énergétique au runtime -> me pose problème avec la souris qui ne fonctionne plus. Il faut creuser pour savoir quels devices désactiver
#for i in /sys/bus/*/devices/*/power/control ; do
# echo auto > "$i"
#done
# Carte son en mode économie d'énergie (arrêt après 5 secondes d'inactivité)
echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller
echo 5 > /sys/module/snd_hda_intel/parameters/power_save
;;
false)
### Retour sur alimentation ###
echo 0 > /proc/sys/vm/laptop_mode
for h in /sys/class/scsi_host/host* ; do
echo max_performance > $h/link_power_management_policy
done
echo 500 > /proc/sys/vm/dirty_writeback_centisecs
# echo 10 > /sys/devices/virtual/backlight/acpi_video0/brightness
for i in /sys/bus/usb/devices/*/power/autosuspend ; do
echo 2 > $i
done
done
#for i in /sys/bus/*/devices/*/power/control ; do
# echo on > "$i"
#done
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
echo N > /sys/module/snd_hda_intel/parameters/power_save_controller
;;
esac
On peut aussi jouer sur l'option de montage noatime (ou relatime) dans le /etc/fstab, voire décharger des modules quand on passe sur batterie.
Voir aussi :
http://la-vache-libre.org/tlp-0-6-disponible-retour-sur-un-logiciel-de-gestion-dalimentation-interessant/ et powertop