Comment réduire sa consommation électrique avec GNU/Linux ? image/svg+xml Comment réduire sa consommation électrique avec GNU/Linux ?   Michael OpdenackerJDLL 2023, Lyon Comment réduire sa consommationélectrique avec GNU/Linux ? Passionné de logiciels libresFondateur de la société BootlinIngénierie en systèmes embarquésSiège social dans l'agglomération lyonnaise ;-)Auteur de supports de formation libres(Linux embarqué, noyau Linux, réductiondu temps de démarrage...)Contributeur au Linux Ecology HOWTOdans les années 2000. Michael Opdenacker Suite à la crise énergétique et à l'urgence écologiqueBesoin d'économiser l'énergie plutôt que d'en produire plusGNU/Linux permet d'utiliser son matériel plus longtempsProjet de mettre à jour le "Linux Ecology HOWTO" Pourquoi cette présentation ? Avoir plus d'autonomie sur batterie,prolonger sa durée de vieSavoir faire hiberner son pingouinPartager nos meilleures pratiques Motivations plus techniques Matériel cible principal : ordinateurs portables sous GNU/LinuxAussi : ordinateurs de bureau, serveursAussi (un peu) : cartes électroniques embarquées Objet de cette présentation Mesurez votre consommationMise en veille, mise en hibernationGestion de l'écranGestion de la fréquenceIdentifier les programmes lesplus consommateurs Sujets abordés (1) Mesurez votre consommation Désactiver les périphériques non utilisésRécupérer la chaleur générée Sujets abordés (2) Licence Creative Commons - BY - SA - 4.0https://creativecommons.org/licenses/by-sa/4.0/       Raspberry Pi 3 Model B V1.2 Power HDMI Audio USB 2x USB 2x ETHERNET DSI (DISPLAY) CSI (CAMERA) GPIO © Raspberry Pi 2015 Des questions ?michael.opdenacker.org@bootlin.com Lien vers la présentation:https://bootlin.com/pub/conferences/2023/jdll/ Présentation réalisée avec les logiciels libres Sozi et InkscapeImages: https://bootlin.com/pub/conferences/2023/jdll Procurez-vous un wattmètreNeuf : environ 20 EURPas génial pour la conso totale d'unPC (kW), mais bien pour la consoinstantannée (W)Vous servira pour les autres appareilsde votre domicile. Mettez votre système en veille Presque tout est éteint, sauf la RAMConsommation d'énergie négligeable pour le wattmètre. Sauf si vous êtes sur batterie.Facile à faire dès que vous laissez votre ordi.- Sur ligne de commande- Avec systemd Comment mettre votre système en veille ? Normalement facile sur toute distro graphiqueDepuis la ligne de commande (avec systemd):systemctl suspendou commande bas niveau (ne verrouille pas l'écran):sudo sh -c "echo mem > /sys/power/state" Comment réveiller votre système ? Toujours plus facile de s'endormir !Sur PC, réveiller en appuyant sur le bouton d'allumagedes fois, en bougeant une souris USBLes sources qui peuvent réveiller votre PC se trouvent dans/sys/class/wakeup/Plus de détails surhttps://wiki.archlinux.org/title/Power_management/Wakeup_triggersSur un serveur à distance, pas de solutionsimple pour sortir de veille. En résumé Mettez votre pingouin en veilleà chaque fois que vous le quittezPassez en hibernation la nuit etpar une prise, coupez tous les périphériques,y compris la box Internet (si possible)En voyage, utilisez l'hibernation pour prolongerla durée de vie de votre batterie.La fréquence du CPU s'adapte bien àl'activité de vos programmes. Attention à la consommation de vos écrans Récupérez la chaleur produite Laissez travailler votre imagination !Mon levain adore ma Livebox(conso : 12 W) Ou bien... Mettre votre système en hibernation L'état de votre système est sauvegardé sur disque,et puis votre machine est éteinte.Meilleur pour des extinctions plus longues, car aucune consoélectrique et pas d'usure de la batterie pour les portables.Hélas pas toujours disponible en standard sur les distributionsrécentes.Pas très compliqué à mettre en place cependant. Principes de l'hibernation (1) L'hibernation se repose sur la mise en veillePour l'endormissement:1. On simule une mise en veille Sauvegarde en mémoire de l'état des périphériques2. On copie toute la RAM sur le disque Besoin d'une partition swap ou d'un fichier aussi gros que la RAM3. On éteint la machine. Principes de l'hibernation (2) Pour le réveil:1. On allume la machine, on démarre Linux2. On recopie en mémoire le contenu sauvegardé sur disque.3. On réveille la machine depuis la RAM comme si on sortait de veille. Comment mettre en place l'hibernation ? (1) Besoin de place sur disque pour stockerl'image de la mémoireLe plus simple : une partition swap au moinsaussi grande que la taille de la mémoireSinon, on peut stocker la mémoire dans unfichier, un peu plus compliqué :https://ubuntuhandbook.org/index.php/2021/08/enable-hibernate-ubuntu-21-10/ Comment mettre en place l'hibernation ? (2) 1. Trouver l'UUID de votre partition swap: cat /etc/fstab | grep UUID=2. Rajouter resume=UUID=xxxx à GRUB_CMDLINE_LINUX_DEFAULT dans /etc/default/grub3. Mettre à jour le fichier de configuration de Grub: sudo update-grubTesté sur Ubuntu 22.04 Comment déclencher l'hibernation ? Simplement avec Systemd(le plus complet : verrouillage de la session) :systemctl hibernateLa solution bas niveau (pas de verrouillage) :sudo sh -c "echo disk > /sys/power/state" Comment sortir d'hibernation ? Rallumer la machine, c'est tout !Sur un serveur à distance, possibilité d'utiliser le "Wake on LAN"1. Activer la fonctionnalité dans le BIOS2. Trouver l'adresse MAC de l'interface réseau de votre serveur ip a3. Passer cette adresse MAC à la commande wakeonlan :wakeonlan f8:ca:b8:17:44:02Sending magic packet to 255.255.255.255:9 with f8:ca:b8:17:44:02Facile pour une machine sur même réseau, mais possible aussi(sous conditions) sur un réseau sur Internet. Rajouter une option "hiberner" (1) Testé sur Ubuntu 22.04Lancer le gestionnaire d'extensions de GNOME :extension-managerRechercher "Hibernate Status Button", instaler et activercette extension. Rajouter une option "hiberner" (2) Testé sur Ubuntu 22.04Il faut aussi créer un fichier/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla :[Re-enable hibernate by default in upower]Identity=unix-user:*Action=org.freedesktop.upower.hibernateResultActive=yes[Re-enable hibernate by default in logind]Identity=unix-user:*Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibitResultActive=yesSource :https://ubuntuhandbook.org/index.php/2021/08/enable-hibernate-ubuntu-21-10/ Attention à la consommation de vos écrans ! Portable qui ne fait rien luminosité maximale:14.88WPortable qui ne fait rien luminosité minimale:10.04WPortable qui ne fait rien écran éteint:7.44WConclusion : un écran au max de luminositépeut représenter la moitié de votre consommationélectrique quand le PC ne fait rien ! Comment éteindre vos écrans ? Commande pas très pratique à cause de sudo :$ sudo vbetool dpms off (bof: avec sudo)$ sudo vbetool dpms onPlus pratique pour éteindre un écran en particulier :$ xrandr -q (identifier les écrans)$ xrandr --output DP-2-3 --off (éteindre)$ xrandr --output DP-2-3 --auto (rallumer)Ne marchait pas chez moi pour un seul écranLe plus simple pour éteindre ses écrans sans passeren veille est sans doute de verrouiller son PC (Super - L)Mais mieux de passer en veille si votre PC ne fait rien ! Adaptez la performance de votre processeur Ubuntu offre en standard des optionspour contrôler la fréquencede votre processeur.Cela se base sur l'infrastructure"cpufreq" du noyau Linux. On peutmême mettre des réglages différentspour chaque coeur ! Extension GNOME CPU Power Manager (1) GNOME offre des optionsplus fines pour contrôler la consommationet la performance de votre processeur. Extension GNOME CPU Power Manager (2) Compilation du noyau Linux (configuration "defconfig" sur x86)- "Haute performance" : 14:37 min (mode actif: 35W, mode inactif : 10 W)- "Economie d'énergie" : 40:45 min (mode actif: 15,5 W (moyenne), mode inactif : 15 W)- "Multimedia" : 13:47 min (mode actif : 38W, mode inactif : 13W)- "Silencieux" : 36:20 min (mode actif : 17.8 W, mode inactif : 12W)=> Des résultats un peu surprenants, à refaire en les refaisant chacuncarte mère froide. Il semble que la gestion de l'énergie tienne compte de la température.Merci aux participants à ma présentation pour cette interprétation plausible !Enseignements:- Le mode "Économie d'énergie" garantit une conso minimale. Bien sur batterie.- Le mode "Haute performance" ne fait pas toujours tourner votre processeur à fond. Il l'autorise juste. Tests (un peu bruts) de performance PowerTop - Disponible partoutMesure ce qui consome le plus sur votre PCVous donne aussi des conseils pour améliorer les réglages.Besoin d'être root et de fonctionner sur batterie (plus d'infos):$sudo powertop Qui consommera 30 fois moins ?Si c'est pour jouer un rôle de serveur ou decontrôleur d'affichage.Une exception à la règle de conservation du matériel PowerTop - Vue d'ensemble PowerTop - Réglages Remplacez votre vieux et gros PC par une carte embarquée Détecter les activités qui consomment de l'énergie Nouvelles options dans le menu "alimentation" Qu'est-ce que la veille hybride ?C'est à la fois une mise en veille et une mise en hibernation.- Si vous reprenez rapidement votre ordinateur, celui-ci se réveille instantanément- Si vous laissez plus longtemps votre ordinateur, la batterie finit par se vider, mais au rallumage, vous retrouvez son état d'origine grâce à l'hibernation.Une "super-veille" plus sécurisante, mais pas une alternative à l'hibernation,qui elle seule économise votre batterie.
1
  1. Titre
  2. Michael Opdenacker
  3. Pourquoi ?
  4. Motivations techniques
  5. Objet de cette présentation