Archive for the kernel Category

testando sua memoria ram com o memtest86

Posted in hardware, kernel, utilitarios with tags , , , , , , , , , , , , on 28-02-2009 by sirboderafael

para aqueles que desejam verificar se sua memoria ram esta funcionando corretamente, existe um utilitario chamado memtest86.

ele deve ser carregado na hora do boot, no lugar do sistema operacional… para aciona-lo pode-se utilizar disquete, cdrom, pendrive ou mesmo o gerenciador de boot (como o grub ou o lilo — que verificaremos mais adiante)…

os testes realizados, podem expor falhas de maquinas cujo comportamento se pareça normal, mas que vez ou outra mostram problemas, que aparentemente sao vindos do alem…

uma vez que os endereços defeituosos sao identificados, é mostrada uma saida formatada para um patch que se aplica no kernel do linux, chamado BADRAM, cujo intuito eh permitir o uso de pentes de memoria defeituosos, excluindo-se da faixa de endereços disponiveis aquelas porçoes identificadas como defeituosas… mas isto eh uma tarefa dedicada somente aos corajosos de plantao…

seu funcionamento se da atraves da escrita de inumeros padroes de dados em cada endereço de memoria… entao o dado escrito eh comparado com o dado esperado e assim ocorre a verificaçao de erro… eh um processo exaustivo, e como jah foi bem frisado, o intuito eh checar cada porçao da memoria e encontrar areas defeituosas… claro, o algoritmo nao eh simples assim, foi soh uma tentativa de dizer a voces: “olha, ele testa a parada pra caramba e se ele nao achar defeitos, provavelmente nenhuma outra ferramenta os achara…” quem quiser saber quais os algoritmos utilizados e as politicas de asserçao de erros, tudo esta bem documentado em uma seçao especial no site do projeto.

a titulo de curiosidade, mas soh para os fritoes de plantao… esses testes tambem podem revelar se sua memoria continua funcionando bem quando overclockada… hahaha! o memtest86 permite que voce mude a frequencia de trabalho de sua memoria… entao… nao perca tempo e prepare um omelete em cima de seu pente de memoria ram!

de boa na canoa? vamos logo para a parte da hora do negocio, que eh testar esse testador maluco! =)

baixe o codigo fonte:

bode@bodacious:~/pacotes$ wget http://www.memtest86.com/memtest86-3.5.tar.gz

extraia, entre no diretorio do pacote e compile, pois ele jah vem com o Makefile:

bode@bodacious:~/pacotes$ tar vxf memtest86-3.5
bode@bodacious:~/pacotes$ cd memtest86-3.5
bode@bodacious:~/pacotes/memtest86-3.5$ make

apos terminada a compilaçao (sem erros), iremos colocar nosso memtest86 como uma opçao de inicializaçao em nosso lilo… para isso, basta copiar o arquivo (imagem de boot) memtest.bin que foi gerado, para o diretorio /boot… arrume suas permissoes, por questoes esteticas — hahaha, essa foi boa heim galera! (soh root pode ler e escrever, os demais soh podem ler…) ok?:

root@bodacious:/home/bode/pacotes/memtest86-3.5# cp memtest.bin /boot
root@bodacious:/home/bode/pacotes/memtest86-3.5# chmod 644 /boot/memtest.bin

para que a bagaça seja efetivada, vamos colocar as devidas linhas, responsaveis pela opçao de inicializaçao do memtest86, no final do arquivo /etc/lilo.conf:


image = /boot/memtest.bin
    root = /dev/hda2
    label = memtest86
    read-only


obs.: hda2 eh a partiçao onde se encontra a raiz do meu Slackao, por isso substitua de acordo com sua instalaçao (olha, rimou!)… mas sem lambanças, por favor! =)

reconstrua seu MBR com as modificaçoes que adicionamos agora… para isso, rode:

root@bodacious:/home/bode/pacotes/memtest86-3.5# lilo

bom, depois disso o resto eh historia!!! reinicie sua maquina e escolha no menu de boot do lilo a opçao memtest86… durante os testes voce ira se deparar com uma tela semelhante a esta:

caso seu pente de memoria ram esteja baleado, a tela ficara deste jeito… eh… ¬¬ eu realmente espero que voce nao passe por isto:

mas se passar… ja sabe… o titulo de corajoso pode servir depois de aplicar o patch em seu kernel, recompilar, colocar os endereços invalidos em blacklist… dae sim, pode se sentir suave na nave!!!

[]’s!
t++!

Anúncios

monitorando os sensores instalados com o ‘lm_sensors’

Posted in bash, kernel, sysadmin with tags , , , , , on 06-11-2008 by sirboderafael

falhas de hardware podem acontecer por diversos motivos, mas temos a opcao de monitorar o sistema e tomar as providencias quando necessario.

as informacoes de monitoramento de sensores chegam ateh nos devido a captura de seus status, o que eh fornecido por alguns modulos que sao carregados junto ao kernel mas que muitas vezes nao estao rodando…

assumindo que em seu sistema ja encontra-se devidamente instalado o pacote lm_sensors, partiremos para sua configuracao…

o primeiro passo, consiste em detectar quais modulos seu kernel deve carregar… isso obviamente depende do hardware instalado e se este oferece a capacidade de ser monitorado…

para isso, execute no shell o utilitario sensors-detect com uma conta privilegiada:
bode@bodacious:~$ sudo sensors-detect

ele ira perguntar quais partes de seu hardware deverao serao escaneadas, responda Yes para as que achar importantes… essa eh a maneira tipica de se perguntar qual o hardware em questao que deve ser escaneado:


This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.


We can start with probing for (PCI) I2C or SMBus adapters.
Do you want to probe now? (YES/no):

considere escanear completamente seu hardware e responda Yes para todos os testes… sao muito raros os casos onde pode ocorrer alguma falha durante a execucao dos testes…

ao final da deteccao, sera gerado um arquivo de configuracao em /etc/sysconfig/lm_sensors, que contem os nomes dos modulos que devem ser carregamentos no kernel…

uma vez gerado o arquivo, voce eh lembrado que os modulos devem ser carregados atraves de um script de inicializacao, que no caso pode ser tanto /etc/init.d/lm_sensors.init (RedHat’s) quanto /etc/rc.d/rc.lm_sensors (Slack’s)… no entanto, eh comum nao se encontrar esse script instalado na raiz do sistema, mesmo que o pacote lm_sensors esteja instalado… neste caso faca o download do script e o armazene em /etc/rc.d/rc.lm_sensors (esse eh o padrao do Slack, adapte ele para o local onde sua distro o organizaria normalmente)… e nao se esqueca de marca-lo como executavel:
bode@bodacious:~$ sudo chmod +x /etc/rc.d/rc.lm_sensors

coloque a seguinte entrada no arquivo /etc/rc.d/rc.local:
/etc/rc.d/rc.lm_sensors
assim, durante a proxima inicializacao do sistema, logo que o rc.local rodar, tambem serao carregados os modulos que foram detectados… a vantagem desse script eh a separacao do instante de carregamento com relacao aos dos demais modulos… observe que nele uma serie de checagens especiais sao realizadas antes do carregamento de cada modulo (atraves de um processo iterativo), o que certamente nos pouparia de eventuais distracoes se nossa escolha fosse carrega-los diretamente com o modprobe

agora, assumindo que os modulos estao carregados apos uma reinicializacao, ou simplesmente pela execucao de nosso novo script, podemos monitorar o status dos sensores executando:
bode@bodacious:~$ sensors

voce ira obter informacoes do tipo:

Adapter: SMBus ALI1535 adapter at e800
VCore 1: +1.73 V (min = +1.49 V, max = +1.90 V)
VCore 2: +1.74 V (min = +1.49 V, max = +1.90 V)
+3.3V: +3.26 V (min = +2.96 V, max = +3.63 V)
+5V: +5.03 V (min = +4.49 V, max = +5.51 V)
+12V: +12.04 V (min = +9.55 V, max = +14.41 V)
-12V: -2.03 V (min = -4.07 V, max = -0.32 V)
-5V: -5.39 V (min = -1.76 V, max = -0.82 V)
fan1: 0 RPM (min = 61363 RPM, div = 2)
fan2: 3479 RPM (min = 18243 RPM, div = 2)
fan3: 0 RPM (min = 56250 RPM, div = 2)
M/B Temp: +31°C (high = +21°C, hyst = +6°C)
CPU Temp: +32.0°C (high = +100°C, hyst = +92°C)
temp3: -0.5°C (high = +80°C, hyst = +75°C)
vid: +1.700 V (VRM Version 8.2)
alarms:
beep_enable:
Sound alarm enabled

dessa maneira, eh possivel realizar o monitoramento dos sensores instalados em seu hardware via shell e se for o caso, pode ser instalado algum monitor grafico dessas mesmas informacoes de status e deixa-lo rodando no desktop para uma maior comodidade…