MINI-HOWTO: lm_sensors en nForce2 (monitorizacion temperaturas, voltages, etc…)
-
MINI-HOWTO: lm_sensors en nForce2
Para estar al dia de la guía pasaros por: http://www.marcalj.net/publicacions/mini-howto-lm_sensors-en-nforce2/
¿Que es lm_sensors?
lm_sensors es una utilidad para monitorizar temperaturas, voltages, etc de nuestro pc. Algo parecido a un MBM (MotherBoard Monitor) pero sin el entorno grafico. Utilizamos un programa luego para que sea igual que el MBM tranquilosComentarios iniciales:
Antes de nada decir que el chipset nForce2 de nVidia no ha sido soportado por lm_sensors hasta meses antes de la "presentacion" del kernel 2.6.X. Estaba soportado por el paquete i2c 2.8.0 per con errores solventados por la version i2c 2.8.2. Yo me he basado en hacerlo funcionar en un kernel 2.6, asi que como prerequisito necesitaremos usar algun kernel de la rama 2.6Hay que diferenciar si el chipset esta soportado por el kernel o no. En el caso negativo se tendria que instalar una version de i2c compatible con el chipset i desactivar cualquier opcion de i2c en el kernel. Si el kernel da soporte i2c para el chipset deberemos activar la opcion i no tener instalado el paquete i2c en nuestro sistema. En el caso del nForce2 no tenia soporte del kernel hasta la rama 2.6.
lm_sensors usa el protocolo i2c, bien, como ya presuponemos que usaremos un kernel 2.6.X ya tendremos soporte para i2c disponible en el mismo kernel, aseguraros de activarlo de esta forma:```
Configuracion recomendada del kernel* Code maturity level options o [*] Prompt for development and/or incomplete code/drivers * Bus options (PCI, PCMCIA, EISA, MCA, ISA) o [*] PCI support o [*] ISA support (not needed anymore since 2.6.2-rc1) * Device Drivers o I2C Support + <m> I2C Support + <m> I2C device interface + I2C Algorithms # <m> (configure all of them as modules) + I2C Hardware Bus support # <m> (configure all of them as modules) + I2C Hardware Sensors Chip support # <m> (configure all of them as modules)
Segun comentan en nforcesHQ no hace falta seleccionarlo todo como dicen en la web oficial, sino solamente los correspondientes componentes de nuestro hardware.
En el apartado "Hardware bus support" simplemente poner como modulos el "ISA Bus support" i el "Nvidia Nforce2", i en "Hardware sensors chip support" solamente los que ponga "winbond" que son los 3 ultimos.
[b]Instalacion de lm_sensors:[/b]
Bien, pues ya tenemos soporte i2c, ahora a instalar el lm_sensors. Segun la version del kernel 2.6 que tengamos se recomienda usar una version u otra. Os pongo la referente a dia de hoy.[code]Kernel recomendado y combinacion de lm_sensors:* Kernels 2.6.9-rc1 and later: lm_sensors 2.8.8 or any later version * Kernels 2.6.5-rc1 to 2.6.8: lm_sensors 2.8.6 or any later version * Kernels 2.6.3-rc2 to 2.6.4: lm_sensors 2.8.5 * Kernels 2.6.2-rc1 to 2.6.3-rc1: lm_sensors 2.8.4 * Kernels 2.6.1-rc1 to 2.6.1: lm_sensors 2.8.3 * Kernels 2.6.0 and earlier: lm_sensors 2.8.2
[/code]Yo uso el kernel 2.6.9 asi que instalé la version 2.8.8 (o mas nueva)
Sobretodo tened linkado el archivo "/usr/src/linux" a vuestras sources del kernel 2.6.X que useis, si no, no os dejara instalarlo.
[b]Instalacion en Gentoo[/b]
Bien, si utilizamos Gentoo como distribución deberemos hacer:[code]
Actualizar la lista de paquetesemerge sync
Buscar que versiones hay
emerge -s lm-sensors
Si no hay la version que buscamos es que esta marcada como inestable, entonces tendremos que poner:
echo "sys-apps/lm-sensors" >> /etc/portage/package.keywords
I entonces instalar
emerge =lm-sensors-2.8.8
[/code]
Este paso siguiente no hace falta pero lo pongo por si alguien instala una version anterior:[quote]Una vez hacemos esto debemos ejecutar un script para que nos cree los archivos devfs correctos. Para ello debemos descomprimir el .tar.gz del lm_sensors, para ello la forma mas facil es volviendo a emerger i justo cuando empieze a hacer el "./configure" pulsar "CTRL+C" para que pare... entonces:[code]# sh /var/tmp/portage/lm-sensors-2.8.5/work/lm_sensors-2.8.5/prog/mkdev/mkdev.sh[/code]I yasta.[/quote]
Si no teneis la suerte de usar Gentoo pues lo tendres que hacer a mano:[b]Instalación "a mano":[/b]
Nos descargamos el cofigo fuente de su web: [url]http://www2.lm-sensors.nu/~lm78/archive/lm_sensors-2.8.8.tar.gz[/url]
Descomprimimos i compilamos:[code]# gunzip lm_sensors-2.8.8.tar.gztar -xvf lm_sensors-2.8.8.tar
cd lm_sensors-2.8.8
make user && make user_intall[/code]
[quote]
[b]Instalacion mediante CVS[/b] (by Stolz)
En el caso de que tu placa sea muy moderna y solo esté soportada por las versiones del CVS ( o simplemente quieres asegurarte de que tienes la utima version disponible, mas actual que la del kernel 2.6) puedes obtenerlas, instalarlas y configurarlas siguiendo estos pasos:Para obtener las fuentes:[code]# cd /usr/src/
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs login
usar el password="anonymous"
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs checkout i2c
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs checkout lm_sensors2[/code]Instalación del i2c:[code]# cd i2c
make all
make install
depmod -a[/code]Instalación del lm-sensors:[code]# cd ..
cd lm_sensors2
make all
make install
depmod -a[/code]Asegúrate que en el /etc/ld.so.conf aparece /usr/local/lib , si no está, añadela[code]# ldconfig
./prog/mkdev/mkdev.sh
./prog/detect/sensors-detect[/code]Ahora necesitamos un script para arrancar el servicio. El que trae el lmsensors esta en prog/init/lm_sensors.init. Lo que pasa es que este script usa una estructura de directorios que no es la de Gentoo, por lo que necesitamos un script valido para ponerlo en /etc/init.d/lm_sensors. Si usas Ferdora, Mandrake o cualquier otra basada en RH si te servira.
Yo en su día me hice este script tan sencillo, aunque ahora uso el de gentoo ya que la version que me baje del CVS hace tiempo ahora es ya oficial.[code]#!/sbin/runscript
start() {
ebegin "Iniciando lm-sensors"
modprobe i2c-nforce2
modprobe i2c-isa
modprobe eeprom
modprobe w83781deend $? "Fallo al inicar lm-sensors"
}stop() {
ebegin "Deteniendo lm-sensors"
rmmod i2c-nforce2
rmmod i2c-isa
rmmod eeprom
rmmod w83781d
eend $? "Fallo al detener lm-sensors"
}[/code][/quote]
[b]Comprobación systrema SYS[/b]
Comprobamos que tengamos montado el sistema de ficheros "sys" en "/sys". Si no lo tenemos:[code]mount -t sysfs sysfs /sys[/code]I para que nos inicie siempre, modificamos el archivo fstab:[code]# echo "none /sys sysfs defaults 0 0" >> /etc/fstab[/code]Bien, ya lo tenemos todo listo.[b]Configuracion lm_sensors:[/b]
Ahora ejecutaremos la utilidad para configurar los sensores. Nos ira haciendo preguntas del palo SI/NO, en las ultimas versiones no hace falta hacer mas que decirle que si a todo, o simplemente pulsar como locos INTRO.Si al ejecutar el comando nos dice que ejecutemos un script, mirar el apartado de instalacion en Gentoo, la parte que digo que es para versiones anteriores. Pongo solamente las preguntas un poco conflictivas:[code]# sensors-detect
Some chips are also accessible through the ISA bus. ISA probes are
typically a bit more dangerous, as we have to write to I/O ports to do
this. Do you want to scan the ISA bus? (YES/no): YES[/code]Aqui OJO, como veis dice que si queremos escanear el bus ISA, os preguntareis, ¿ISA, pero eso era en los Pentium1 antiguos, no? bueno, en tal caso algunos chips se comunican por este bus, como nuestro caso, asi que no temais por si no lo habeis compilado en el kernel. Cuando le deis al enter entre otras cosas vereis que encontrará el "driver" para nuestros sensores. Seguimos pues:[code]
I will now generate the commands needed to load the I2C modules.
Sometimes, a chip is available both through the ISA bus and an I2C bus.
ISA bus access is faster, but you need to load an additional driver module
for it. If you have the choice, do you want to use the ISA bus or the
I2C/SMBus (ISA/smbus)? ISA[/code]Hay sensores que podeis tener de mas. En tal caso no perdeis nada para escanearlo.
En este ultimo paso veis que nos pide como acceder a los sensores. En versiones anteriores si no poniamos "smbus" no pillaba bien los sensores, pero en las versiones nuevas mediante el bus ISA es mas rapido. Bien si hacemos "lspci -v" veremos entre otros:[code]
0000:00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a3)
Subsystem: ABIT Computer Corp.: Unknown device 1c00
Flags: bus master, 66Mhz, fast devsel, latency 0
Capabilities: [48] #08 [01e1]0000:00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)
Subsystem: ABIT Computer Corp.: Unknown device 1c00
Flags: 66Mhz, fast devsel, IRQ 11
I/O ports at e000
Capabilities: [44] Power Management version 2[/code]Esto viene a decir que ya viene preparado para que lo hagamos via SMBus o ISA.
Bien, seguidamente nos mostrará esto:[code]
If you want to load the modules at startup, generate a config file below and make sure lm_sensors get started (eg. rc-update add lm_sensors default).
To make the sensor modules behave correctly, add these lines to
/etc/modules.conf:#----cut here----
I2C module options
alias char-major-89 i2c-dev
#----end cut here----WARNING! If you have some things built into your kernel, the list above
will contain too many modules. Skip the appropriate ones! You really should
try these commands right now to make sure everything is working properly.
Monitoring programs won't work until it's done.
To load everything that is needed, execute the commands above...#----cut here----
I2C adapter drivers
modprobe i2c-isa
I2C chip drivers
modprobe w83627hf
sleep 2 # optional
/usr/local/bin/sensors -s # recommended
#----end cut here----[/code]En versiones anteriores el driver que en teoria teniamos que usar no era realmente el bueno, es decir teniamos que usar el w83781d en vez del w83627hf, bien, pues ahora no hay inconveniente en el que nos reconoze asi que hacemos lo que nos dice i listos.Ahora nos pregunta si queremos crear un archivo "/etc/conf.d/lm_sensors", le decimos que "YES".
Asi que miramos si en el archivo "/etc/modules.conf" tenemos la linia "alias char-major-89 i2c-dev", si no la tenemos, pues obviamente la ponemos
Para que cada vez que iniciemos el ordenador se autoconfigure con los parametros definidos debemos incluir el "demonio" al inicio. Para ello:[code]# rc-update add lm_sensors default[/code]Este comando no se si es igual en todas las distribuciones. Comunicadmelo si difiere, gracias.
Bien, entonces iniciamos el demonio lm_sensors:[code]# /etc/init.d/lm_sensors start[/code]I si todo va bien al ejecutar el comando "sensors" veremos algo como esto:
NOTA: se recomiendo ejecutar el comando "sensors -s" para actualizar los cambios si no reiniciamos el equipo.[code]# sensors -s
sensors
w83627hf-isa-0290
Adapter: ISA adapter
VCore 1: +1.64 V (min = +1.44 V, max = +1.86 V)
VCore 2: +2.76 V (min = +1.44 V, max = +1.86 V)
+3.3V: +3.32 V (min = +2.82 V, max = +3.80 V)
+5V: +5.03 V (min = +3.48 V, max = +2.24 V)
+12V: +11.94 V (min = +1.05 V, max = +1.54 V)
-12V: -12.17 V (min = -12.91 V, max = -10.94 V)
-5V: -5.08 V (min = -7.69 V, max = +3.16 V)
V5SB: +5.52 V (min = +0.65 V, max = +0.44 V)
VBat: +3.57 V (min = +1.03 V, max = +0.13 V)
fan1: 0 RPM (min = 21093 RPM, div = 2)
fan2: 0 RPM (min = 5113 RPM, div = 2)
fan3: 0 RPM (min = -1 RPM, div = 4)
temp1: +26°C (high = +2°C, hyst = +0°C) sensor = thermistor
temp2: +40.5°C (high = +65°C, hyst = +60°C) sensor = thermistor
temp3: -48.0°C (high = +65°C, hyst = +60°C) sensor = thermistor
vid: +1.650 V
alarms:
beep_enable:
Sound alarm disabled
[/code]VCore 1 = VCore (tension del procesador)
VCore 2 = VDimm (tension de la memoria RAM)
temp1 = Chipset (northbridge)
temp2 = CPU
temp3 = ??? xDLos ventiladores no se a cuales corresponden ya que no tengo ninguno conectado a la placa.
Bien, ya lo tenemos todo listo y funcionando
[b]Soporte grafico:[/b]
Ahora viene el paso de tenerlo al estilo del MBM. Bien, existe el programa ksensors que va muy bien. Lo instalais i ya vereis que es muy parecido, muy facil de configurar i se adapta perfectamente a la barra de KDE.En el programa gkrellm2 simplemente teneis que activar la opcion de temperaturas, no teneis que configurar nada.
[quote][b]NOTA[/b]: Podemos usar en ksensors el programa hddtemp para saber la temperatura de los discos duros que soporten el sistema SMART.
Para ello, instalamos el programa hddtemp i:[code]# cp /usr/sbin/hddtemp /usr/bin/chmod +s /usr/bin/hddtemp
exit
$ hddtemp /dev/hda
/dev/hda: ST320011A: 29 C
[/code]Luego en la configuracion de ksensors veremos un apartado a parte para su configuracion.[/quote]
[b]Consideraciones finales:[/b]
Puede que no funcione la instalacion a mano ya que no lo he probado. Que alguien lo pruebe i nos comente. Puede que haga falta cargar algunos modulos mas, como el i2c-nforce2 o el i2c-dev.[b]Documentacion:[/b]
[url]http://www.nforcershq.com/forum/viewtopic.php?t=1031&postdays=0&postorder=asc&start=15[/url]
[url]http://www2.lm-sensors.nu/~lm78/[/url]
[url]http://www.nforcershq.com/forum/viewtopic.php?t=8994&highlight=lmsensors[/url][b]Notas finales:[/b]
Aunque el howto sea para chipset nForce2 no difiere mucho de otros chipsets, lo unico que cambia es la version a utilizar i el "driver", asi que si quereis lo hacemos generico.Salu2!</m></m></m></m></m>
-
Vaya! no sabía que el segundo vcore correspondía al vdimm y tampoco sabía que la primera temperatura era la del chipset! pues madre mía, cuando tenía la QDI el chipset lo tenía ardiendo, y yo pensando que era un sensor raro que llevaba la placa y estaba loco :risitas:
Sabiendo eso igual la tercera temperatura es la del southbridge, podría ser?Yo con el kernel 2.6 no llegué a rular lm_sensors porque tampoco me puse muy en serio, pero cuando tenía el 2.4 me iba perfectamente y siempre lo usaba para gkrellm, si lo consigo rular con 2.6 después de seguir tu guía te comento algo (quizás sea que yo usaba el plugin externo gkrellmsensors en vez del integrado?).
Como ya te he dicho por mail, el how-to está muy currado, a ver si me llega de una vez mi nueva Leadtek y me pongo manos a la obra
Saludetes
-
Muy buena guia. Solo unos apuntes:
Antes de nada decir que el chipset nForce2 de nVidia no ha sido soportado por lm_sensors hasta el kernel 2.6.X, asi que como prerequisito necesitaremos usar algun kernel de la rama 2.6
Actualmente la version que soporta nforce2 oficialmente, es la 2.8.1, pero esta versión tiene fallos de deteccion de errores de la eeprom (nada que ver con los sensores, y que creo que solo afecta a las Abit y a las Epox, no a las Asus). Estos errores han sido corregidos en la version la 2.8.2. Ambas versiones existen MESES antes de que se considere estable el kernel 2.6, por lo que no es ningun requisito obligatorio tener dicha serie de kernel, con el 2.4 sirve, simplemente hay que bajar la version correcta del i2c y del lmsensors, y asegurarse de tener en el kernel desactiva el soporte i2c.
Otra cosa a tener en cuenta es que siempre hay que tener la misma version de i2c que de lmsensors.
En el caso de que tu placa sea muy moderna y solo esté soportada por las versiones del CVS ( o simplemente quieres asegurarte de que tienes la utima version disponible, mas actual que la del kernel 2.6) puedes obtenerlas , instalarlas y configurarlas siguiendo estos pasos:
Instalar el CVS, en Gentoo:emerge cvs
Para obtener las fuentes:
cd /usr/src/
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs login
usar el password="anonymous"
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs checkout i2c
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs checkout lm_sensors2
Instalación del i2c:
cd i2c
make all
make install
depmod -a
Instalación del lm-sensors:
cd ..
cd lm_sensors2
make all
make install
depmod -a
Asegúrate que en el /etc/ld.so.conf aparece /usr/local/lib , si no está, añadela
ldconfig
./prog/mkdev/mkdev.sh
./prog/detect/sensors-detect
Ahora necesitamos un script para arrancar el servicio. El que trae el lmsensors esta en prog/init/lm_sensors.init. Lo que pasa es que este script usa una estructura de directorios que no es la de Gentoo, por lo que necesitamos un script valido para ponerlo en /etc/init.d/lm_sensors. Si usas Ferdora, Mandrake o cualquier otra basada en RH si te servira.
Yo en su día me hice este script tan sencillo, aunque ahora uso el de gentoo ya que la version que me baje del CVS hace tiempo ahora es ya oficial.
#!/sbin/runscript
start() {
ebegin "Iniciando lm-sensors"
modprobe i2c-nforce2
modprobe i2c-isa
modprobe eeprom
modprobe w83781deend $? "Fallo al inicar lm-sensors"
}stop() {
ebegin "Deteniendo lm-sensors"
rmmod i2c-nforce2
rmmod i2c-isa
rmmod eeprom
rmmod w83781d
eend $? "Fallo al detener lm-sensors"
}Si ademas quieres conocer la temperatura de tus discos duros recomiendo instalarse el programa hdtemp.
En Gentoo:emerge hddtemp
Ademas, el propio Ksensors sirve para leer las temperaturas que proporciona hdtemp.
Saludos.
-
Ya que sale el tema del hardware, monitorización, etc… bajo Linux conocíais la distribución StressLinux? es una distro livecd que lleva un montón de programas como cpuburn, memtest, hddtemp, lm-sensors, entre otras muchas aplicaciones de benchmark, monitorización e información del hardware
-
jeje, yo conocia Overclockix, debe de ser algo parecido.
Nacho, bueno Stolz vale, ok , voy a cambiar cosas que has comentado.
Lo voy a poner en el foro de Gentoo, vale? xD
Salu2!
EDITADO: Oye Nacho, que el hddtemp solo me deja ejecutarlo como root, creo que dandole al programa el Set-UID me dejaria ejecutarlo como usuario normal. Como se hace? Si no el ksensors no me lo "reconoce".
Salu2!
-
Muy buen manual marcalj a ver si esta semana santa, antes de ir a la mislanet lo intento, ya que pretendo instalarme gentoo, no estoy muy seguro de conseguirlo pero se intentara
Yo voto por fijar este how-to
-
Otro voto para fijarlo.
Por cierto ya que estamos de lleno en el tema… hay alguna forma de monitorizar también la temperatura de la GPU?
-
Tranki Paladi que seguro que puedes si no en la Mislanet ya lo arreglaremos
Membris Khan no todas la VGA's tienen soporte para medir la temperatura de la GPU, la mia no lo lleva (por ejemplo, jeje). Asi que creo que sera un poco chungo. Si lo incorpora la VGA puede que al hacer el "sensors-detect" te lo detecte. Pero a mi no me lo hizo.
Salu2!
-
Publicado originalmente por marcalj
**
Lo voy a poner en el foro de Gentoo, vale? xDEDITADO: Oye Nacho, que el hddtemp solo me deja ejecutarlo como root, creo que dandole al programa el Set-UID me dejaria ejecutarlo como usuario normal. Como se hace? Si no el ksensors no me lo "reconoce".
Salu2!**
Efetivamente, para que el ksensors nos muestre también las temperaturas de los discos duros con hddtemp tendremos que darle permisos +s al binario de hddtemp.
Mejor que en el foro, ponlo en wwww.gentoo-es.org, o bien en tu bitacora o como articulo.
Saludos.
-
Te lo has currado marcalj, estas en portada de barrapunto Muy bien!!! jejeje
-
Gracias, jeje. He tenido problemas con algunas webs por haberse publicado en estos foros, asi que tambien esta publicado en otros.
Tendre que ir recogiendo informacion i ir copiando pegando xD
Salu2!
-
Ya consegui averiguar como se ponian permisos de Set UID en un binario i he actualizado para poder usar ksensors con hddtemp
Salu2!
-
Currado, sí señor. Otro voto para fijarlo… A ver si un día me pongo y me sirve de algo, que siempre dejo el tema de lado (pero no uso ni gentoo ni tengo nforce2 :risitas:). Felicidades otra vez, salu2!
-
Tranki que mientras sepas que "driver" tienes que usar, lo demas es el mismo sistema.
A ver si me dices como se hace en Debian añadir servicios en el /etc/init.d/
Salu2!
-
Ya se que le pasaba al gkrellm2, se ve que no le pasaba nada, era yo que tenia ejecutado la version 1.X i no la 2.X jajaja madre mia.
Salu2!
-
parece mentira, pero me ha salido, no me lo creo jejejeje
la verdad es uqe no me he enterado demasiado de lo que iba haciendo, tambien es pq no conozco que sensores y que historias tiene mi placa, sobre overclocking no se nada de nada
pero me ha salido
al final al ajecutar "sensors" no me pone lo de la epprom, no se la razon, ni lo de bt787 (creo que es el chip de una capturadora no?)pero muy bueno el how-to, lo guardare en mi bibiloteca
gracias marcaljPD: con que programa para monitorizar os quedais? cual preferiis? gkrellm2, superkaramba, o ksensors (este no me pilla nada de nada)
-
Si, lo del bt878 es una controladora de tele que tengo.
A mi con el kernel-2.6.5 no me va lm_sensors, tienen que actualizar la version o algo… Aunque gkrellm2 me va igualmente... es impresionante, supongo que usara los i2c por el solito, pero que cabron... pq lo pilla sin tener el lm_sensors.... es muy raro.
Sobre cual me kedo, pos con ksensors, pero no me va ahora ... asi que no se.
Salu2!
-
tengo el kernel 2.6.5 y el lm_sensors 2.8.1 y me va perfectametne, el que no me va es el ksensors uqe pone que el chipset es otro, concretamente el que se cambia a mano en un archivo
por cierto, que te monitoriza de la tarjeta de tele? no creo uqe tenga temperaturas una misera tarjeta de tele
-
Pues sobre el ksensors no creo que se pueda hacer nada pq el te lo detecta lo que tienes no puedes tocarlo tu…
Sobre lo de la targeta de TV no me dice nada... puede que use el bus i2c para cosas suyas i no para temperaturas...
Salu2!
-
Bien, se ve que el kernel 2.6.5 cambiaba algo en el i2c que dejaba inoperativo lm_sensors, acaban de sacar la version 2.8.6 i funciona de puta madre otra vez, ksensors incluido
Salu2!