Si vous utilisez Ubuntu 14.04 et suivants sur un ordinateur portable, vous êtes concerné par deux problématiques :
- l’autonomie de la batterie
- l’échauffement des composants, qui va diminuer la durée de vie de votre matériel.
Voici donc quelques astuces pour améliorer tout ça.
1. Activez la mise en veille des cartes PCI et des ports USB
J’ai utilisé pendant longtemps TLP, un utilitaire plutôt bien fait mais qui rajoute différents scripts sur le système. Or le noyau Linux a déjà tout ce qu’il faut pour gérer intelligemment l’allumage et la mise en veille des périphériques internes de votre ordinateur, il est donc plus élégant d’utiliser directement ses capacités plutôt que d’y empiler une surcouche.
Powertop est un outil développé directement par Intel, d’abord comme outil d’audit et d’analyse de la consommation électrique, mais il peut également effectuer une configuration optimisée de votre système.
Ces trois commandes permettent de l’installer, de lancer la calibration du système et d’activer automatiquement toutes les options recommandées pour optimiser sa consommation :
sudo apt-get install powertop sudo powertop --calibrate && sudo powertop --auto-tune
Notez que pendant la calibration, le script va éteindre l’écran et effectuer différentes manipulations. Laissez l’ordinateur tranquille pendant ce temps.
À l’issue du processus, Powertop aura réglé toutes les options qu’il aura jugées nécessaires. Cependant, ces réglages seront perdus au redémarrage. Vous avez deux options pour les rendre permanents :
- une élégante et longue consistant à générer un rapport contenant les fichiers systèmes à modifier avec les paramètres à y ajouter (fichiers qui seront réinitialisés si les logiciels concernés sont mis à jour, il faudra alors recommencer).
- une moins élégante mais plus rapide qui consiste à charger powertop comme un démon au démarrage de l’ordinateur.
Ubuntu utilise encore init.d comme chargeur de services. Créez donc un nouveau service dans le répertoire /etc/init.d :
sudo gedit /etc/init.d/powertop
Enregistrez dans ce fichier :
#! /bin/sh -e DAEMON="/usr/sbin/powertop" #ligne de commande du programme DEAMON_OPT="--auto-tune" #argument à utiliser par le programme DAEMONUSER="root" #utilisateur du programme DEAMON_NAME="powertop" #Nom du programme (doit être identique à l'exécutable) PATH="/sbin:/bin:/usr/sbin:/usr/bin" #Ne pas toucher test -x $DAEMON || exit 0 . /lib/lsb/init-functions d_start () { log_daemon_msg "Starting system $DEAMON_NAME Daemon" start-stop-daemon --background --name $DEAMON_NAME --start --quiet --chuid $DAEMONUSER --exec $DAEMON -- $DEAMON_OPT log_end_msg $? } d_stop () { log_daemon_msg "Stopping system $DEAMON_NAME Daemon" start-stop-daemon --name $DEAMON_NAME --stop --retry 5 --quiet --name $DEAMON_NAME log_end_msg $? } case "$1" in start|stop) d_${1} ;; restart|reload|force-reload) d_stop d_start ;; force-stop) d_stop killall -q $DEAMON_NAME || true sleep 2 killall -q -9 $DEAMON_NAME || true ;; status) status_of_proc "$DEAMON_NAME" "$DAEMON" "system-wide $DEAMON_NAME" && exit 0 || exit $? ;; *) echo "Usage: /etc/init.d/$DEAMON_NAME {start|stop|force-stop|restart|reload|force-reload|status}" exit 1 ;; esac exit 0
puis testez le avec la commande :
sudo /etc/init.d/powertop start
Si tout se passe bien, vous verrez :
* Starting system powertop Daemon[ OK ]Donnez alors les droits d’exécution au script à chaque démarrage :
sudo chmod 0755 /etc/init.d/powertop && sudo update-rc.d powertop defaultsNe reste qu’à redémarrer votre système, à ouvrir powertop dans un terminal sudo powertop et à naviguer avec la touche →| Tab jusqu’à l’onglet « Tunables » où tous les paramètres doivent être à « Bon« .
2. Utiliser le dernier driver Intel
Intel a sorti un contrôleur de fréquence processeur récent appelé intel_pstate pour les processeurs Ivy et Sandy Bridge. Ce contrôleur n’est pas activé par défaut car son implémentation cause encore des bugs, mais il est plus efficace que le contrôleur ondemand lorsqu’il fonctionne.
Pour l’activer, il faut rajouter une option dans grubcfg :
sudo gedit /etc/default/grubDans le fichier, répérez la ligne de GRUB_CMDLINE_LINUX_DEFAULT et modifiez la comme suit :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=enable"Puis mettez à jour Grub :
sudo update-grubRedémarrez et vérifiez que intel_pstate est utilisé en lançant la commande :
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driverintel_pstate fournit le gouverneur powersave . Installez cpufrequtils et indicator-cpufreq pour pouvoir choisir entre les gouverneurs powersave et performance à la volée avec la commande :
sudo cpupower frequency-set -g performance sudo cpupower frequency-set -g powersave3. Monitorer la température processeur
Intel a également développé thermald, un daemon conçu pour travailler avec intel_pstate, afin de limiter l’échauffement du processeur et de gérer efficacement le rapport échauffement/performance. Il est présent dans les dépôts officiels
sudo apt-get install thermaldCe daemon ne dispose pas d’options de configuration, il ne fait que charger des des algorithmes adaptatifs de gestion de la fréquence processeur. Il sera chargé automatiquement au prochain redémarrage de votre machine.
4. Utiliser les derniers drivers de votre carte graphique
Linux 3.13 et Ubuntu 14.04 ont introduit une gestion des cartes graphique hybrides (technologie Optimus de Nvidia) beaucoup plus fine et intelligente, même si tout n’est pas parfait. Il est recommandé d’utiliser les derniers drivers propriétaires de votre carte graphique (nvidia-331-updates + nvidia-optimus dans le cas de Nvidia), car les pilotes libres sont régulièrement moins efficaces dans la gestion de l’énergie que les pilotes propriétaires.
Commentaires sur les auteurs de logiciels
Il existe différents projets logiciels libres pour gérer l’énergie et optimiser son système. Ceci fait la force de Linux et du monde Libre en général. Le problème est que cet aspect touche la couche bas niveau de l’ordinateur : le matériel. La gestion de l’énergie passe globalement par la mise en veille des composantes matérielles non utilisées et leur rallumage à la demande. Cependant, le matériel n’étant pas documenté (les constructeurs veulent éviter autant que possible l’espionnage industriel), les développeurs indépendants qui veulent travailler sur le matériel n’ont d’autre choix que de le rétro-ingénier pour essayer de comprendre comment il fonctionne. Ceci ne donne pas toujours de très bons résultats.
Il est dans ce cas plus efficace et plus sûr de faire confiance aux scripts et pilotes conçus par les fabricants directement, car ils sont les seuls à connaître leur matériel, même si leur code n’est pas toujours de très bonne qualité.