Pourquoi mon MacBook Pro ne se met-il pas automatiquement en veille?

16

Mon MacBook est configuré pour se mettre en veille après 2 minutes lorsqu'il est sur batterie (via le volet de préférences Energy Saver.) Cependant, lorsque je le laisse inactif, il éteint uniquement l'écran - il ne se met pas réellement en veille. Cela signifie que si je le laisse et oublie de fermer le couvercle, il se retrouve toujours avec une batterie morte.

Le système dort correctement s'il est déclenché manuellement ( - Veille) ou en fermant le couvercle. Je l'ai testé sans aucun périphérique USB connecté et sur un nouveau compte utilisateur, sur la possibilité qu'un programme d'arrière-plan empêche le sommeil. Aucune information pertinente n'est imprimée sur la console au moment où le système doit se mettre en veille.

J'ai effectué une réinitialisation de PRAM et SMC en vain, ainsi que les superstitieux habituels Verify Disk Permissions.

Y a-t-il autre chose que je devrais essayer avant de réinstaller OS X?

Il s'agit d'un MacBookPro5,5OS 10.6.6 en cours d'exécution.

Il convient de noter que j'ai souffert de ce problème il y a quelque temps en raison d'un bogue dans un démon d'assistance pour le produit Things , mais que ce problème était légèrement différent et impliquait un sommeil d'affichage. De plus, j'ai vérifié que le démon d'assistance ne s'exécutait pas lors de mes tests.

Information additionnelle:

J'ai commencé à travailler sur le document Apple intitulé « Pourquoi votre Mac peut ne pas dormir ou rester en mode veille » . J'ai découvert que ce problème n'apparaît pas lorsque je démarre en toute sécurité mon ordinateur. J'ai diffrépertorié les processus et découvert que les programmes suivants ne s'exécutent qu'en mode normal et sont donc des coupables possibles:

  • Quick Look Helper
  • cvmsComp_x86_64
  • kextcache
  • launchd
  • mdworker
  • mdworker
  • nmblookup
  • vmnet-bridge
  • vmnet-dhcpd
  • vmnet-dhcpd
  • vmnet-natd
  • vmnet-netifup
  • vmnet-netifup
Phil Calvin
la source
Assurez-vous que vous définissez la Veille de l'ordinateur et non la Veille de l'affichage. Photo ici: imgur.com/yVGb4.png
Nathan Greenstein
1
Par curiosité, pouvez-vous essayer de régler la Veille de l'affichage sur quelque chose après la Veille de l'ordinateur? Peut-être que nous trouverons un bug. L'autre chose qui me vient à l'esprit: peut-être que votre économiseur d'écran s'active et empêche quelque chose de dormir (ce serait aussi un bug). Essayez de modifier les paramètres jusqu'à ce que tout se passe bien, économiseur d'écran, veille de l'écran, veille de l'ordinateur, avec au moins une minute entre chacun.
Nathan Greenstein
1
Le volet des préférences vous empêche de définir la Veille de l'affichage sur après Veille de l'ordinateur. Je les ai essayés à la fois comme la même chose et différents (en pensant que le premier pourrait avoir un bug.) J'ai également essayé l'économiseur d'écran, la veille de l'écran et la veille de l'ordinateur avec une minute entre eux, mais pas de dés.
Phil Calvin
1
@Martin Wickman: J'ai peut-être résolu cela. J'avais moins de 5% d'espace libre sur mon volume système, qui était enregistré dans le journal système (mais pas d'une manière qui indiquait clairement qu'il y avait une relation.) La libération de 50 Go a résolu le problème. Vous manquez également d'espace libre?
Phil Calvin
1
Je viens de découvrir pmset -g assertionsce qui montre des informations sur le processus (ou quelque chose) qui empêche le sommeil. Vérifiez-le.
Martin Wickman

Réponses:

5

Pour aider à déboguer les problèmes de sommeil, essayez la pmsetcommande dans le terminal:

$ pmset -g assertions

Assertion status system-wide:
   ChargeInhibit                           0
   PreventUserIdleDisplaySleep             0
   PreventUserIdleSystemSleep              1
   NoRealPowerSources_debug                0
   CPUBoundAssertion                       0
   EnableIdleSleep                         1
   PreventSystemSleep                      0
   DisableInflow                           0
   DisableLowPowerBatteryWarnings          0
   ExternalMedia                           0

Listed by owning process:
  pid 2520: [0x0000012c000009d8] PreventUserIdleSystemSleep named: "com.apple.audio.'AppleHDAEngineOutput:1B,0,1,2:0'.noidlesleep" 

Dans ce cas, c'est le processus 2520 qui gâche. Vérifiez-le dans le moniteur d'activité et tuez-le (/ usr / sbin / coreaudiod démarré par iTunes).

Après cela, réexécutez la commande:

Assertion status system-wide:
   ChargeInhibit                           0
   PreventUserIdleDisplaySleep             0
   PreventUserIdleSystemSleep              0
   NoRealPowerSources_debug                0
   CPUBoundAssertion                       0
   EnableIdleSleep                         1
   PreventSystemSleep                      0
   DisableInflow                           0
   DisableLowPowerBatteryWarnings          0
   ExternalMedia                           0

Aucun indicateur pour PreventUserIdleSystemSleep.

Martin Wickman
la source
C'est une utilisation fantastique de pmsetje ne connaissais pas. Merci d'avoir porté cela à mon attention.
Phil Calvin
Que faites-vous si le processus n'est pas en cours d'exécution et PreventUserIdleDisplaySleepest toujours défini sur 1?
Abhi Beckert
4

J'ai eu ce même problème avec mon MacBook Pro 3,1. C'est extrêmement frustrant. Je suis allé jusqu'à réinstaller complètement OS X, ce qui n'a pas résolu le problème. Cela m'amène à croire qu'il s'agit probablement d'un problème matériel dans mon cas.

J'ai abandonné le dépannage du problème et j'utilise simplement PleaseSleep .

PleaseSleep est un logiciel utilitaire conçu pour Mac OS X qui aide à mettre votre ordinateur en veille lorsque vous savez qu'une autre application empêche votre Mac de se mettre en veille.

PleaseSleep se trouve en arrière-plan et attend la minuterie de mise en veille que vous avez définie dans le volet des préférences Energy Saver. Selon les préférences que vous avez définies, PleaseSleep essaiera de mettre votre ordinateur en veille lorsque la minuterie de mise en veille programmée se déclenchera. PleaseSleep est très facile à configurer, vous pouvez activer, désactiver et accéder à ses préférences via l'icône de la barre de menus du système. Vous pouvez choisir d'avoir PleaseSleep activer la fonction de veille tout le temps, ou vous pouvez dire à PleaseSleep d'activer la fonction de veille uniquement lorsque certaines applications sont en cours d'exécution.

Graham
la source
C'est effrayant! Si je n'arrive pas à trouver une "vraie" solution, je vais très certainement essayer ce produit et accepter votre réponse. Cependant, je suis têtu et je ne veux pas abandonner pour l'instant. =)
Phil Calvin
Ne fonctionne pas le 10.8
sorin
3

J'ai enfin mon système en veille de manière fiable. J'ai changé trois choses pour arriver à ce point, qui, je crois, ont toutes contribué:

  • J'avais peu d'espace disque (moins de 5% gratuit) sur mon volume principal. Le noyau s'en plaignait system.log(visible dans Console.app) à propos de l'heure à laquelle il aurait dû dormir.

  • J'ai désactivé Dropbox, qui accède au disque fréquemment et désagréablement, et empêcherait le sommeil dans Snow Leopard.

  • J'ai mis à jour un vieux Chrome embarrassant tous les soirs, et je suis maintenant sur 11.0.658.0 (73560) . Il existe plusieurs bogues ouverts concernant ce Chrome / Chrome empêchant le sommeil inactif. Cependant, je ne l'ai découvert qu'après avoir mis le système en veille après un redémarrage sans aucun programme en cours d'exécution.

Les observations techniques suivent:

Il convient de noter que le volet de préférences Energy Saver se trouve un peu. Je l'ai mis en veille et éteignez l'écran après 1 minute, mais le système ne se met pas en veille pendant 3 minutes et 30 secondes, donnez ou prenez quelques secondes pour écrire l'image Safe Sleep. L'écran prend en fait 2 minutes pour s'endormir. Je soupçonne que c'est un cas d'Apple qui sait mieux que nous - 1 minute est probablement tout simplement trop rapide. Quoi qu'il en soit, cela rend les problèmes de débogage comme celui-ci difficiles car vous devez attendre plus longtemps qu'indiqué pour voir si le système va vraiment se mettre en veille.

Le fait que ces deux applications aient contribué malgré le fait de ne rien faire de particulièrement intensif suggère que Snow Leopard a changé quelque chose sur la façon dont le système décide si un sommeil inactif peut se produire. Il existe une API documentée pour désactiver le sommeil inactif, mais il semble également que l'activité du disque (spécifiquement écrit) plus d'une fois par minute réinitialise également le minuteur de sommeil et retarde ainsi le sommeil. Toute application qui écrit fréquemment est donc une cause possible. sudo fs_usage -e grep -f filesys | grep -e writedans une fenêtre de terminal peut aider à révéler les coupables.

Phil Calvin
la source
1
L'utilisation de la commande ici devrait probablement être: sudo fs_usage -e grep -f filesys | grep write Sans -e, ça va juste vomir les écritures grep. Inutile.
Dominic Hopton
Intéressant! Aucun vomissement ne s'est produit lorsque je testais cela sur Snow Leopard, mais c'est le cas sur Lion. Fixé.
Phil Calvin
Il y a un fil assez long sur les forums de discussion Apple qui suggère que Lion présente de nouveaux problèmes de sommeil possibles liés aux imprimantes et aux partages réseau. Plus de choses à essayer si vous êtes, comme moi, à bout de souffle.
Phil Calvin
0

Peut-être l'indexation Spotlight. Vous pouvez tester cela en allant dans Préférences Système> Spotlight> Résultats de la recherche et en décochant tout. Vérifiez ensuite si votre MacBook se met en veille.

conorgriffin
la source
J'ai désactivé l'indexation à l'aide de mdutil -a -i off, mais le problème a persisté. Veuillez me faire savoir si cela n'est pas fonctionnellement équivalent à votre suggestion.
Phil Calvin
Je ne sais pas si c'est fonctionnellement le même. Mais il est rapide à tester, alors pourquoi ne pas l'essayer comme décrit?
conorgriffin
As-tu Skype?
Martin Marconcini
@ martin-marconcini - Vous demandez @ Phil-Calvin ou moi?
conorgriffin