web-dev-qa-db-fra.com

Où hybride suspendre?

Alors, que s'est-il déjà passé avec la suspension hybride, où elle serait suspendue sur RAM et sur disque? C'était assez chaud il y a quelques années, mais il semble que ça a été abandonné. Existe-t-il un moyen de le configurer dans les versions récentes d'Ubuntu?

16
Ryan Thompson

Il existe un programme appelé pm-is-supported qui peut être utilisé pour vérifier les capacités de suspension du système.

Voici les résultats sur mon système (0 signifie prise en charge, 1 signifie non prise en charge):

$ pm-is-supported --suspend ; echo $?  
0  
$ pm-is-supported --hibernate ; echo $?
0
$ pm-is-supported --suspend-hybrid ; echo $?
1

La page de manuel de pm-is-supported suggère que s2both prend en charge la suspension hybride. J'ai installé s2both, disponible dans le package uswsusp, mais il indique néanmoins que la suspension hybride n'est pas prise en charge. J'ai l'impression qu'il a besoin d'un redémarrage car il a mis à jour l'image initrd. Je vais redémarrer et faire rapport. Souhaitez-moi bonne chance .

Mise à jour: Lancer Sudo s2both a écrit l'instantané sur le disque et a été suspendu correctement à RAM, mais j'ai appuyé sur une touche pour reprendre le système redémarré (et n'a pas restauré la capture instantanée à partir du disque).

Je pense qu’il ya quelque chose qui ne va pas avec le paquetage uswsusp dans Ubuntu. Le paquetage splashy (utilisé par uswsusp) a un conflit de fichiers avec lsb-base qui n'a plus été corrigé depuis Jaunty ( https://bugs.launchpad.net/ Ubuntu/+ source/splashy/+ bug/328089 )

Essayez de lancer Sudo s2both ou Sudo pm-suspend-hybrid, voyez si cela fonctionne sur votre système.

9
Li Lo

Vous pouvez activer la suspension hybride en suivant la réponse à cette question:

3
Jorge Castro

Cette question revient assez souvent dans Google pour que je pense qu'il vaut la peine de la remplacer. Li explique parfaitement suspendre hybride. Cependant, s2both requiert uswsusp (donc pas de suspension in-kernel), et pm-hsuspend-hybrid fait ce qui ne va pas car il n’est pas maintenu.

Voici comment activer la suspension hybride de manière transparente:

  • Remplacez l'appel "suspendre" pour faire un "hybrid_suspend" dans pm-utils.
% cat /etc/pm/config.d/00-use-suspend-hybrid
 # Utilisez toujours suspend_hybrid au lieu de suspend 
 si ["$ METHOD" = "suspend" ]; alors 
 METHOD = susp_hybrid 
 fi 
  • Faites une sauvegarde de/usr/lib/pm-utils/pm-functions
  • Obtenez le correctif à partir d'ici: https://bugs.freedesktop.org/attachment.cgi?id=68712
    • Ce correctif permet la suspension hybride si disponible (c'est-à-dire sur les noyaux 3.6+)
  • Appliquez-le à l'aide de 'patch -p0' ou fusionnez-le manuellement en cas d'échec.

Cette méthode fonctionne pour moi sur mon Sony Vaio SVS.

PS: Reproduire le correctif ici au cas où le fichier serait supprimé ultérieurement:

 diff --git a/pm/pm-functions.in b/pm/pm-functions.in 
 --- a/pm/pm-functions.in 
 + ++ b/pm/pm-functions.in 
 @@ -316,8 +316,28 @@ if [-z "$ HIBERNATE_MODULE"] &&\
 {
 [-n "$ {HIBERNATE_MODE}"] &&\
 grep -qw "$ {HIBERNATE_MODE}"/sys/power/disk &&\
 + HIBERNATE_MODE_SAVE = $ (cat/sys/power/disque) && 
 + HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE ## * [}" &&\
 + HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE %%] *}" &&\
 echo -n "$ {HIBERNATE_MODE}"> /sys/power/disk
 echo -n "disque"> /sys/power/state
 + RET = $? 
 + echo -n "$ HIBERNATE_MODE_SAVE"> /sys/power/disk
+ retournent "$ RET" 
 +} 
 + fi 
 + 
 + # pour les noyaux prenant en charge la suspension à la fois (suspension hybride) 
 + # depuis le noyau 3.6 
 + if [-z "$ SUSPEND_HYBRID_MODULE"] &&\
 + [-f/sys/power/disk] &&\
 + grep -q disque/sys/power/state &&\
 + grep -q suspend/sys/power/disk; then 
 + SUSPEND_HYBRID_MODULE = "kernel" 
 + do_suspend_hybrid (.____.] + {
 + HIBERNATE_MODE = "suspendre" 
 + do_hibernate 
    }
 Fi

Sources:

[1]: pm-utils précède la suspension hybride dans le noyau disponible dans les noyaux 3.6+. Ce que fait réellement pm-suspend-hybrid, c'est de mettre votre machine en veille pendant 15 minutes par défaut, puis de mettre en veille prolongée.

0
Rohan Dhruva