terça-feira, 13 de setembro de 2011

Como usar o Memtest86+


Quando temos problemas de instabilidade, os primeiros suspeitos são super-aquecimento do processador, memórias com problemas e as tensões da fonte de alimentação. Nos três casos nos deparamos com a falta de informação de técnicos/vendedores (?) ou curiosos que montam as suas próprias máquinas. Focando nas memórias, é onde constatamos um erro muito comum: lidar com os módulos como se fossem batatas...

Não é incomum vermos técnicos e vendedores desinformados pegarem os pobres módulos de memória tocando diretamente os dedos sobre os circuitos integrados. Todo mundo já ouviu falar em eletricidade estática. Lá da física do segundo grau, quando seu professor fazia o manjado experimento de roçar uma caneta Bic num pedaço de pano e depois "pescar" pedacinhos de papel sobre a classe. Com os nossos dedos acontece a mesma coisa. Provavelmente você use roupas, não? Da mesma forma que a roupa, seu corpo é um condutor de eletricidade ruim. Dois isolantes mais a fricção que é natural do nosso movimento são os ingredientes necessários para ficarmos carregados eletricamente.

Os circuitos integrados são muito sensíveis a descargas de eletricidade estática (também chamada de ESD, "electrostatic discharge"). Portanto, a dica é muito simples: pegue sempre módulos de memória (ou qualquer outro componente sensível) sempre pelas bordas, não tocando diretamente nos chips e nos contatos metálicos. Além disso, antes de lidar com os módulos, procure encostar as mãos em um material metálico, como a parte interna -- que não é pintada -- do gabinete, por exemplo, como forma de descarregar a estática.

Dito isso, com todos os cuidados tomados, nos resta saber se a memória suspeita está ou não com problemas. Existem alguns programas que testam a memória rodando sobre o Windows. Esses programas estão longe de serem confiáveis por um motivo simples: todo sistema operacional protege algumas áreas de memória para o uso do sistema. Assim, os softwares com resultados mais precisos no teste de memória são os que não rodam sobre Windows ou Linux ou o que for. O melhor na minha opinião é o Memtest86. Durante muito tempo o Memtest86 ficou sem atualizações, o que acabou levando o pessoal do X86-secret a lançar um fork chamado Memtest86+. A proposta do "+" é manter o programa atualizado, com suporte aos chipsets e processadores mais novos. Devido a isso, usarei como base do tutorial o Memtest86+.

Existem basicamente duas formas de executar o programa, criando um disquete ou um CD de boot. Na página do Memtest86+, o pacote que cria o disquete chama-se "Pre-Compiled package for Floppy (DOS - Win)", já o que cria o CD chama-se "Pre-Compiled Bootable ISO (.zip)". No caso da imagem de CD, basta você descompactar e gravar o arquivo .iso com qualquer programa de gravação, como o Nero, Easy Media Creator, K3b, Brasero, usando a opção correta de gravar uma imagem de disco. No Windows, um freeware interessante para a tarefa é o EasyISO.

Para gerar o disquete, depois de descompactar o arquivo, execute install.bat. Será apresentada a tela a seguir:


Deixe um disquete formatado no drive, indique a unidade digitando a: e tecle <enter> (um bug é que em teclados ABNT2 o ":" fica no "ç"). Depois confirme novamente com <enter>. Pronto, o disquete de boot está pronto.

Se você quiser criar o disquete de boot no Linux, baixe o arquivo "Download - Pre-Compiled Bootable Binary (.zip)", que contém apenas a imagem do disquete. Descompacte o arquivo para uma pasta qualquer e dentro dela execute:

$ dd if=memtest86+-x.xx.bin of=/dev/fd0 conv=sync

Apenas substitua o x.xx pela versão correta que você baixou. Note que, dependendo da sua distribuição, para executar o comando acima pode ser necessário privilégio de root.

Uma dica é que quase toda mídia com Linux contém o Memtest86(+) como opção de boot. Assim se você tiver algum CD/DVD do Ubuntu, Mandriva, Fedora, openSUSE, etc., não necessitará queimar um CD só para o Memtest86+.

Agora, você precisa configurar o setup da placa-mãe para dar boot através do drive de disquete (ou CD-ROM, caso você esteja usando o CD de boot).

Ao ser carregado, o Memtest86+ apresentará a seguinte tela:


Por fim tudo resume-se a deixar o programa rodar e cuidar a coluna "Errors", que numa memória em boas condições deverá ser "0". A coluna "Pass" diz quantas vezes os testes já foram repetidos, quanto mais melhor. Dependendo da quantidade/velocidade da sua memória, o loop completo de testes pode demorar consideravelmente, por isso tenha paciência.

Memória com erros:


No caso de serem exibidos muitos erros contínuos (muitas vezes intermináveis) desde o início, algo como em 20 segundos de teste já ter 10 mil erros, considere a possibilidade de ser alguma incompatibilidade entre a memória e o chipset. Para sanar a dúvida, teste os módulos em outra placa-mãe e veja se os erros persistem. Outra fonte de possíveis falso-positivos são bugs nos BIOS das placas-mãe, um problema que aconteceu com alguns modelos de notebooks da Acer. Depois de atualizar o BIOS, os misteriosos erros sumiam.

Se os erros aparecerem no decorrer do teste, como na imagem acima, quando no teste 7 apareceram 54 erros, é praticamente certo defeito na memória. Você pode tentar diminuir a frequência de operação da memória no setup da placa-mãe, o que às vezes pode resolver o problema. Por exemplo, colocar uma memória DDR400 a trabalhar a DDR333. Se não surtir efeito, não resta muita coisa a não ser trocar o módulo com problema. Lembre-se: nenhum, nenhum sistema operacional resiste indefinidamente a memórias defeituosas. Cedo ou tarde, você verá uma tela azul ou um kernel panic.

Existe um mito que diz que o Memtest86+ exige demais dos módulos de memória e pode acabar causando defeitos. Se você estiver seguindo as especificações do fabricante do módulo não dê bola. O Memtest86+ exige sim bastante das memórias, mas nada fora das especificações de trabalho de qualquer módulo, até porque ao nível de software nem haveria como ser feito algo além da gravação/leitura de dados nos endereços. Em módulos operando em overclock temos outro quadro, onde os módulos operam acima de suas especificações. Por isso, o ciclo que o Memtest86+ coloca em cima dos módulos de memória até pode vir a causar algum problema, porém fica claro que qualquer eventual dano é causado diretamente devido às temporizações/tensões agressivas. Mesmo assim, a chance de algo desse tipo acontecer é muito rara, na maioria nas vezes você só terá um monte de erros, bastando dar uma aliviada nas configurações até chegar em um ponto comum entre overclock e estabilidade.

Nenhum comentário:

Postar um comentário