Empêcher l’épuisement de la batterie lors de la mise en veille avec ME désactivé (Linux)

Les modèles Dasharo coreboot de NovaCustom disposent d’une fonction permettant de désactiver l’Intel Management Engine (ME). Mais la désactivation du ME a un inconvénient : le PC portable ne peut plus atteindre l’état de consommation le plus bas utilisé pour la mise en veille moderne (S0ix). En conséquence, la batterie s’épuise en mode suspension trois fois plus vite que lorsque le ME est activé. Bien que nous ne puissions pas résoudre ce problème, il existe une solution de contournement.

Contexte

Autrefois, les ordinateurs disposaient d’un mode de sommeil profond appelé hibernation. Bien que ce mode ne soit plus courant et qu’il ne soit plus activé par défaut dans les systèmes d’exploitation Linux modernes, il est toujours possible de l’activer et de l’utiliser. Mais le mode sommeil profond présente également un inconvénient : le temps de réveil est long et similaire au temps de réveil d’un démarrage à froid (démarrage normal).

En mode veille, l’utilisateur revient à l’ordinateur peu de temps après avoir quitté son bureau. Pensez à une pause ou à une courte promenade. Pour des raisons de sécurité, il est toujours préférable d’éteindre complètement le système. Pour certains utilisateurs, cependant, cela peut s’avérer peu pratique, c’est pourquoi ils préfèrent le mode hibernation. Dans la plupart des cas, l’ordinateur reprend dans les 3 heures qui suivent le départ de l’utilisateur de son poste de travail.

Il existe un moyen de faire passer l’ordinateur portable en mode suspension après un certain temps d’inactivité, tout en empêchant la batterie de se vider. La solution que nous allons appliquer dans cet article s’appelle « suspend-then-hibernate ». Elle fonctionne de la manière suivante : si le mode de suspension est déclenché, l’ordinateur portable se met en veille comme d’habitude. Mais après un certain temps, disons 3 heures, il passe de son mode de suspension normal à l’hibernation (sommeil profond / suspension sur disque).

Avantages

La mise en place de la fonction suspend-then-hibernate alors que ME est désactivé présente quelques avantages :

  1. La batterie se décharge à peine.
  2. Le temps de réveil du mode veille est encore très court dans la plupart des cas, à moins que l’utilisateur ne reprenne le système après 3 heures.

La Série NV41 sous Linux n’est pas concernée

À moins que vous ne disposiez d’une configuration dual-boot avec Windows qui vous oblige à utiliser le mode veille moderne, la Série NV41 n’est pas concernée par le problème d’épuisement de la batterie associé à la désactivation de ME. En effet, cette série prend en charge la fonction S3 (suspend-to-RAM), qui éteint complètement le processeur en mode veille.

Comment configurer suspend-then-hibernate

Ce guide a été écrit pour Ubuntu 24.04 avec GNOME. D’autres distributions et environnements de bureau peuvent nécessiter d’autres étapes pour configurer suspend-then-hibernate. Il est possible que cela fonctionne sur d’autres distributions. Veuillez laisser un commentaire sur cet article de blog afin d’informer les utilisateurs de la façon dont cela fonctionne pour la distribution que vous utilisez.

Commentaire sur le cryptage des disques : Jusqu’à présent, nous n’avons pas été en mesure de configurer l’hibernation en combinaison avec une partition cryptée. J’ai essayé de mettre en place une partition swap séparée pour une installation Ubuntu existante ainsi que pour une nouvelle installation, sans succès, même après avoir lu ces remarques. Si vous avez une solution, n’hésitez pas à la partager dans les commentaires.

Étape 1 : installation de pm-utils

Pour ce faire, il suffit d’ouvrir une fenêtre de terminal (Ctrl + Alt + T) et d’exécuter la ligne suivante, tout en ayant une connexion internet active :

sudo apt install pm-utils -y

Étape 2 : préparation d’une partition swap

Ubuntu ne crée pas de partition swap par défaut, mais elle est nécessaire pour l’hibernation. La taille de la partition swap doit être au moins aussi grande que la capacité de la mémoire interne. Cela n’est pas possible à partir du système d’exploitation lui-même.

Si vous réinstallez Ubuntu, vous pouvez configurer la partition swap pendant la configuration des partitions du disque en configurant manuellement les partitions depuis le programme d’installation. Consultez également cette vidéo pour savoir comment configurer Ubuntu 24.04 avec des partitions séparées.

Pour créer la partition swap sur une configuration où Ubuntu est déjà installé :

  1. Démarrez sur une clé USB Ubuntu live.
  2. Diminuez votre partition racine à l’aide de Gparted en ajoutant au moins la capacité totale de votre mémoire vive. Pour plus de certitude, nous vous conseillons d’ajouter un gigaoctet de plus que la capacité totale de votre mémoire vive.
  3. Créez la partition swap avec Gparted avec la taille maximale.
  4. Redémarrez l’ordinateur portable sur votre installation Ubuntu par défaut.

Conseil : vous pouvez exécuter free -h pour vérifier la capacité de votre mémoire vive. Après l’étape 4, vous pouvez utiliser la même commande pour vérifier que la capacité totale de la partition swap est supérieure à la capacité totale de la mémoire vive.

Étape 3 : Formatage et affectation de la partition swap

Cette étape n’est nécessaire que si vous avez créé une nouvelle partition swap ; pas si vous avez configuré la partition swap lors de l’installation d’Ubuntu.

Maintenant que vous avez redémarré votre installation normale, formatez la partition swap en ouvrant et un terminal (Ctrl + Alt + T) puis exécutez :

sudo mkswap /dev/nvme0n1pX

Mais remplacez /dev/nvme0n1pX par votre partition swap. Vous pouvez consulter l’application Disques pour identifier votre partition swap.

L’étape suivante consiste à monter la partition swap. Vous pouvez le faire en exécutant :

sudo swapon -U UUID

Mais remplacez UUID par l’UUID réel de votre partition swap. Vous pouvez également vérifier l’UUID de votre partition swap avec l’application Disques.

La dernière chose à faire est de monter de manière permanente la partition swap en la liant dans le fichier /etc/fstab. Dans une fenêtre de terminal, exécutez

sudo nano /etc/fstab

Ajoutez maintenant cette ligne à la fin :

UUID=xxx    none    swap    sw      0   0

Remplacez xxx par l’UUID réel de votre partition swap.

Assurez-vous également qu’il n’ y a pas d’autre partition swap ou fichier swap défini dans le fichier de configuration fstab. Par défaut, le fichier /swap.img est actif, assurez-vous donc que vous avez entièrement supprimé cette ligne. Vous pouvez supprimer une ligne entière avec Ctrl + K, soit dit en passant.

Enregistrez le fichier avec le raccourci clavier Ctrl + X, suivi de Y, suivi de la touche Entrée.

Étape 4 : Assigner la partition swap à GRUB

Pour ce faire, exécutez :

sudo nano /etc/default/grub

Trouvez maintenant la ligne GRUB_CMDLINE_LINUX_DEFAULT=. Entre les guillemets, ajoutez : resume=UUUID=xxx, où xxx doit être remplacé par l’UUID de votre partition swap.

Dans mon cas, la ligne ressemblait à ceci :

[ ... ]
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=48c20957-8193-4eb5-a157-f190f9c13d46"
[ ... ]

Enregistrez le fichier avec le raccourci clavier Ctrl + X, suivi de Y, suivi de la touche Entrée.

Assurez-vous que les modifications sont actives en exécutant :

sudo update-grub

Et redémarrez votre ordinateur.

Étape 5 : Test de l’hibernation

Pour déclencher l’hibernation, la commande suivante doit être exécutée :

systemctl hibernate

Vous pouvez utiliser cette commande pour vous assurer que l’hibernation fonctionne correctement.

Étape 6 : Ajouter une option pour déclencher directement l’hibernation (facultatif)

Il existe deux façons de déclencher facilement l’hibernation à partir de l’interface utilisateur graphique :

  1. En utilisant l’extension GNOME Hibernate Status Button.
  2. En créant un raccourci clavier personnalisé pour exécuter facilement l’hibernation. Pour ce faire, accédez à Paramètres –> Clavier –> Raccourcis clavier –> Raccourcis personnalisés –> Ajouter un raccourci. Dans Nom, indiquez Hibernation. Comme commande, indiquez systemctl hibernate. Cliquez ensuite sur Définir un raccourci… et déclenchez le raccourci clavier souhaité pour mettre votre ordinateur portable en mode hibernation.

Étape 7 : modification de la configuration de sommeil de systemd

L’objectif est de :

  1. S’assurer que l’hibernation est autorisée par systemd.
  2. Spécifier le délai d’hibernation après le mode suspension.
  3. S’assurer que la suspension déclenche bien la politique suspend-then-hibernate.

Pour ce faire, ouvrez une fenêtre de terminal et exécutez :

sudo nano /etc/systemd/sleep.conf

Dans ce fichier, décommentez et définissez les lignes suivantes :

AllowSuspend=yes
AllowHibernate=yes
AllowSuspendThenHibernate=yes
HibernateDelaySec=180min

Enregistrez le fichier avec le raccourci clavier Ctrl + X, suivi de Y, suivi de la touche Entrée.

Maintenant, remplacez le mode veille par défaut par suspend-then-hibernate en exécutant :

sudo ln -s /usr/lib/systemd/system/systemd-suspend-then-hibernate.service /etc/systemd/system/systemd-suspend.service

Redémarrez l’ordinateur portable pour vous assurer que les modifications sont actives.

Étape 8 : tester suspend-then-hibernate

Ouvrez plusieurs applications et suspendez simplement l’ordinateur portable comme d’habitude. Attendez une minute et réveillez votre ordinateur portable. Le mode de suspension devrait être normal.

Déclenchez à nouveau le mode suspension. Définissez une alarme qui se déclenche dans 3 heures afin de voir ce qui se passe dès que l’ordinateur portable est suspendu pendant plus longtemps que cela. En fait, il doit sauvegarder son état et s’éteindre. Pour vérifier si cet objectif est atteint, il suffit de le rallumer. L’ordinateur portable doit restaurer les applications telles qu’elles étaient avant le déclenchement du mode suspension.

Wessel klein Snakenborg (Directeur de NovaCustom)

LinkedIn

À propos de l'auteur : Wessel Klein Snakenborg est passionné de technologie depuis son enfance. Il a lancé NovaCustom en 2015, une entreprise qui fabrique des ordinateurs portables sur mesure en tenant compte de la protection de la vie privée et de la sécurité. En mettant l'accent sur la convivialité, NovaCustom continue de redéfinir l'expérience de l'ordinateur portable, grâce à l'engagement de Wessel en faveur de l'innovation et de la collaboration.

Les commentaires uniquement en anglais s.v.p.

Partager votre panier