Comment augmenter l'autonomie de votre PC portable Linux en moins de 10 minutes ?

par Korben ✨ -

Ça vous dirait d’augmenter fortement l’autonomie de votre PC sous Linux ?

Ça tombe bien, car je viens de lire un article intéressant écrit par Hayden James qui présente l’optimisation de la durée de vie de la batterie sur les ordinateurs portables Linux grâce à TLP. Avec sa config aux petits oignons, Hayden a donc réussi à augmenter l’autonomie de son ThinkPad de 6-8h à plus de 10h et en suivant ses explications vous allez pouvoir en faire de même.

TLP (Tuning Linux Power) est donc un outil Linux capable d’optimiser l’alimentation des ordis portables récents, tout ça sans configuration complexe. Contrairement à son prédécesseur Laptop Mode Tools (LMT), TLP applique par défaut de nombreuses recommandations de PowerTop (l’outil d’analyse d’Intel) pour économiser l’énergie​. TLP tourne en arrière-plan et une fois installé, sait ajuster automatiquement des dizaines de paramètres système pour réduire la consommation (gestion fine du processeur, des disques, du réseau, du GPU, etc…).

Voici comment installer TLP :

# Ubuntu/Debian/Mint/Pop!_OS
sudo apt install tlp cpufrequtils

# Fedora/CentOS/RHEL
sudo dnf install tlp cpufrequtils

# Arch Linux et dérivés
sudo pacman -S tlp tlp-rdw

Ensuite, pour l’activer, rien de plus simple :

# Activation du service
sudo systemctl enable tlp.service
sudo systemctl mask systemd-rfkill.service
sudo systemctl mask systemd-rfkill.socket
sudo systemctl restart tlp.service

Y’a aussi la partie concernant la configuration du CPU pour les ordinateurs portables AMD. Les processeurs de type AMD Ryzen / Zen disposent en effet de nouvelles options de gestion de fréquence et de tension que TLP permet d’exploiter pour économiser de l’énergie sans trop sacrifier les performances. Je sais pas pour Intel, mais je crois que ça doit être équivalent. Je pense par exemple au pilotage des gouverneurs qui sont des algorithmes qui décident à quel niveau de fréquence le CPU doit tourner en fonction de la charge. Ce point spécifique qu’on s’y attarde, car c’est là que se joue une bonne partie de la magie de l’économie d’énergie.

Le gouverneur “ondemand” (celui qu’on utilise sur secteur) fonctionne selon une logique assez brutale mais efficace : dès qu’il détecte une charge CPU qui dépasse un certain seuil (typiquement 80%), il pousse immédiatement la fréquence au maximum. Ensuite, si la charge diminue, il réduit progressivement la fréquence par paliers. C’est comme si votre CPU était un pilote de Formule 1 qui écrase l’accélérateur dès qu’il voit une ligne droite, puis lève le pied progressivement dans les virages.

Le gouverneur “conservative” (celui qu’on préfère quand on est sur batterie) est beaucoup plus patient : au lieu de passer direct à la vitesse max, il augmente la fréquence palier par palier, et uniquement si la charge reste élevée sur plusieurs échantillons consécutifs (généralement entre 100 et 500ms selon la config du kernel). Il vérifie aussi plus souvent s’il peut réduire la fréquence. Là, c’est plutôt un conducteur économe qui accélère doucement et anticipe les ralentissements pour préserver son carburant.

Du coup, en termes concrets, si vous tapez un texte dans votre éditeur préféré avec ondemand actif, chaque frappe peut déclencher un pic à 3-4GHz alors qu’avec le mode conservative actif, le CPU va peut-être monter seulement à 1.2GHz puis 1.8GHz si nécessaire. Sur les processeurs modernes, cette différence représente facilement 3 à 8W de consommation en moins dans les tâches quotidiennes, soit 30-60 minutes d’autonomie supplémentaire sur une journée typique. Fallait y penser !!

Il ne faut pas non plus oublier l’activation du mode amd-pstate qui en mode passif permet au CPU de descendre à des fréquences idle plus basses (environ 400 MHz) et désactive le boost “Turbo Core” automatique… ce qui permet de réduire la consommation au repos​. Attention, cependant, ça peut aussi impacter les perfs de votre PC donc à vous de voir comment vous dosez tout ça.

Et pour les GPU AMD, c’est pareil avec une gestion de la mise en veille et des perfs via DPM (Dynamic Power Management) du pilote amdgpu. C’est une fois encore TLP qui s’occupe de tout. Cependant, attention pour les possesseurs de laptops sous Linux qui ont une carte NVIDIA, celle-ci peut profiter énormément de TLP, mais nécessitera probablement d’un paramétrage supplémentaire spécifique.

De plus, la longévité d’une batterie lithium-ion ne dépend pas uniquement de son usage immédiat, mais aussi de la manière dont elle est chargée et déchargée au fil du temps. Pour cela, TLP intègre des fonctions de “Battery Care” qui permettent de gérer intelligemment la charge pour minimiser l’usure chimique de la batterie​. Je pense par exemple au maintien de la batterie dans une plage de charge partielle située entre 20 et 80%, donc une configuration de profils de charge selon l’usage que vous avez de votre PC (voyageur, sédentaire…etc).

Bon, maintenant que TLP est installé chez vous et ronronne en arrière-plan, passons aux choses sérieuses à savoir la config qui va transformer votre portable en marathonien de l’autonomie.

En termes de fonctionnement, TLP utilise un fichier de configuration (/etc/tlp.conf) où chaque paramètre peut être ajusté. Par défaut, sans rien changer, il offre déjà un profil “économie d’énergie” agressif sur batterie (et un profil plus performant sur secteur), adapté à la plupart des machines​.

Attention quand même, toutes les fonctionnalités (particulièrement les seuils de charge batterie) ne sont pas supportées par tous les laptops. Donc renseignez vus avant. Voici la config recommandée selon Hayden, à adapter bien sûr à votre matériel :

# Configuration CPU
CPU_DRIVER_OPMODE_ON_AC=passive
CPU_DRIVER_OPMODE_ON_BAT=passive
CPU_SCALING_GOVERNOR_ON_AC=ondemand
CPU_SCALING_GOVERNOR_ON_BAT=conservative
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0

# Profils plateforme
PLATFORM_PROFILE_ON_AC=balanced
PLATFORM_PROFILE_ON_BAT=low-power

# GPU AMD
RADEON_DPM_PERF_LEVEL_ON_AC=auto 
RADEON_DPM_PERF_LEVEL_ON_BAT=low

# Gestion batterie
START_CHARGE_THRESH_BAT0=50 
STOP_CHARGE_THRESH_BAT0=80

Et pour vérifier que tout fonctionne bien, voici les commandes qu’offre TLP :

# Vérification du statut
sudo tlp-stat -p # Profils disponibles
sudo tlp-stat -b # Infos batterie
sudo tlp-stat -s # Statut général

Vous allez voir, c’est comme passer d’un Hummer qui consomme à une Toyota Prius. Et n’oubliez pas quand même de réduire la luminosité de votre écran et d’utiliser un environnement de bureau léger comme Xfce, LXDE ou MATE et de bien contrôler tous les processus et services qui tournent en arrière plan comme des mises à jours, de l’indexation de fichier, de la synchro cloud…etc qui pourraient bouffer la batterie petit à petit. Sur batterie, il est judicieux également de fermer les applications inutilisées plutôt que de les laisser minimisées si elles consomment du CPU.

Par exemple, fermer un navigateur laissé ouvert avec des onglets actifs évitera qu’il n’utilise le CPU en tâche de fond.

Des outils comme top vous aideront à repérer les processus qui consomment du CPU ou qui le réveillent fréquemment. D’ailleurs, TLP aide déjà en réduisant la fréquence CPU et en mettant en autosuspend certains périphériques, mais il ne peut pas fermer les programmes à votre place. Pensez aussi à désactiver les services au démarrage que vous n’utilisez pas (par exemple le service d’impression, le serveur web local, etc. s’ils ne sont pas nécessaires).

De plus, couper le Bluetooth, le Wi-Fi ou tout composant radio quand vous n’en avez pas besoin peut gagner quelques % de batterie​.

Bref, en combinant toutes ces astuces, vous pourrez vous créer un environnement propice aux économies d’énergie. Et à l’aide de TLP qui sera à vos côtés pour gérer le matériel de façon optimale, et quelques bonnes pratiques (fermer les apps inutiles, baisser la luminosité, utiliser un bureau léger, maintenir des seuils de charge), vous serez au taquet sur l’autonomie de votre ordinateur Linux. Vous pouvez même pour les plus barbus d’entre vous, vous faire un petit script shell pour basculer votre config TLP entre un mode ‘ultra-économie’ et mode ‘performance max’ selon vos besoins.

Alors qu’attendez-vous pour booster l’autonomie de votre portable Linux ? En tout cas, un grand merci à Hayden James pour cette mise en lumière de TLP !