Comment désactiver complètement Hibernate dans Kubuntu?

11

J'ai vu la réponse sur Comment désactiver l'hibernation? , mais je n'ai pas un tel fichier. Peut-être parce que cette suggestion a été écrite pour Ubuntu, pas pour Kubuntu (KDE, pas Gnome).

Je n'ai pas d'échange sur mon SSD crypté, mon système se bloque (ne peut même pas changer le verrouillage des majuscules) si j'appuie accidentellement sur le bouton "Mise en veille prolongée" dans "Gestion de l'énergie". Mon clavier a un bouton de mise en veille prolongée ( Fn+ F4) à côté des boutons de contrôle du volume et chaque fois que j'appuie sur la mauvaise touche, le système se fige après.

Alors, quelle est la bonne façon de le désactiver? S'il n'y a pas de solution, une solution de contournement est également la bienvenue.

Lekensteyn
la source
+1 Ceci (et la désactivation de la suspension) est une question très importante pour quiconque exécute des lecteurs OCZ Vertex2 ... la suspension / hibernation peut instantanément effacer le lecteur sans aucun espoir de récupérer un seul octet. :(
Russ

Réponses:

6

Déclencheurs d'hibernation:

  • Appuyez sur le bouton Hibernation dans Kickoff -> Quitter -> Hibernate
  • Appuyez sur Veille prolongée sur l'icône Énergie dans la barre d'état système
  • Envoyer un signal dbus: qdbus org.kde.kded /modules/powerdevil suspend 4

Lorsque l'hibernation est déclenchée, voici le flux d'exécution:

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux est appelé
  2. /usr/sbin/pm-hibernate est appelé avec quelques arguments
  3. La journalisation commence à /var/log/pm-suspend.log
  4. Des crochets sont exécutés pour préparer l'hibernation. Ces crochets sont situés à /usr/lib/pm-utils/sleep.d/et /etc/pm/sleep.d, et triés par nom (chiffres en premier)
  5. performing hibernate est écrit dans le journal
  6. La fonction shell do_hibernateest appelée, indiquant au système d'hiberner
  7. Lorsque le système reprend, des hooks sont exécutés pour restaurer à partir de l'hibernation
  8. Le système fonctionne à nouveau

Pour désactiver l'hibernation, créez /etc/pm/sleep.d/000no-hibernationavec le contenu suivant:

#!/bin/sh
# prevents hibernation
. "$PM_FUNCTIONS"
[ "$1" = "hibernate" ] && inhibit || true

Comme 000no-hibernationon l'appelle avant les scripts comme 00logging(les modules de sortie et les informations de mémoire dans le journal), aucune application ou module n'est interrompu ou déchargé. Ce nom a été inspiré par /usr/lib/pm-utils/sleep.d/000kernel-change. Méfiez-vous du bogue # 665651 qui empêche les valeurs de retour non nulles des hooks d'annuler la suspension ou l'hibernation.

Cela résout le problème d'hibernation pour moi. Bien que l'écran se verrouille, je peux vivre avec ça. C'est beaucoup mieux par rapport à un système qui plante.

Lekensteyn
la source
J'ai ajouté || truepour empêcher un code de sortie différent de zéro, ce qui empêche la suspension. Testé pour fonctionner pour suspendre et bloquer l'hibernation.
Lekensteyn
Très bonne réponse! Très complet .. Merci d'avoir posté ce que vous avez trouvé. S'étendant sur lui, ce script (du rapport de bogue que vous avez lié) arrête proprement l'hibernation et la suspension. Modifier pour n'en faire qu'un est également trivial.
Russ