Espero obter sugestões baseadas na experiência sobre como depurar o problema de suspensão na RAM. Um conselho específico para minha situação (detalhado abaixo) seria ótimo, mas também estou interessado em conselhos gerais sobre como depurar esses problemas.
O problema:
Freqüentemente, quando tento suspender minha máquina, ela fica presa no estado "não suspensa, mas não desperta". Freqüentemente, a tela fica completamente preta, mas às vezes possui a seguinte mensagem de erro:
GLib-WARNING **: getpwuid_r(): failed due to unknown user id (0)
Além disso, esse estado também será acompanhado pelos fãs em alta velocidade. A única maneira de tirá-lo desse estado é desligar manualmente o laptop.
Alguma informação
$ uname -a
Linux baltar 2.6.35-22-generic #34-Ubuntu SMP Sun Oct 10 09:26:05 UTC 2010 x86_64 GNU/Linux
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 10.10
Release: 10.10
Codename: maverick
Dei uma olhada /var/log/dmesg
e /var/log/pm-suspend.log
, mas não sei o que estou procurando e nada se destaca. Não tenho certeza se está relacionado, mas encontrei muitos dos seguintes itens em /var/log/kern.log
:
EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro,commit=600
No LSB modules are available.
exibidas logo apóslsb_release -a
.Respostas:
Você tem um chipset gráfico da Intel? Eu estava recebendo o que parece o mesmo problema no meu ThinkPad X200s executando o Ubuntu 10.10, e esta solução alternativa (de 2008!) O corrigiu para mim: http://ubuntuforums.org/showpost.php?p=6105510&postcount=12
fonte
PM_DEBUG e PM_TRACE são aparentemente os recursos de depuração mais profundos que existem no momento. Quando você não obtém nada significativo dos logs de nível superior, o AFAIK é o único mecanismo para recorrer ao encontrar o temido sintoma "misteriosa tela em branco ao retomar". Na maioria das vezes, estamos lidando com um driver de dispositivo quebrado, sutil e com bastante freqüência. Você também pode dar uma olhada na minha saga de depuração de driver sem fio Broadcom brcmsmac no bug 34682 do kernel para saber o que os desenvolvedores do kernel sugerem e procuram.
fonte
Suspeito que o problema possa estar relacionado ao fato de o BIOS não estar relatando corretamente o que ele realmente usa.
Por padrão, esta opção está em vigor:
Você pode tentar definir valores maiores para fazer com que o scanner de corrupção de memória examine um pedaço maior de lowmem.
Procure por "memory_corruption_check_size" em
etc.
Eu estaria interessado em saber o que você encontra, se houver.
fonte
Minha experiência em trabalhar nesta área foi no Windows CE, e não no Linux.
Durante o ciclo de suspensão / retomada, o sistema operacional desligará progressivamente a funcionalidade do sistema operacional, restringindo sua capacidade de obter informações confiáveis e precisas sobre o que está acontecendo usando a funcionalidade do sistema operacional. Além disso, sua conexão de monitoramento pode (por exemplo, se o problema estiver relacionado ao tempo) alterar o resultado.
As ferramentas preferenciais começam com uma conexão do depurador C / C ++ com o SO na extremidade alta e no nível muito baixo enviando dados por uma porta serial / códigos POST ou pelo depurador JTAG sem hardware X86 ou equivalentes. O resultado final são longas horas trabalhando no fluxo do código e encontrando o ponto em que ele se comporta de maneira diferente do comportamento normal. Nesse ponto, a correção geralmente é óbvia. Faça boas anotações e faça uma alteração de cada vez.
Demorou 6 semanas para identificar o problema de inicialização que tivemos no Windows CE. Tínhamos uma placa de processador PC104 que podia ser desligada por 10 ou 60 segundos e ligada sem problemas. No entanto, se a energia fosse removida por 25 segundos, ela não ligaria. Descobrimos que tínhamos capacitância suficiente para manter intacto o conteúdo da DRAM sem energia por cerca de 20 segundos; portanto, em um curto ciclo de desligamento, o Windows CE pensou que estava voltando de um estado suspenso. Quando toda a memória era preservada, ela realmente conseguia executar um resumo, quando a memória estava parcialmente corrompida, ficava bastante confusa durante o resumo.
Boa sorte.
fonte