web-dev-qa-db-fra.com

Mac OS X prend-il en charge l'hibernation?

Sous Windows, vous pouvez mettre votre ordinateur en veille prolongée, de manière à ce qu'il démarre beaucoup plus rapidement et ne consomme aucune énergie tout en "veille prolongée".

Je vois une option pour dormir sur mon Mac mini, mais pas en veille prolongée. Est-ce que Mac supporte l'hibernation?

Je suis sur Léopard.

40
AngryHacker

OS X n'a ​​qu'une seule option "veille". Vous ne pouvez pas changer son nom, mais pour changer son comportement, j'utilise une ancienne version de SmartSleep sur un Mac mini (bien qu'en mode "veille & veille prolongée" de type MacBook). Cela fonctionne pour un mini, bien que le site Web se réfère uniquement à MacBooks.

(SmartSleep était encore libre quand j'ai écrit cela en 2009.)

Je reçois parfois des plaintes sur le fait que le matériel n'avait pas été correctement supprimé (mais OS X ne me dit jamais quel matériel , et mes disques USB Time Machine semblent bons. Je devrais jeter un coup d'œil dans les journaux un jour. et je suppose que cela est lié à OS X et non à SmartSleep).

J'ai rapidement testé le mode "hibernate only" de SmartSleep sur cette mini (Intel; fonctionnant sous 10.5), et cela semble également fonctionner. En faisant ces tests, j'ai remarqué qu'après le noir de l'affichage, le voyant d'alimentation commence à clignoter (comme pour indiquer veille plutôt qu'en veille prolongée) pendant quelques secondes. Peut-être que vous écrivez toujours RAM sur le disque. (Jusqu'à présent, j'ai toujours pensé que, sur mon MacBook, la pulsation indiquait que tout était fait. Mais maintenant, je pense que, quel que soit le mode veille utilisé, il ne faut probablement pas débrancher l'alimentation trop tôt). Après un court instant, il s'éteint complètement.

En 2006, Macworld explique comment obtenir le même résultat sans le volet de préférences SmartSleep. Pour vérifier la configuration actuelle:

pmset -g | grep hibernatemode

Selon l'ancien article de Macworld, ce qui suit s'applique mais assurez-vous de lire la réponse de Lauri qui suggère qu'aujourd'hui, seuls 0, 3 et 25 devraient être utilisés :

  • 0 - Mode veille à l'ancienne, avec RAM en veille, veille automatique désactivée et réveil ultra rapide.
  • 1 - Mode Veille prolongée, avec le contenu de RAM sur le disque, le système totalement arrêté en mode veille et le réveil plus lent en raison de la lecture du contenu de RAM du disque dur.
  • 3 - Le mode par défaut sur les machines introduit depuis environ l'automne 2005. RAM est allumé en veille, mais le contenu de RAM est également écrit sur le disque avant la mise en veille. En cas de perte totale de puissance, le système passe automatiquement en mode veille prolongée.
  • 5 - C’est la même chose que le mode 1, mais c’est pour ceux qui utilisent la mémoire virtuelle sécurisée (dans Préférences Système "Sécurité).
  • 7 - C’est la même chose que le mode 3, mais c’est pour ceux qui utilisent la mémoire virtuelle sécurisée.

Et les mêmes numéros peuvent être utilisés pour changer le réglage du mode veille:

Sudo pmset -a hibernatemode 1
34
Arjan

I a écrit un script qui vous permettra d'entrer immédiatement en veille prolongée (sans modifier vos paramètres de manière permanente). Je trouve cela très utile, car j'aime bien les paramètres par défaut, mais je veux forcer le passage en veille prolongée lorsque vous êtes sur la route. Peut-être que quelqu'un d'autre le trouvera utile aussi ;-)

#!/bin/bash

# Utility to force your mac immediately into hibernation mode/suspend to disk,
# thus conserving battery considerably (at the cost of slower startup)
# @date 2012-02-10
# @author Carl-Erik Kopseng. Contact at oligofren.wordpress.com

# must be run as root by using Sudo or to avoid entering the password, change the pmset
# executable settings by entering
# Sudo chmod +s /usr/bin/pmset
# Sudo chmod +s /sbin/shutdown

MODE_BACKUP=/tmp/hibernate_mode.bak
SUSPEND_TO_DISK=25 #see man pmset

display_settings() {
    echo "Current settings: " $(pmset -g | grep hibernatemode)
}

save_settings() {
    echo "saving settings"
    pmset -g | grep hibernatemode | awk '{print $2}' > $MODE_BACKUP
}

restore_settings() {
    echo "restoring settings"
    pmset -a hibernatemode $(cat $MODE_BACKUP)
}

set_only_disk_hibernate() {
    echo "changing settings to only suspend to disk (slow, but does not use battery)"
    pmset -a hibernatemode $SUSPEND_TO_DISK
}

hibernate() {
    echo "going into hibernation"
    shutdown -s now
}

save_settings
set_only_disk_hibernate && hibernate
restore_settings
10
oligofren

La page de manuel pmset recommande également d’utiliser 25 au lieu de 1.

0000 1000 (bit 3) encourage le téléavertisseur dynamique à rechercher des pages inactives avant l'hibernation, afin de réduire l'encombrement de la mémoire.

0001 0000 (bit 4) encourage le téléavertisseur dynamique à effectuer une recherche plus agressive avant l'hibernation, afin de réduire l'encombrement de la mémoire.

Nous vous déconseillons de modifier les paramètres d'hibernation. Les modifications que vous apportez ne sont pas prises en charge. Si vous choisissez quand même de le faire, nous vous recommandons d’utiliser l’un de ces trois réglages. Pour votre bien et pour le mien, veuillez ne pas utiliser autre chose que 0, 3 ou 25.

[...]

hibernatemode = 25 (binaire 0001 1001) n'est configurable que via pmset. Le système stockera une copie de la mémoire dans la mémoire persistante (le disque) et coupera l’alimentation en mémoire. Le système restaurera à partir de l'image du disque. Si vous souhaitez une "veille prolongée" - sommeil plus lent, réveil plus lent et meilleure durée de vie de la batterie, vous devez utiliser ce paramètre.

Certains ordinateurs portables entrent maintenant en veille prolongée ( mode veille ) après environ une heure de sommeil normal si:

  • Power Nap n'est pas activé (donc pas par défaut)
  • L'ordinateur est sur batterie
  • L'ordinateur n'est pas connecté à des périphériques USB ou à des écrans externes et n'est pas associé à des périphériques Bluetooth.

Les ordinateurs portables, les Mac mini et les iMac utilisent environ 0,2 à 0,4 W en mode veille ou veille prolongée, et de 0,8 à 1,4 W en mode veille. Le mode Veille prolongée (et le mode veille + veille utilisé par défaut par les ordinateurs portables) pourrait également réduire la durée de vie des lecteurs .

9
Lri

Et pour OS X Lion, cela fonctionne mieux pour l'hibernation

Sudo pmset - un mode d'hibernation 25

que

Sudo pmset - un mode d'hibernation 1

car le mode hibernation 1 peut provoquer des accidents pour une raison quelconque.

6
Willem

Pour les réponses qui reposent sur le twiddling du 'hibernatemode' via pmset, il est utile de noter que l'option 'force' sur pmset rend les modifications transitoires. Le paramètre ne sera pas mémorisé lorsque le système sortira de son mode veille prolongée. Par exemple:

pmset -a hibernatemode 25 force

Change le mode Veille prolongée pour représenter une veille prolongée classique (c’est-à-dire que l’état du système est écrit sur le disque et que l’alimentation est coupée), mais seulement jusqu’à la prochaine mise sous tension du système. o les paramètres sont lus à partir du disque (pmset touch).

L'utilisation de l'option force évite d'avoir à enregistrer et à restaurer les paramètres actuels du mode hibernatemode.

5
user210274

ouaip. ça s'appelle dormir en sécurité. Le moyen le plus simple de l'obtenir est d'utiliser le widget de sommeil profond .

3
yanokwa

L’hibernation se déclenchera également automatiquement si la batterie de votre ordinateur portable s’épuise complètement.

3
Bob D

J'ai lu que "Safe Sleep" est activé par défaut sur tous les Mac Intel et sur certains modèles de machines PowerPC récents (je pense que les Intel mini ont ce support, mais les PPC n'en ont probablement pas, sans piratage non pris en charge). .

Mais "Safe Sleep" en soi n'est pas exactement la même chose que "hibernation". C’est une combinaison de la sauvegarde de RAM sur le disque et de la veille normale. Cela permet une réactivation rapide et préserve également l'état du système en cas de coupure totale de courant pendant que l'ordinateur est en veille.

Vous pouvez savoir si un système utilise la mise en veille sécurisée en vérifiant (après au moins une mise en veille) un fichier/var/vm/sleepimage de la même taille que la RAM installée. De plus, lorsque la mise en veille sécurisée est activée, le délai entre le clic sur l'élément de menu Veille (ou sur le bouton ou le maintien de la commande Commande-Option-Éjecter) est long avant que le voyant d'état de l'appareil commence sa boucle de fondu normal.

Le dernier élément de la solution consiste à éteindre complètement la machine après avoir sauvegardé RAM l’image de veille. Il semble qu'il soit possible de configurer cela en utilisant le programme en ligne de commande pmset pour définir le hibernatemode . Vous pouvez acheter quelque chose comme veille prolongée pour un moyen automatisé de modifier cette configuration.

2
Chris Johnsen