
O Linux não é perfeito, e muitas vezes ele trava. Porém, muitas vezes estes travamentos são causados graças a problemas de hardware. E nesse caso, iremos considerar os travamentos por problemas nos módulos de memórias.
Como não existe um modo de reparar defeitos nos módulos de [Bp]memórias[/Bp], os quais acabam precisando ser descartados. Muitos chips já são fabricados com defeitos, e são descartados durante a produção. Outros são danificados por eletricidade estática, picos de tensão, etc..
Os erros geralmente não aparecem de imediato, porém com o tempo é possível inutilizar um componente. Quando os erros aparecem nos últimos endereços dos pentes, podem ser confundidos com problemas nos programas ou sistemas operacionais. Por isso o usuário acaba substituindo o pente de memória.
Porém, no Linux é possível aproveitar esses pentes de memórias defeituosos através de um patch para o kernel denominado BadRAM.
Para se ter sucesso com o patch, deve-se executar duas etapas: a primeira consiste em executar o Memtest para fazer um diagnóstico dos pentes de memórias afim de procurar e apontar algum erro, e após o teste, marcaremos os setores defeituosos, apontados pelo Memtest, de modo que o sistema operacional não use mais aquele setor, evitando assim travamentos e instabilidade.
O Memtest realiza 11 testes. Os 7 primeiros são relativamente rápidos, os outros 4 demoram cerca de 10 minutos, e são mais rigorosos que os mais rápidos sendo capazes de encontrar erros não detectados pelos 7 primeiros.
Para que ele execute desenvolvendo os endereços na forma que o BadRAM lê, basta apertar a tecla c para acessar a configuração e em seguida as opções, “5” (Error Report Mode), “2” (BadRAM Patterns) e depois 0 duas vezes para voltar a tela inicial. Deixe o Memtest rodando por um bom tempo, e depois anote os endereços defeituosos. Feito isso basta instalar o BadRAM.
Se você já possui o “kernel-source” e os compiladores necessários instalados, basta instalar o patch e recompilar o kernel. O patch pode ser baixado aqui de acordo com a sua versão do kernel. Para aplicar o patch, basta acessar a pasta “/usr/src/linux”, e em seguida aplicar o patch com o comando “patch -p1″ indicando a localização do arquivo, como em:
# patch -p1 < /tmp/BadRAM.patch
Feito isso, basta seguir os seguintes comandos:
# cd /usr/src/linux
# make xconfig
Dentro do configurador gráfico, indique o arquivo de configuração do kernel atual, localizado na pasta /boot, para que seja gerado um kernel com as mesmas configurações, porém com o suporte ao BadRAM.
# make bzImage
Após esse comando, será gerado o novo executável do kernel, o qual deverá ser movido para a pasta boot.
Depois do novo kernel gerado, é necessário uma mudança no seu gerenciador de boot, como exemplo usaremos o Lilo. No fim da seção referente ao novo kernel inclua a seguinte linha:
append=”badram=Aqui vai os endereços gerados pelo Memtest”
Lembrando, que o uso do BadRAM, só funciona em casos em que os endereços defeituosos não estão no começo dos módulos, nos primeiros 4 ou 6mb. Nesses casos os endereços defeituosos estão justamente na área ocupada pelo kernel durante o boot. A melhor solução para esse tipo de problema é usar um par de memórias, de modo que o pente sem defeito seja instalado no primeiro banco, de forma que o kernel seja carregado no módulo bom e tenha condições de marcar os endereços do módulo defeituoso.
Technorati Tags: linux, memórias, travamentos, BadRAM, kernel
Esta é a primeira vez que ouço falar do BadRAM, e este seu artigo ficou muito bem explicativo trazendo informação realmente útil.
Se algum dia eu me deparar com este problema concerteza o BadRAM vai começar a fazer parte da minha vida “digital”.
Parabéns!