Où hybride suspendre?

16

Qu'est-il donc arrivé à la suspension hybride, où elle se suspendrait à la fois à la RAM et au disque? Il faisait un peu chaud il y a quelques années, mais il semble qu'il ait été abandonné. Existe-t-il un moyen de configurer cela dans les versions récentes d'Ubuntu?

Ryan C. Thompson
la source
Quel est l'intérêt de la suspension hybride ??
LassePoulsen
5
La suspension hybride se produit lorsque votre ordinateur effectue simultanément une suspension sur disque et une suspension sur RAM. Ainsi, vous obtenez la vitesse de reprise rapide de la suspension vers la RAM, mais vous ne perdez pas votre session si vous perdez de l'énergie ou si vous êtes à court de batterie. Donc, en principe, c'est mieux que suspendre-à-ram ou suspendre-à-disque seul. C'est pourquoi je me demande pourquoi il semble avoir disparu des listes de fonctionnalités des distributions Linux modernes.
Ryan C. Thompson
Dans l'onglet "On Battery Power" du gestionnaire d'alimentation, je vois une option pour "Lorsque la puissance de la batterie est extrêmement faible: mise en veille prolongée", peut-être que cela supprime le besoin d'une suspension hybride?
Jorge Castro
1
@Jorge: Un autre cas d'utilisation est si vous devez retirer la batterie de votre ordinateur portable (ou débrancher votre PC de bureau suspendu) pour une raison quelconque. Si vous êtes en suspension hybride, cela n'aura pas d'importance. Si vous êtes en suspension normale sur RAM, vous devez reprendre, puis suspendre sur le disque.
Ryan C. Thompson

Réponses:

9

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

Sur mon système, voici les résultats (0 signifie pris en charge, 1 signifie non pris en charge):

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

La page de pm-is-supportedmanuel de suggère que s2both supporte la suspension hybride. J'ai installé s2both, disponible dans le uswsusppackage, mais il indique toujours 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: Running a sudo s2bothécrit l'instantané sur le disque et suspendu correctement dans la RAM, cependant lorsque j'ai appuyé sur une touche pour reprendre le redémarrage du système (et que je n'ai pas restauré l'instantané à partir du disque).

Je pense qu'il y a quelque chose de mal avec le uswsusppaquet dans ubuntu. Le splashypackage (qui est utilisé par uswsusp) a un conflit de fichiers lsb-basequi n'a pas été corrigé depuis Jaunty ( https://bugs.launchpad.net/ubuntu/+source/splashy/+bug/328089 )

Essayez d'exécuter sudo s2bothou de sudo pm-suspend-hybridvoir si cela fonctionne sur votre système.

Li Lo
la source
J'ai essayé s2bothet obtenu les mêmes résultats que toi. J'ai également essayé de passer à un noyau tuxonice et de dire à pm-utils d'utiliser tuxonice, puis d'utiliser la suspension hybride tuxonice via pm-suspend-hybrid. L'écran ne s'est jamais allumé lorsque j'ai repris, mais Ctrl + Alt + Suppr a fonctionné pour redémarrer, donc je pense que cela a réellement fonctionné, mais n'a pas réussi à allumer l'écran.
Ryan C. Thompson
Je suppose que ce n'est pas pris en charge.
Ryan C. Thompson
0

Cette question revient assez souvent dans Google pour que je pense que ça vaut le coup. Li explique parfaitement la suspension hybride. Cependant, s2both nécessite uswsusp (n'utilisant donc pas la suspension dans le noyau), et pm-hsuspend-hybrid fait la mauvaise chose car il n'est pas maintenu [1].

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

  • Remplacez l'appel "suspend" 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
    if ["$ METHOD" = "suspend"]; ensuite
        METHODE = suspend_hybrid
    Fi
  • Faire une sauvegarde de / usr / lib / pm-utils / pm-functions
  • Obtenez le patch à partir d'ici: https://bugs.freedesktop.org/attachment.cgi?id=68712
    • Ce patch 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 patch ici au cas où le fichier serait supprimé à l'avenir:

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 / disk) && \
+ HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE ## * [}" && \
+ HIBERNATE_MODE_SAVE = "$ {HIBERNATE_MODE_SAVE %%] *}" && \
        echo -n "$ {HIBERNATE_MODE}"> / sys / power / disk
        echo -n "disk"> / sys / power / state
+ RET = $?
+ echo -n "$ HIBERNATE_MODE_SAVE"> / sys / power / disk
+ retour "$ RET"
+}
+ fi
+
+ # pour les noyaux qui prennent en charge la suspension des deux (c'est-à-dire la suspension hybride)
+ # depuis le noyau 3.6
+ si [-z "$ SUSPEND_HYBRID_MODULE"] && \
+ [-f / sys / power / disk] && \
+ grep -q disque / sys / alimentation / état && \
+ grep -q suspendre / sys / power / disk; ensuite
+ SUSPEND_HYBRID_MODULE = "noyau"
+ do_suspend_hybrid ()
+ {
+ HIBERNATE_MODE = "suspendre"
+ do_hibernate
    }
 Fi

Sources:

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

Rohan Dhruva
la source