Sommeil hybride indirect
Il s’agit de la méthode la plus ancienne: d’abord suspendre puis de passer en veille prolongée après un délai (15 minutes par défaut). Utilisez ceci avec un noyau Linux antérieur à 3.6, ou si vous aimez ça, il n’utilise plus aucune énergie au bout de 15 minutes.
Ajouter le fichier /etc/pm/config.d/00-use-suspend-hybrid
:
# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi
# The delay after which hibernation gets triggered (default: 900 seconds, 15 minutes):
PM_HIBERNATE_DELAY=900
Vous voudrez peut-être vous assurer que la méthode hybride est prise en charge sur votre système via le code suivant. Si cela dit "0" cela devrait marcher:
sudo pm-is-supported --suspend-hybrid && echo $?
Véritable hybride suspendant avec Linux 3.6+
Si vous avez un noyau Linux 3.6, vous pouvez utiliser ce qui suit, qui suspendra à la fois le disque et la RAM.
Ajouter le fichier /etc/pm/config.d/00-use-suspend-hybrid
:
# WORKAROUND: always set the default hibernate mode first (normal mode)
# (not required if you have the patch mentioned by Rohan below (http://askubuntu.com/a/344879/169))
HIBERNATE_MODE=platform
# Always use hibernate instead of suspend, but with "suspend to both"
if [ "$METHOD" = "suspend" ]; then
METHOD=hibernate
HIBERNATE_MODE=suspend
fi
# Make sure to use the kernel's method, in case uswsusp is installed etc.
SLEEP_MODULE=kernel
Cela écrit toujours l'image sur le disque, puis est suspendu dans la RAM, ce qui présente l'avantage de permettre une reprise rapide (tant que la batterie ne s'épuise pas) et que la machine ne se réveillera pas rapidement (après PM_HIBERNATE_DELAY). hiberner pour de vrai.
L'inconvénient est que le processus prend plus de temps (car il est toujours en veille prolongée sur disque) et que votre batterie peut s'épuiser à long terme (par exemple, au bout de 12 heures).
resume
argument dans/etc/default/grub.conf
. Aussi en tant qu'utilisateur nvidia, je devais définirnomodeset
. Ainsi , l' entrée résultant sans tête dans mon cas est la suivante :GRUB_CMDLINE_LINUX_DEFAULT="nomodeset resume=UUID=uuidofswappartition"
. N'oublie pasgrub-update
. Et aussi certains modules doivent être déchargés fichier créé/etc/pm/config.d/00-unload_modules
avec ligneSUSPEND_MODULES="ath5k r8169"
et juste pour m'assurer que j'ai également renommé 00-use-suspend-hybrid to10-use-suspend-hybrid
Ubuntu 18.04 une option chronométrée
Dans Ubuntu 18.04 a une nouvelle option chronométré. En
systemd
est disponible un nouveau modesuspend-then-hibernate
. Cela commencera par le mode veille, puis passera au mode hibernation après un temps déterminé.Dans ce
hybrid-sleep
mode, la partie en veille prolongée n’est efficace que lorsque la batterie est extrêmement faible et que le système s’arrête.Pour commencer à utiliser cette fonction, vous devez créer un fichier
/etc/systemd/sleep.conf
avec le contenu suivant:Cela passera du sommeil à l'hibernation après 1 heure de sommeil. Vous pouvez modifier
HibernateDelaySec
pour modifier le délai en veille prolongée.Tout d’abord, teste si suspend-then-hibernate fonctionne avec systemd
Ouvrez un terminal en appuyant sur Ctrl+ Alt+ Tet entrez:
Si cela fonctionne, rendez-le permanent.
Ouvrez le fichier en
/etc/systemd/logind.conf
utilisant votre éditeur préféré. Vous aurez besoin d'invoquer votre pouvoir administratif parsudo
,gksudo
oupkexec
pour modifier ce fichier.Trouvez les deux lignes:
Remarque: Ces lignes sont commentées
#
devant. Lesuspend
est l'action par défaut. Supprimez le#
et changezsuspend
ensuspend-then-hibernate
dans ces deux lignes pour qu'elles ressemblent à ceci:Enregistrez le fichier. Déconnectez-vous et reconnectez-vous ou redémarrez le
logind
service à l'aide de la commande suivante:Attention! votre session utilisateur sera redémarrée
Source: Couvercle fermé Suspendre puis Hiberner
Ubuntu 16.04 et plus
La solution de blueyed pour Real hybride suspendant avec Linux 3.6+ ne fonctionnait pas pour moi. J'imagine que c'est parce qu'Ubuntu 16.04 utilise
systemd
et n'utilise pas le fichier/etc/pm/config.d/00-use-suspend-hybrid
.Tout d’abord, teste si hibernate et hybrid-sleep fonctionne avec systemd
Ouvrez un terminal en appuyant sur Ctrl+ Alt+ Tet entrez:
Cela devrait mettre votre ordinateur en veille prolongée. Pour essayer de sommeil hybride, entrez:
Si cela fonctionne, rendez-le permanent.
Ouvrez le fichier en
/etc/systemd/logind.conf
utilisant votre éditeur préféré. Vous aurez besoin d'invoquer votre pouvoir administratif parsudo
,gksudo
oupkexec
pour modifier ce fichier.Trouvez les deux lignes:
Remarque: Ces lignes sont commentées
#
devant. Lesuspend
est l'action par défaut. Supprimez le#
et changezsuspend
enhybrid-sleep
dans ces deux lignes pour qu'elles ressemblent à ceci:Enregistrez le fichier. Déconnectez-vous et reconnectez-vous.
Remarque:
suspend
ouhybrid-sleep
il y a une troisième option,hibernate
.Suspend
dans le menu cog, l'ordinateur passe en suspension normale et non en veille hybride.Source: https://superuser.com/questions/719447/how-to-use-systemd-hybrid-sleep-instead-of-suspend-under-gnome-in-linux
J'espère que ça aide
la source
En 12.04, j’ai remarqué que lorsqu’une mise en veille prolongée est déclenchée (avec
PM_HIBERNATE_DELAY=XX
), les scripts de reprise / décongélation ne désaffectent pas la variable grub recordfail. Par conséquent, grub ne démarre pas automatiquement.Timeout est défini sur -1 et attend la sélection de l'utilisateur. Je suppose que cela nécessite une édition de scripts dans
/etc/pm/sleep.d/10_grub-common
. Je suis novice, donc je n'ai pas essayé de trouver le changement exact, malheureusement.la source
Cette question revient assez souvent dans Google pour que je pense qu'il vaut la peine de la remplacer. La méthode décrite ici est (imo) pas hybride suspendre. Il est "hiberner après X minutes en suspension". La vraie suspension hybride écrit votre RAM sur le disque, puis passe en mode basse consommation (mode veille). Bien que cela prenne plus de temps, la reprise est instantanée tant qu'il reste de la batterie sur la machine, sinon elle reprend son disque dur. Ce comportement est ce que la plupart des gens connaissent sous le nom de veille hybride et utilisé par défaut dans les ordinateurs portables Windows et Mac les plus récents.
Voici comment activer la suspension hybride réelle :
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:
Sources:
la source
Il existe une autre solution sans ajouter de fichier dans config.d, en utilisant simplement wakealarm dans / sys / class / rtc / rtc0. Utilisez du code obsolète dans pm-functions (/ usr / lib / pm-utils) après les commentaires # depuis que le noyau ne supporte pas directement ..., (car le noyau actuel (quelque chose après la version 3.6) le supporte directement). Retournez ce code et insérez la partie do_suspend () à la place de do_suspend_hybrid () et utilisez le correctif pour pm-functions (jusqu'à ce qu'ils le résolvent).
Code obsolète (suspendre puis hiberner lorsque susp_hybrid est appelé):
Conseillé. Encore plus facile à utiliser uswsusp tout en maximisant les avantages de s2both, c’est-à-dire s2both lorsqu’il est suspendu. Placez le code inversé dans la partie do_suspend () du module uswsusp (/usr/lib/pm-utils/module.d).
Code inversé (suspend_hybrid lorsque la suspension est appelée):
Avec uswsusp, nous pouvons voir l’avancement de la suspension / hibernation et le processus inverse affichés en texte, même si nous pouvons l’abandonner en appuyant sur la touche retour arrière. Sans uswsusp, suspendre / hibernate semble juste disparaître de manière ennuyeuse, surtout lorsque wakealarm est déclenché et exécuter hibernate (s2disk in uswsusp). Définissez la période de sommeil avant l'hibernation à l'emplacement habituel du fichier pm-functions.
Voici le mod uswsusp: (rappelez-vous, ce module est appelé depuis pm-functions, donc les variables insérées sont les mêmes)
la source
La réponse de user68186 pour Ubuntu 16.04 ne fonctionnait pas pour moi. Cependant, la solution ici a fait.
Tout d'abord, assurez-vous que l'hibernation fonctionne. ensuite
Dans mes paramètres d’alimentation, ces options sont vides, mais elles fonctionnent comme prévu.
la source
Dans Ubuntu 18.04, c'est beaucoup plus facile. Dans systemd est disponible un nouveau mode suspend-then-hibernate . Pour commencer à utiliser cette fonction, vous devez créer un fichier /etc/systemd/sleep.conf avec le contenu suivant:
Ensuite, vous pouvez le tester avec la commande suivante:
(vous pouvez modifier HibernateDelaySec pour réduire le délai de mise en veille prolongée). Si tout fonctionne correctement, vous pouvez modifier l'action Fermer le couvercle. Pour ce faire, vous devez modifier le fichier /etc/systemd/logind.conf.
Vous devez rechercher l'option HandleLidSwitch = , la décommenter et la remplacer par HandleLidSwitch = suspend-then-hibernate . Ensuite, vous devez redémarrer le service logind (la connexion sera établie!), À l’aide de la commande suivante:
C'est tout! Maintenant, vous pouvez utiliser cette fonction intéressante.
la source