Como depurar um problema de suspensão?

11

Eu costumava ter o Fedora 14 instalado neste HP Compaq 610, e o recurso de suspensão funcionava bem. Agora que instalei o Scientific Linux 6.1 suspend, não funciona mais. Como depurar / corrigir?

LanceBaynes
fonte
É o shell suspenso (<kbd> Cntl-z </kbd>) ou o sistema operacional (suspensão ou hibernação)?
Arcege
@Arcege: Eu diria que ele quis dizer suspender a ACPI, pois se tornou um problema tão comum nos dias de hoje.
JM Becker

Respostas:

9

Existem várias maneiras de lidar com os recursos de suspensão e hibernação, muitos dos métodos antigos estão obsoletos. Isso dificultou a busca de soluções, pois parece que todas as soluções não têm nenhuma relação com a seguinte. Com isso dito ...

O método atualmente recomendado, preconizado em http://pm-utils.freedesktop.org/wiki/ , deve estar disponível para as distribuições mais recentes. Primeiro, verificaria se você pm-utilsinstalou e se os comandos incluídos estão operando conforme o esperado.

Veja se o pacote está instalado, digite este comando no terminal

rpm -qa | grep pm-utils

Isso deve gerar a versão que você instalou. Se você não obtiver a saída esperada, precisará instalar o pacote.

sudo yum install pm-utils

Depois de verificar isso, teste sua capacidade de suspender.

sudo pm-suspend

Se você não suspender e não obtiver saída, verifique a saída dmesg recente.

dmesg | tail -50

Isso deve ajudar você a começar, uma vez que você tenha algumas pistas, é muito mais fácil ir mais longe na trilha. Poste de volta com comentários sobre seus resultados, eu posso ajudá-lo com o resto.

JM Becker
fonte
Até instalei o pm-utils-devel. pm-suspend com usuário root faz o mesmo que com um usuário normal quando clica no GNOME / menu-> suspend-> nothing, a máquina diz apenas "a rede está desligada", então apenas espera e espera, etc. inicia qualquer coisa depois que eu estou tentando suspender. Vejo o dmesg mais tarde, obrigado!
precisa saber é o seguinte
A dmesgsaída dirá o que está acontecendo nos bastidores. Mais importante, o que em particular pode estar falhando. O e BTW, você não precisa do pacote devel. Você só precisa deles ao compilar código, portanto, sinta-se à vontade para limpar. Há muitas direções a partir daqui, apenas não o envio a latir na árvore errada.
JM Becker
1
@LanceBaynes você tentou executar os pm-suspendcomandos de um shell e não através do menu GNOME? Tente echo -n "mem" >/sys/power/statecomo root. Além disso, se você estiver usando, acpipoderá acpi_listenver quais eventos estão sendo gerados, por exemplo, ao fechar a tampa.
WOW, wtf? Eu "echo -n" mem "> / sys / power / state" com o usuário root e meu realmente suspenso !!!! UAU. O único problema agora é que, quando estou fazendo esse tipo de suspensão, o gnome-screensaver não inicia e me deixa um PC desbloqueado. Como contornar isso? Como posso criar um script / qualquer coisa para que um usuário normal também possa usar esse tipo de suspensão? não apenas o usuário root? - e mais uma coisa: OBRIGADO!
precisa saber é o seguinte
2
@LanceBaynes: Agora está funcionando? ... Eu costumava acreditar que esse tipo de "surpresa" Break / Repair só acontecia com o Widoze. Infelizmente, parei de acreditar nisso por um tempo. Mas ... pelo lado positivo, isso acontece com menos frequência! E sua suspensão está funcionando, então são ótimas notícias!
perfil completo de JM Becker
8

Tente isso como root:

PM_DEBUG=true pm-suspend

Em seguida, verifique se /var/log/pm-suspend.loghá dicas sobre o que pode dar errado.

Se você pode suspender, mas não continuar, há um bom artigo no wiki do Ubuntu sobre como depurar esse problema.

Mika Fischer
fonte
2

Se você deseja obter apenas quando suspendeu / reiniciou o sistema, pode tentar o seguinte:

cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed";
Feb  7 10:44:23 dmatej-lenovo systemd-sleep[19900]: Suspending system...
Feb  7 10:44:33 dmatej-lenovo systemd-sleep[19900]: System resumed.
Feb  7 10:45:35 dmatej-lenovo systemd-sleep[20707]: Suspending system...
Feb  7 12:58:39 dmatej-lenovo systemd-sleep[20707]: System resumed.
Feb  7 14:42:55 dmatej-lenovo systemd-sleep[24690]: Suspending system...
Feb  7 16:31:57 dmatej-lenovo systemd-sleep[24690]: System resumed.
dmatej
fonte
1

Como é sugerido por Mika, como root:

PM_DEBUG=true pm-suspend

Detalhes em:

/var/log/pm-suspend.log

Nesse caso, você está procurando onde

[...] service [servicename] suspend suspend success

termina e

[...] service [servicename] suspend resume success

começa. Em algum lugar entre você pode encontrar chamadas retornando erros, momento em que a suspensão é inibida. Nesse caso, você pode suspender as alterações sendo revertidas. Descubra qual chamada de serviço está lançando o erro, abra-o no vi e dê uma olhada nele.

Eu tive o mesmo problema em que, após a instalação xboxdrvem um Ubuntu 12.04, uma chamada sendo feita em uma regra /etc/pm/sleep.d/estava tentando parar um serviço que nunca foi iniciado ou inexistente, neste caso xboxdrv,. Acontece que ele nunca pôde ser iniciado em primeiro lugar, porque não havia /lib/modules/uinput.komódulo, porque esse módulo é mesclado no kernel. Isso fez com que a instrução de caso /etc/pm/sleep.d/xboxdrvlançasse um erro quando correspondesse "suspender" à chamada service xboxdrv stop. Anexar a linha com #ignora a instrução, às custas de ter que desconectar e reconectar seu controlador ao suspender e depois retomar.

SYANiDE
fonte
Eu não tenho erros no log de depuração após a execução deste, mas magicamente ele começou a trabalhar novamente ;-) Eu estou querendo saber se é correção permanente ...
Wirone