Monitorando com o lm-sensors

A partir da época do Pentium II, as placas-mãe passaram a vir com sensores de temperatura para o processador e, mais tarde, com sensores para o chipset e também monitores de rotação dos coolers. Como os processadores dissipam cada vez mais calor, os sensores acabam sendo um recurso importante. Se o processador trabalha a uma temperatura alta mesmo nos dias frios, significa que provavelmente vai começar a travar nos dias mais quentes, ou nos momentos de atividade mais intensa.

Outro problema é que, com o tempo, os coolers acumulam sujeira e passam a girar mais devagar, perdendo eficiência. Usando os sensores, você pode programar um alarme caso a rotação caia abaixo de um certo valor, sendo avisado do problema.

No Linux, o suporte aos sensores da placa-mãe é provido por dois projetos, o I2C e o LM-sensors. Até o kernel 2.4 era necessário baixar os pacotes e compilá-los manualmente, mas, a partir do 2.6, eles foram incluídos oficialmente no kernel, o que facilitou as coisas. Usando uma distribuição atual você já encontrará os módulos pré-instalados. Com isso, fica faltando apenas instalar o pacote “lm-sensors”, que contém os utilitários de configuração e arquivos necessários, juntamente com o “i2c-tools”:

# apt-get install lm-sensors i2c-tools

A configuração inicial é feita pelo script “sensors-detect“, que ajuda na configuração inicial, detectando os sensores presentes na placa-mãe e dizendo quais módulos devem ser carregados para habilitar o suporte:

# sensors-detect

Ele faz várias perguntas, e exibe vários textos explicativos. Você pode simplesmente ir aceitando os valores default, que fazem ele executar todos os testes.

Caso os sensores da sua placa-mãe sejam suportados, ele exibirá no final um relatório com os passos necessários para ativá-los, oferecendo a opção de fazer as alterações necessárias automaticamente:

To make the sensors modules behave correctly,
add these lines to /etc/modules:

#----cut here----
# I2C adapter drivers
i2c-nforce2
# I2C chip drivers
asb100
w83l785ts
eeprom
#----cut here----

Do you want to add these lines to /etc/modules
automatically? (yes/NO)

No exemplo, é preciso apenas carregar os módulos i2c-nforce2, asb100, w83l785ts e eeprom, o que pode ser feito manualmente, usando o comando “modprobe”, ou de forma definitiva, adicionado as linhas no final do arquivo “/etc/modules“, o que orienta o sistema a carregá-los durante o boot. Você pode ver uma lista dos chips suportados por cada módulo no: http://www.lm-sensors.org/wiki/Devices

Com os sensores habilitados, você pode ver um relatório com as informações disponíveis usando os comandos:

# sensors -s
$ sensors

O primeiro precisa ser executado como root e calibra os valores dos sensores usando uma série de parâmetros específicos para cada chipset. A partir daí, você pode executar o segundo comando usando seu login de usuário para verificar os valores já calibrados:

Não é muito prático ficar abrindo o terminal cada vez que quiser checar a temperatura. Você pode resolver isso instalando um monitor gráfico, como o Ksensors e o Gkrellm, instalados através dos pacotes de mesmo nome. O Ksensors é interessante para quem usa o KDE, pois permite usar um ícone com a temperatura ao lado do relógio, enquanto o Gkrellm tem seu público fiel graças ao bom design.

Em ambos os casos, você precisa ativar os sensores que serão exibidos na janela de configuração. No Ksensors existe a opção de exibir cada mostrador ao lado do relógio (Dock) ou na barra do programa (Panel).

Na configuração, existe uma opção para que o Ksensors seja aberto durante a inicialização do KDE. Mas, em versões antigas do programa, esta opção não funciona, fazendo com que você precise sempre inicializá-lo manualmente. Se for o caso, adicione manualmente uma entrada para ele dentro da pasta “/home/$USER/.kde/Autostart/”, onde ficam ícones de atalho para todos os programas que serão inicializados durante o boot.

Existem ainda vários tipos de scripts, painéis do Superkaramba e diversos pequenos programas que monitoram a temperatura e oferecem funções diversas. Estes scripts são fáceis de escrever, pois simplesmente utilizam as informações exibidas pelo comando “sensors”. Um exemplo é o pequeno script a seguir, que gera um arquivo chamado “/tmp/cpu” e o atualiza a cada dois segundos com a temperatura do processador. O texto deste arquivo poderia ser exibido em uma barra do Superkaramba (ou em um plasmóide do KDE 4) ou postado em uma página web, por exemplo.

while [ 1 = 1 ]; do
    sensors | grep 'temp:' | sed -r 's/ +/ /g' | cut -d " " -f2 > /tmp/cpu
sleep 2
done 

Outra forma de acompanhar a temperatura (que funciona em muitas placas e também notebooks que não são compatíveis com o lm-sensors) é usar o comando “acpi -V“, que mostra informações sobre o status da bateria e também a temperatura do processador e da placa-mãe, como em:

$ acpi -V

Battery 1: charged, 100%
Thermal 1: active[2], 62.0 degrees C
Thermal 2: ok, 49.0 degrees C
Thermal 3: ok, 31.0 degrees C
AC Adapter 1: on-line

Veja que neste caso o notebook tem três sensores de temperatura: para o processador, chipset da placa-mãe e HD.

Com relação à bateria, você pode encontrar algumas informações interessantes também dentro da pasta “/proc/acpi/battery/“. Dentro da pasta, você encontra subpastas para cada bateria disponível e, dentro de cada uma, o arquivo de texto “info”. Você pode listar todos de uma vez usando o comando:

$ cat /proc/acpi/battery/*/info

present: yes
design capacity: 3788 mAh
last full capacity: 3788 mAh
battery technology: rechargeable
design voltage: 10800 mV
design capacity warning: 190 mAh
design capacity low: 38 mAh
capacity granularity 1: 100 mAh
capacity granularity 2: 100 mAh
model number: Primary
serial number: 57353 2005/03/19
battery type: LIon
OEM info: Hewlett-Packard

Pela saída do comando, você pode ver que o notebook do exemplo usa uma bateria Li-Ion e que a bateria está em bom estado, já que na última carga ela atingiu a carga máxima. Quando a bateria começa a ficar viciada, a carga máxima atingida vai ficando cada vez mais abaixo da máxima, fator que é acompanhado por uma redução ainda maior na autonomia. Por estas informações você tem como verificar a saúde da bateria sem precisar ficar carregando e descarregando para cronometrar o tempo de autonomia.

Todas essas informações são mostradas através de funções do ACPI, por isso é indispensável que o kernel ofereça um bom suporte ao seu modelo. Se você desativou o ACPI usando o “acpi=off” (ou similar) nas opções de boot, ou se está usando uma versão antiga do kernel que não oferece suporte ao seu modelo, você vai apenas receber um “present: no”.

Outra observação é que no Ubuntu 8.10 (e em algumas outras distribuições), o gerenciador de bateria do GNOME acaba matando o ACPI depois de algum tempo de atividade. O sintoma nesses casos é que o medidor de bateria ao lado do relógio desaparece sozinho depois de algum tempo.

A solução nesses casos é remover o gerenciador e passar a acompanhar a carga através de outro applet (ou simplesmente usando o “acpi -V”):

# apt-get remove gnome-power-manager

Além de usar os sensores do ACPI, é possível acompanhar a temperatura do HD através do “hddtemp“. Ele é um pacote extremamente pequeno, que está disponível na maioria das distribuições. No Debian você pode instalar via apt-get:

# apt-get install hddtemp

Com ele instalado, use o comando “hddtemp” para checar a temperatura do HD desejado, como em:

$ hddtemp /dev/sda

/dev/sda: SAMSUNG SP2504C: 43°C

Muitos programas de monitoramento, como o Gkrellm e vários widgets do KDE 4 (e temas do Superkaramba, no caso do KDE 3.5.x) são capazes de acompanhar o relatório do hddtemp, exibindo a temperatura em tempo real.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X