Minha irmã tem um laptop que sempre bateu nela durante o Windows (tela azul) (o hardware é relativamente novo e atualizado). Naquela época, ela enviou os arquivos de despejo do Windows para a Dell, que enviou um engenheiro que mudou a placa-mãe, mas ainda depois de instalar o Ubuntu em muitas versões diferentes usando muitos kernels diferentes, os pânicos não iriam embora.
Então eu decidi agir para encontrar a causa exata do problema, eu instalei e configurei o pacote linux-crashdump (kdump-tools) para iniciar automaticamente um kernel de travamento usando o kexec que gera um arquivo de despejo da memória e também armazena a saída dmesg.
Eu também instalei o crash, o kernel-image-generic-dbgsym e o mcelog, para ter tudo para reunir o máximo de informações possível.
Então o Laptop caiu e o kernel crash gerou com sucesso um arquivo de dump e armazenou a saída do dmesg.
Eu também verifiquei / var / log / mcelog mas o arquivo estava completamente vazio, embora o daemon estivesse rodando antes do travamento, o que é estranho, mas depois de tudo ainda temos a saída do dmesg, que diz:
[ 3933.364173] mce: [Hardware Error]: CPU 4: Machine Check Exception: 5 Bank 3: be00000000200135
[ 3933.364177] mce: [Hardware Error]: RIP !INEXACT! 10:<ffffffff8171d9c2> {_raw_spin_lock+0x12/0x50}
[ 3933.364182] mce: [Hardware Error]: TSC a0255fbd7f7 ADDR 42dd14480 MISC d62285
[ 3933.364185] mce: [Hardware Error]: PROCESSOR 0:306a9 TIME 1398357146 SOCKET 0 APIC 1 microcode 15
[ 3933.364186] mce: [Hardware Error]: Run the above through 'mcelog --ascii'
[ 3933.364188] mce: [Hardware Error]: CPU 0: Machine Check Exception: 5 Bank 3: be00000000200135
[ 3933.364190] mce: [Hardware Error]: RIP !INEXACT! 33:<0000045a7992c1b5>
[ 3933.364191] mce: [Hardware Error]: TSC a0255fbd7f0 ADDR 42dd14480 MISC d62285
[ 3933.364194] mce: [Hardware Error]: PROCESSOR 0:306a9 TIME 1398357146 SOCKET 0 APIC 0 microcode 15
[ 3933.364195] mce: [Hardware Error]: Run the above through 'mcelog --ascii'
[ 3933.364196] mce: [Hardware Error]: Machine check: Processor context corrupt
[ 3933.364197] Kernel panic - not syncing: Fatal Machine check
Então minha primeira pergunta seria, sobre "Executar o acima através de 'mcelog --ascii'" ... o que exatamente devo executar lá e como?
Eu tentei por exemplo:
[ 3933.364173] mce: [Hardware Error]: CPU 4: Machine Check Exception: 5 Bank 3: be00000000200135 | sudo mcelog --ascii
que simplesmente não retornou nada. Então, o que devo fazer aqui?
Eu também corri
crash /usr/lib/debug/boot/vmlinux<kernelversion> /path/to/crashdump/file
que iniciou o programa, como esperado, e eu digitei bt
para gerar um backtrace que me deu:
PID: 0 TASK: ffff8804177617f0 CPU: 6 COMMAND: "swapper/6"
#0 [ffff88042dd89ca0] machine_kexec at ffffffff8104a732
#1 [ffff88042dd89cf0] crash_kexec at ffffffff810e6ab3
#2 [ffff88042dd89db8] panic at ffffffff8170ec6c
#3 [ffff88042dd89e30] mce_panic at ffffffff8103687a
#4 [ffff88042dd89e70] do_machine_check at ffffffff81038684
#5 [ffff88042dd89f50] machine_check at ffffffff8171e25f
[exception RIP: intel_idle+216]
RIP: ffffffff813dfd78 RSP: ffff88041775de28 RFLAGS: 00000046
RAX: 0000000000000001 RBX: 0000000000000002 RCX: 0000000000000001
RDX: 0000000000000000 RSI: ffffffff81c93220 RDI: 0000000000000006
RBP: ffff88041775de50 R8: ffff88042dd912d0 R9: 000000000000001c
R10: 0000000000000320 R11: 0000000000000249 R12: 0000000000000002
R13: 0000000000000001 R14: 0000000000000001 R15: ffffffff81c932e8
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
--- <MCE exception stack> ---
#6 [ffff88041775de28] intel_idle at ffffffff813dfd78
#7 [ffff88041775de58] cpuidle_enter_state at ffffffff815c9570
#8 [ffff88041775de90] cpuidle_idle_call at ffffffff815c96a9
#9 [ffff88041775ded0] arch_cpu_idle at ffffffff8101ceae
#10 [ffff88041775dee0] cpu_startup_entry at ffffffff810beb85
#11 [ffff88041775df30] start_secondary at ffffffff81040fc8
Para resumir, gostaria de saber como invocar mcelog
na saída do dmesg e possivelmente quais outros passos você executaria para obter o máximo de informações sobre o problema / encontrar o componente defeituoso, para que eu possa entrar em contato com o fornecedor de hardware já tendo uma estimativa qualificada errada.
Eu sei como esse memcheck pode me ajudar a prever com alta probabilidade que o carneiro não é a causa.
EDIT: Descobri, como passar a saída para o mcelog corretamente: Coloque as linhas de saída antes de "Executar o acima através de 'mcelog --ascii'" em um arquivo e invoque mcelog
com
sudo mcelog --ascii < file
Pode-se ver que a mensagem "Executar o acima através de 'mcelog --ascii'" é impressa duas vezes no arquivo dmesg, então invoquei mcelog duas vezes começando com "CPU:" e terminando a linha antes da mensagem ( Deixei o material do dmesg como "[3933.364173] mce: [Erro de hardware]:" ausente ".
Então mcelog
me diz:
Hardware event. This is not a software error.
CPU 4 BANK 3 TSC a0255fbd7f7
RIP !INEXACT! 10:ffffffff8171d9c2
MISC d62285 ADDR 42dd14480
TIME 1398357146 Thu Apr 24 18:32:26 2014
MCG status:RIPV MCIP
MCi status:
Uncorrected error
Error enabled
MCi_MISC register valid
MCi_ADDR register valid
Processor context corrupt
MCA: Data CACHE Level-1 Data-Read Error
STATUS be00000000200135 MCGSTATUS 5
CPUID Vendor Intel Family 6 Model 58
RIP: _raw_spin_lock+0x12/0x50}
SOCKET 0 APIC 1 microcode 15
e
Hardware event. This is not a software error.
CPU 0 BANK 3 TSC a0255fbd7f0
RIP !INEXACT! 33:45a7992c1b5
MISC d62285 ADDR 42dd14480
TIME 1398357146 Thu Apr 24 18:32:26 2014
MCG status:RIPV MCIP
MCi status:
Uncorrected error
Error enabled
MCi_MISC register valid
MCi_ADDR register valid
Processor context corrupt
MCA: Data CACHE Level-1 Data-Read Error
STATUS be00000000200135 MCGSTATUS 5
CPUID Vendor Intel Family 6 Model 58
SOCKET 0 APIC 0 microcode 15
assumindo assim que a placa-mãe está bem (como foi alterada) e se a RAM está bem, resta apenas o processador para ser o desordeiro, certo?
Alguém está familiarizado com toda a saída dada?