Por que meu MacBook Pro não dorme automaticamente?

16

Meu MacBook está configurado para dormir após 2 minutos enquanto estiver na bateria (através do painel de preferências Economia de energia.) No entanto, quando o deixo ocioso, ele apenas desliga a tela - na verdade, ele não dorme. Isso significa que, se eu o deixar e esquecer de fechar a tampa, ela sempre acaba com a bateria descarregada.

O sistema dorme corretamente se for acionado manualmente (Sleep - Suspensão) ou fechando a tampa. Eu testei sem dispositivos USB conectados e em uma nova conta de usuário, com a chance de um programa em segundo plano impedir o sono. Não há informações relevantes impressas no console no momento em que o sistema deve dormir.

Executei uma redefinição PRAM e SMC sem sucesso, bem como as supersticiosas habituais permissões de disco de verificação.

Há algo mais que eu deva tentar antes de reinstalar o OS X?

Este é um MacBookPro5,5sistema operacional em execução 10.6.6.

Vale a pena notar que sofri com esse problema há algum tempo devido a um bug em um daemon auxiliar do produto Things , mas esse problema era um pouco diferente e envolvia a exibição de suspensão. Além disso, verifiquei que o daemon auxiliar não estava em execução durante meus testes.

Informação adicional:

Comecei a trabalhar no documento da Apple intitulado " Por que o seu Mac pode não dormir ou permanecer no modo de suspensão " . Descobri que esse problema não aparece quando eu inicializo com segurança o meu computador. I diff'd as listas de processos e descobriu que os seguintes programas só estão em execução quando em inicialização normal, e são, portanto, possíveis culpados:

  • 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
fonte
Verifique se está configurando o modo de suspensão do computador e não o modo de exibição de suspensão. Foto aqui: imgur.com/yVGb4.png
Nathan Greenstein
1
Por curiosidade, você pode tentar definir o modo de suspensão de exibição como algo após o modo de suspensão do computador? Talvez encontremos um bug. A outra coisa que vem à mente: talvez o seu protetor de tela esteja ativando e impedindo que algo durma (isso também seria um bug). Tente alterar as configurações até que ocorra sem problemas, Proteção de tela, Repouso de exibição, Repouso de computador, com pelo menos um minuto entre cada um.
Nathan Greenstein
1
O painel de preferências impede que você defina o modo de suspensão de exibição como após suspensão do computador. Tentei-os da mesma maneira e diferentes (pensando que o primeiro pode ter um bug). Também tentei o Screen Saver, Display Sleep e Computer Sleep com um minuto entre eles, mas sem dados.
Phil Calvin
1
@ Martin Wickman: Eu posso ter resolvido isso. Eu tinha menos de 5% de espaço livre no volume do sistema, que estava sendo registrado no log do sistema (mas não de uma maneira que deixasse claro que havia um relacionamento.) A liberação de 50 GB resolveu o problema. Você também tem pouco espaço livre?
Phil Calvin
1
Acabei de descobrir sobre o pmset -g assertionsque mostra algumas informações sobre qual processo (ou algo) está impedindo o sono. Confira.
Martin Wickman 15/10

Respostas:

5

Para ajudar a depurar problemas de suspensão, tente o pmsetcomando no 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" 

Nesse caso, é o processo 2520 que está atrapalhando. Confira no monitor de atividades e mate-o (/ usr / sbin / coreaudiod iniciado pelo iTunes).

Depois disso, execute o comando novamente:

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

Não há sinalizadores para PreventUserIdleSystemSleep.

Martin Wickman
fonte
Este é um uso fantástico de que pmseteu não conhecia. Obrigado por trazer isso à minha atenção.
Phil Calvin #
O que você faz se o processo não estiver em execução e PreventUserIdleDisplaySleepainda estiver definido como 1?
Abhi Beckert
4

Eu tive esse mesmo problema com o meu MacBook Pro 3,1. É extremamente frustrante. Fui até o ponto de reinstalar completamente o OS X, o que não resolveu o problema. Isso me leva a acreditar que provavelmente é um problema de hardware no meu caso.

Desisti de solucionar o problema e use o PleaseSleep .

O PleaseSleep é um software utilitário projetado para o Mac OS X que ajuda a colocar o computador no modo de suspensão quando você sabe que algum outro aplicativo está impedindo o seu Mac de dormir.

O PleaseSleep fica em segundo plano e aguarda o timer que você configurou no painel de preferências de Economia de energia. Dependendo das preferências definidas, o PleaseSleep tentará colocar o computador no modo de suspensão quando o timer programado for ativado. O PleaseSleep é muito fácil de configurar, você pode ativar, desativar e acessar suas preferências através do ícone da barra de menus do sistema. Você pode optar por ativar o PleaseSleep a função de suspensão o tempo todo, ou você pode solicitar ao PleaseSleep para ativar a função de suspensão somente quando determinados aplicativos estiverem em execução.

Graham
fonte
Isso é assustador! Se não conseguir encontrar uma solução "verdadeira", certamente tentarei este produto e aceitarei sua resposta. No entanto, sou teimoso e não estou disposto a desistir ainda. =)
Phil Calvin
Não funciona em 10,8
sorin
3

Finalmente, meu sistema está inativo de maneira confiável novamente. Mudei três coisas para chegar a esse ponto, e acredito que todos contribuíram:

  • Eu estava com pouco espaço em disco (menos de 5% livre) no meu volume principal. O kernel estava reclamando disso para system.log(visível no Console.app) sobre o tempo que deveria estar dormindo.

  • Desabilitei o Dropbox, que acessa o disco com frequência e detestável, e é relatado para evitar o sono no Snow Leopard.

  • Atualizei de um Chromium embaraçosamente antigo todas as noites e agora estou no 11.0.658.0 (73560) . Existem vários erros abertos sobre este Chrome / Chromium, impedindo o sono inativo. No entanto, eu descobri isso somente depois que o sistema ficou inativo após uma reinicialização sem nenhum programa em execução.

Seguem as observações técnicas:

Vale a pena notar que o painel de preferências Economizador de energia está um pouco. Configurei para dormir e desligue a tela após 1 minuto, mas o sistema não dorme por 3 minutos e 30 segundos, aguarda alguns segundos para gravar a imagem de suspensão segura. A tela leva 2 minutos para dormir. Suspeito que seja um caso da Apple sabendo melhor do que nós - 1 minuto é provavelmente rápido demais. Independentemente disso, isso dificulta problemas de depuração como esse, porque você precisa esperar mais do que o indicado para ver se o sistema realmente está inativo.

O fato de esses dois aplicativos terem contribuído, apesar de não fazer nada particularmente intenso, sugere que o Snow Leopard mudou algo sobre como o sistema decide se o sono ocioso pode ocorrer. Há uma API documentada para desativar o sono inativo, mas também parece que a atividade do disco (gravações específicas) mais de uma vez por minuto também redefine o temporizador e, portanto, atrasa o sono. Qualquer aplicativo que escreve com frequência é, portanto, uma causa possível. sudo fs_usage -e grep -f filesys | grep -e writeem uma janela do terminal pode ajudar a revelar os culpados.

Phil Calvin
fonte
1
O uso do comando aqui provavelmente deve ser: sudo fs_usage -e grep -f filesys | grep write Sem -e, ele vomitará as gravações grep. Não ajuda.
Dominic Hopton
Interessante! Nenhum vômito ocorreu quando eu estava testando isso no Snow Leopard, mas ocorre no Lion. Fixo.
Phil Calvin
Há um tópico bastante longo nos fóruns de discussão da Apple que sugere que o Lion introduz alguns novos possíveis problemas de suspensão relacionados a impressoras e compartilhamentos de rede. Mais coisas para tentar se você estiver, como eu estava, no limite.
Phil Calvin
0

Pode ser a indexação do Spotlight. Você pode testar isso acessando Preferências do sistema> Spotlight> Resultados da pesquisa e desmarcando tudo. Então veja se o seu MacBook entra em suspensão.

Conorgriffin
fonte
Desativei a indexação usando mdutil -a -i off, mas o problema persistiu. Informe-me se isso não for funcionalmente equivalente à sua sugestão.
Phil Calvin
Não sei se é funcionalmente o mesmo. Mas é rápido testar, por que não experimentá-lo como descrito?
Conorgriffin
Você tem Skype?
Martin Marconcini
@ martin-marconcini - Você está perguntando @ Phil-Calvin ou eu?
conorgriffin