it-swarm-es.com

¿Cómo puedo depurar un problema de suspensión a RAM en Linux?

Espero obtener sugerencias basadas en la experiencia sobre cómo pasar de la depuración de problemas de suspensión a RAM. Los consejos específicos de mi situación (detallados a continuación) serían geniales, pero también estoy interesado en el consejo general sobre cómo depurar tales problemas.

el problema :

A menudo, cuando intento suspender mi máquina, se atasca en un estado "no suspendido pero no despierto". A menudo, la pantalla será completamente negra, pero a veces tendrá el siguiente mensaje de error en él:

GLib-WARNING **: getpwuid_r(): failed due to unknown user id (0) 

Además, este estado también irá acompañado por los fanáticos pateando en un equipo alto. La única forma de sacarla de este estado es apagar manualmente la computadora portátil.

alguna información

$ 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

He echado un vistazo a /var/log/dmesg y /var/log/pm-suspend.log, pero no sé lo que estoy buscando y nada se destaca. No estoy seguro de si está relacionado, pero encontré muchos de los siguientes en /var/log/kern.log:

EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro,commit=600
15
Steven D

¿Tienes un chipset de gráficos de Intel? Estaba obteniendo lo que suena el mismo problema en mi ThinkPad X200s que ejecuta Ubuntu 10.10, ¡y esta solución (desde 2008!) Lo arregló para mí: http://ubuntuforums.org/showpost.php?p=6105510&postcount= 12

3
lawnjam

PM_DEBUG Y PM_TRACE Aparentemente son las instalaciones de depuración más profunda que hay en este momento. Cuando no obtienes nada significativo de los registros de nivel superior, AFAIK Este es el único mecanismo para retroceder cuando se encuentra con la temida "Misteriosa pantalla en blanco en el currículum en el currículum". La mayoría de las veces estamos tratando con un controlador de dispositivo roto con bastante frecuencia. También puede echar un vistazo a mi saga de depuración del conductor inalámbrico Broadcom Brcsmac en Kernel Bug 34682 para lo que sugieren y busquen los desarrolladores de kernel.

6
lkraav

Tengo sospechas de que el problema puede deberse a la BIOS que no se informa correctamente sobre lo que realmente usa MMEM.

Por defecto, esta opción está vigente:

memory_corruption_check_size=64K

Puede intentar configurarlo a los valores más grandes para hacer que el escáner de corrupción de memoria examine un trozo más grande de Lowmem.

Busque "Memory_Corruption_Check_Size" en

etc.

Me interesaría saber lo que encuentras, en todo caso.

1
user2472

Mi experiencia en trabajar en esta área estaba en Windows CE, en lugar de Linux.

Durante el ciclo de suspensión/reanudación, el sistema operativo apagará progresivamente la funcionalidad del sistema operativo que restringió su capacidad para obtener información precisa confiable sobre lo que está sucediendo utilizando la funcionalidad del sistema operativo. Además, su conexión de monitoreo puede (por ejemplo, si el problema está relacionado con el tiempo) altere el resultado.

Las herramientas de preferencia comienzan con una conexión del depurador C/C++ al sistema operativo en el extremo superior, y en los datos de envío de extremo de nivel muy bajo a través de un puerto serie/POST o en el hardware no x86 JTAG Depurador o equivalentes. El resultado final es largas horas trabajando el flujo de código y encontrar el punto cuando se comporta de manera diferente del comportamiento normal. En ese momento, la solución suele ser obvia. Mantenga buenas notas y haga un cambio a la vez.

Tomó 6 semanas para identificar el problema de encendido que tuvimos con Windows CE. Tuvimos una junta de procesador PC104 que podríamos apagar durante 10 o 60 segundos y encender sin problemas. Sin embargo, si se eliminó la energía durante 25 segundos, no se encendería. Resultó que teníamos suficiente capacitancia para mantener el contenido de DRAM intacto sin poder durante unos 20 segundos, por lo que en un breve ciclo de apagado, Windows CE pensó que se estaba reanudando de un estado suspendido. Cuando se conservó toda la memoria, en realidad sucedería realizar un currículum, cuando la memoria estaba parcialmente corrupta, se confundiría bastante durante el currículum.

Buena suerte.

0
Michael Shaw