Veille et hibernation sur GLF-OS

GLF-OS distingue deux modes d'économie d'énergie que l'on confond souvent. Pour des raisons techniques détaillées plus bas, seule la mise en veille (S3) est activée par défaut. L'hibernation (S4) est désactivée sur les setups NVIDIA récents en raison d'un bug du pilote propriétaire.

La différence en deux phrases

Ce qui se passe quand vous appuyez sur "Veille" sur GLF-OS

Sous GNOME comme sous KDE Plasma, l'action "Mettre en veille" déclenche un suspend S3. La machine reste allumée mais en très basse consommation. Vous la réveillez avec une touche du clavier, un mouvement souris ou le bouton power : retour direct à votre session, vos applications restent ouvertes.

C'est le comportement attendu. Pas d'hibernation, pas de réécriture sur disque.

Pourquoi l'hibernation est désactivée par défaut

L'hibernation (S4) sur Linux exige que le pilote graphique sache préserver l'état de la VRAM avant que la machine ne s'éteigne, et le restaurer au démarrage suivant. Le pilote propriétaire NVIDIA des séries RTX 4000 (Ada) et RTX 5000 (Blackwell) rencontre actuellement un bug : le firmware embarqué de la carte (GSP : GPU System Processor) ne répond plus pendant la transition S4. Le noyau Linux annule alors l'écriture de l'image hibernation, et au démarrage suivant la machine ne trouve aucune image à restaurer → c'est un boot à froid, pas un vrai resume.

Symptômes observés chez certains utilisateurs avant cette correction :

Ce bug est documenté à l'identique sur CachyOS, Debian 13, Arch et NixOS, sur driver 580.x à 595.x. NVIDIA n'a pas encore publié de correctif. Les distributions Fedora, Bazzite, Pop!_OS, Ubuntu 24.04 ont également désactivé l'hibernation par défaut sur leurs setups NVIDIA.

GLF-OS a adopté la même politique pour éviter à ses utilisateurs de tomber dans ces situations dégradées.

Comportement par défaut sur GLF-OS

Élément Comportement
Mise en veille (S3) ✅ Fonctionne
Bouton power (action par défaut) Mise en veille
Inactivité prolongée Mise en veille
Hibernation (S4) ❌ Désactivée
systemctl hibernate (CLI) Refusée par systemd ("Access denied")
Menu d'alimentation GNOME Pas d'option "Hiberner"
Menu d'alimentation KDE Pas d'option "Hiberner"

Aucune action requise de votre part : tout est déjà configuré.

Comment forcer l'activation de l'hibernation (à vos risques)

Si vous avez une carte AMD ou une iGPU Intel, l'hibernation peut très bien fonctionner chez vous. Si vous voulez tenter sur NVIDIA Blackwell, sachez que vous aurez probablement les symptômes décrits plus haut.

Ajoutez dans votre /etc/nixos/customConfig/default.nix :

glf.boot.hibernation.enable = true;

Puis appliquez avec :

glf-update

Le module détecte automatiquement votre swap disque et configure boot.resumeDevice. Si vous voulez le forcer explicitement vers une partition swap spécifique, ajoutez aussi :

boot.resumeDevice = "/dev/disk/by-uuid/<UUID-de-votre-swap>";

L'UUID de votre swap se trouve avec sudo blkid | grep swap.

⚠️ Pré-requis pour que l'hibernation fonctionne, même côté logiciel :

Comment vérifier que c'est bien désactivé sur votre machine

# Les cibles systemd liées à l'hibernation sont masquées
systemctl is-enabled hibernate.target hybrid-sleep.target suspend-then-hibernate.target
# → masked  masked  masked

# Tentative manuelle (doit échouer)
sudo systemctl hibernate
# → Call to Hibernate failed: Access denied

# Le suspend (S3) fonctionne
systemctl is-enabled suspend.target
# → linked

Pour aller plus loin