Arxius

Sensors en GNU/Linux

Escrit al 2004-07-24 00:00:00 per seoman

He redactat un petit article sobre com configurar els sensors de la placa base en el vostre GNU/Linux. Espero que us sigui útil.

En aquest article intentaré explicar com configurar els sensors de temperatura, voltatge, etc del vostre ordinador, de tal forma que el podreu tenir controlat d'una manera senzilla.

El primer que haurem de fer es tenir el suport necessari al kernel. Per fer les proves, he utilitzat la versió 2.6.7, així que si ho fas en una versio diferent, es probable que les seccions no estiguin ubicades de la mateixa forma.

Accedim al menú de configuració del nucli i anem a la secció Device Driver. Dins d'aquest, accedim a I2C support. Aqui haurem d'activar com a modul les següents opcions:

I2C support
I2C device interface

I ara, dins de Hardware Sensors Chip support, sel·leccionem els moduls necessaris per a la nostra placa. Si no sabem quins són, els podem sel·lecionar tots i un cop veguem quins són, treiem la resta del nucli. És més que recomanable, tenir activades les opcions de Code maturity level options ja que si no, ens sortiran molt pocs mòduls disponibles.

Amb això ja podem anar a compilar el nucli. Per descomptat que també han d'estar configurades algunes opcions bàsiques com són els moduls cargables del kernel.

Un cop tingueu els mòduls del I2C, procedirem a instal·lar el programari necessari per a poder treballar amb els sensors.

Debian:~# apt-get install lm-sensors

Per tal de sapiguer quins mòduls necessitem per a la nostra placa executem:

Debian:~# sensors-detect

Ens farà una serie de preguntes a les que hauriem de contestar que si a totes. Realitzarà un seguit de proves i us dirà que heu de fer per tal de que funcionin els moduls. Primer de tot donà un llistat dels mòduls per a la teva placa:

Driver `eeprom' (should be inserted):
Detects correctly:
* Bus `SMBus Via Pro adapter at 5000' (Algorithm unavailable)
Busdriver `i2c-viapro', I2C address 0x50
Chip `SPD EEPROM' (confidence: 8)

Driver `lm78' (may not be inserted):
Misdetects:
* ISA bus address 0x0290 (Busdriver `i2c-isa')
Chip `National Semiconductor LM78' (confidence: 7)

Driver `it87' (should be inserted):
Detects correctly:
* ISA bus address 0x0290 (Busdriver `i2c-isa')
Chip `ITE 8705F Super IO Sensors' (confidence: 9)

Llavors dona una série d'instruccions per tal de que funcionin bé els sensors. En el meu cas:

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

#----cut here----
# I2C adapter drivers
i2c-viapro
i2c-isa
# I2C chip drivers
eeprom
it87
#----cut here----

Then, run /etc/init.d/module-init-tools


To make the sensors modules behave correctly, add these lines to
/etc/modprobe.d/local and run update-modules:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----


Només hem de seguir les passes que ens diu. Bàsicament, el que ens diu que fem és que es carreguin els mòduls que necessita al iniciar el sistema.

El fitxer de configuració esta ubicat a /etc/sensors.conf. Si executem la comanda sensors, ens mostrarà informació sobre els sensors que ha detectat anteriorment amb la comanda sensors-detect.

Debian:~# sensors
it87-isa-0290
Adapter: ISA adapter
VCore 1: +1.68 V (min = +1.42 V, max = +1.56 V) ALARM
VCore 2: +1.23 V (min = +2.40 V, max = +2.60 V) ALARM
+3.3V: +6.46 V (min = +3.12 V, max = +3.44 V) ALARM
+5V: +4.89 V (min = +4.72 V, max = +5.24 V)
+12V: +12.20 V (min = +11.36 V, max = +12.60 V)
-12V: -7.26 V (min = -12.63 V, max = -11.41 V) ALARM
-5V: -4.85 V (min = -5.28 V, max = -4.81 V)
Stdby: +5.12 V (min = +4.72 V, max = +5.24 V)
VBat: +0.00 V
fan1: 3924 RPM (min = 0 RPM, div = 8)
fan2: 0 RPM (min = 664 RPM, div = 8) LARM
fan3: 0 RPM (min = 664 RPM, div = 8)
M/B Temp: +46°C (low = +15°C, high = +40°C) sensor = thermistor
CPU Temp: -55°C (low = +15°C, high = +45°C) sensor = thermistor
Temp3: -55°C (low = +15°C, high = +45°C) sensor = thermistor

lm90-i2c-0-4c
Adapter: SMBus Via Pro adapter at 5000
M/B Temp: +53°C (low = +0°C, high = +70°C)
CPU Temp: +50.1°C (low = +0.0°C, high = +70.0°C)
M/B Crit: +104°C (hyst = +94°C)
CPU Crit: +106°C (hyst = +96°C)


Arà ja podem tenir un control més acurat del nostre sistema. I per acabar, una ràpida explicació de com integrar això a la barra d'estat gkrellm. Si anem a la configuració d'aquest, a la secció de sensors dins d'integrats, veurem que tenim varies opcions. En el meu cas hi tinc: “Temperaturas”, “Ventiladores” i “Voltages”. Si cliquem a la fletxa que apunta cap a cadascun de les opcions, se'ns desplegara els diferents sensors que hi ha en cada categoria. Llavors només tindrem que sel·lecionar la casella del que volem i ja està. Si sel·leccionem un sensor i veiem que la temperatura que ens marca es de -55º, vol dir que aquell sensor no funciona correctament o que tenim una refrigeració de “puta mare” =P.

Per acabar, una cosa força útil, és la de configurar alertes. Per exemple, si detectem una temperatura força elevada podem fer que ens envii un correu o si detecta que el ventilador de la CPU s'ha parat, doncs parar la maquina, etc.

Espero que us sigui útil i que no hagi ficat massa la pota, ja que és el meu primer article =P. Qualsevol dubte el podeu enviar a seoman@salles.mine.nu i/o afegirlo com a comentari al article.

Gràcies al Jordi Vilalta (jvprat) i a l'Albert Sellares (Whats_up) per debugar i provar-ho ^^

Categories: Articles, Trucs


Comentaris

  • Funciona molt bé Eis seo, molt interessant, està xulo. L'he provat i és força útil. Amb l'ajuda del paquet lshw podreu saber el mòdul q necessitareu per la vostre placa mare. Sort!

    Escrit al 2006-12-28 12:43:55 per whats_up

Arxius