Archive for the ‘Uncategorized’ Category

h1

Error «mount: tipo de sistema de ficheros ‘ext4’ desconocido»

17/06/2009

Durante la progresiva desaparición de ReiserFS, consolidándose ext3 como sistema de ficheros en GNU/Linux 10 años después de su publicación se ha incluido como oficial el soporte de ext4 en el Kernel, con muchas mejoras y aumento de rendimiento (algunos equipos ya arrancan en 10″).

Tras formatear una partición con fsck.ext4, si al montarla ocurre el siguiente error:

carlos@shirley:~$ sudo mount -t ext4 /dev/sdc1 /mnt/
mount: tipo de sistema de ficheros 'ext4' desconocido
mount: unknown filesystem type 'ext4'

Es necesario utilizar un kernel 2.6.28 o superior. Para ver la versión que se está utilizando en ese momento:

carlos@shirley:~$ uname -a

y para instalar un kernel con soporte para ext4:

root@shirley:~# apt-cache search 2.6.28
root@shirley:~# apt-get install linux-image-2.6.28-11-generic

Tras esto, verificar que en el siguiente arranque se va a utilizar ese kernel. Para ello, si se utiliza Grub como gestor de arranque, comprobar o adaptar su fichero de configuración para que lo utilice:

carlos@WhenIGrowUp:/$ sudo /boot/grub/menu.lst
[...]
default 0
[...]
## ## End Default Options ##
title Ubuntu 8.10, kernel 2.6.28-11-generic
root (hd1,0)
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=bc4f22438-f175-2f7b-aebf-123456789 ro quiet splash reboot=b pci=noacpi
initrd /boot/initrd.img-2.6.28-11-generic
[...]

Guardar y reiniciar.

Nota I: si se pone la partición «/» en ext4, debe cambiarse el gestor de arranque a uno que soporte ext4. Grub por ej. no lo soporta, es necesario actualizarlo a Grub2.
Nota II: se se desea migrar una partición existente, se puede seguir el siguiente work around.

h1

Error Monit «Alert handler failed, retry scheduled for next cycle»

06/06/2009

Este error en Monit (utilidad software libre para la monitorización de sistemas, , no confundirla con su hermana comercial Mmonit) :

Alert handler failed, retry scheduled for next cycle

a la hora de enviar una alerta por correo electrónico se puede encontrar en /var/log/monit.log

Según la documentación oficial de Monit se puede deber a una incorrecta configuración de la cuenta de correo en el fichero /etc/monit/monitrc.
Generalmente la línea de tipo de autenticación suele ser la principal causa si ésta no es adecuada, luego con comentarla se soluciona la mayoría de los problemas (o ajustarla si se conocen los parámetros correctos del servidor).

#using TLSV1

h1

Como resetear el password de DD-WRT

06/06/2009

Se puede dar un problema con este firmware en el que el password no es recordado y por tanto no se tenga acceso al interfaz web o telnet de gestión.
Los routers o puntos de acceso compatibles con DD-WRT suelen tener una zona de memoria para el firmware y otra más pequeña (nvram) para almacenar las variables o datos de uso habitual. En ésta se almacena el password.

Para borrarla, antes de dar por perdido el aparato, y recuperar su funcionalidad (debrick) hay varios métodos, listados de menos a más agresivos:

Reseteo 30/30/30: Consiste en tener arrancando el aparato, presionar el botón de reset de la parte posterior con un bolígrafo o similar durante 30 segundos, sin soltarlo desenchufar la corriente, esperar otros 30 segundos y sin soltarlo igualmente enchufarla de nuevo, esperando otros 30 segundos. Este método resetea la configuración, por lo que es necesario configurarlo desde cero nuevamente (en caso de ser un router, es aconsejable entonces tener a mano los datos de la conexión adsl antes de hacerlo). Entrar en http://192.168.1.1 . Si pide alguna contraseña, y el reseteo ha funcionado correctamente, utilizar como usuario «root» y password «admin«.

Reseteo 90/90/90: igual que método 30/30/30 pero aplicando 90 segundos para cada intervalo.

tftp DD-WRT: cargar de nuevo el firmware de DD-WRT, de cara a eliminar cualquier inconsistencia o fallo en el SO. Para ello se puede hacer sencillamente por tftp:

1.- Realizar un hard reset del router (reset 30/30/30).
2.- Reiniciarlo desenchufándole la corriente unos segundos.
3.- Establecer tu equipo con una IP del mismo rango que tiene ahora el DD-WRT (ej: 192.168.1.100, máscara 255.255.255.0, los demás valores no son necesarios especificarlos).
4.- Abrir una consola y mantener un ping al router/punto de acceso:
#ping 192.168.1.1
en Linux el ping es contínuo, no se interrumpe, en otros sistemas operativos suele ser necesario incorporar el parámetro -t

5.- Preparar en otra consola el siguiente comando pero NO ejecutarlo:
atftp --option "mode octet" --verbose -p -l dd-wrt.v24-11296_NEWD_micro.bin 192.168.1.1
donde evidentemente dd-wrt.v24-11296_NEWD_micro.bin es el fichero descargado de dd-wrt.com correspondiente, en este caso, al Linksys WAP54G.

6.- En este paso se flasheará el router. Para ello es necesario reiniciar el router desconectándolo de la corriente. En la ventana que está abierta con el ping se verá una secuencia similar a ésta:

From 192.168.7.19 icmp_seq=171 Destination Host Unreachable
From 192.168.7.19 icmp_seq=172 Destination Host Unreachable
From 192.168.7.19 icmp_seq=175 Destination Host Unreachable

64 bytes from 192.168.7.5: icmp_seq=177 ttl=100 time=1012 ms
64 bytes from 192.168.7.5: icmp_seq=179 ttl=100 time=1.71 ms
64 bytes from 192.168.7.5: icmp_seq=180 ttl=100 time=2.23 ms

64 bytes from 192.168.7.5: icmp_seq=193 ttl=64 time=1.29 ms
64 bytes from 192.168.7.5: icmp_seq=194 ttl=64 time=0.951 ms
64 bytes from 192.168.7.5: icmp_seq=195 ttl=64 time=0.811 ms

Las 3 primeras líneas son resultado de enviar ping al router estando éste apagado o reiniciándose. Las 3 siguientes, que llevan el TTL=100 son resultado de arrancar el router en modo debug, aceptando por tanto cualquier actualización de firmware. Las 3 últimas (TTL=64) ya indican que ese modo ya ha sido deshabilitado y por tanto comienza el arranque normal. Por tanto el objetivo es ejecutar la orden tftp cuando el punto de acceso esté respondiendo pings con TTL=100.

Para ello, reiniciarlo de nuevo y en cuanto se obtegan el primer echo de ping con TTL=100, ejecutar el comando dado de tftp. Éste indicará que el fichero se ha subido correctamente. El router estará grabando el nuevo firmware, por lo que es necesario esperar 5 minutos o hasta que devuelva ping con TTL=64.

6.- Reiniciar el router desenchufándole la corriente.

7.- Cuando la ventana de ping reciba respuesta, entrar en http://192.168.1.1 con el navegador y configurar normalmente el WAP54G.

tftp OpenWRT: una opción más para intentar machacar el fichero de nvram es instalar una versión distinta de firmware que ocupe igual o más. Por ejemplo OpenWRT o un firmware compatible con el router concreto. El procedimiento es el descrito anteriormente. Después se instala de nuevo DD-WRT y se puede probar si el password ya está reseteado, ya que suelen compartir las mismas variables en la nvram.

– OpenWRT + erase nvram por web
: Si el método anterior no funciona, en el apartado de la web de configuración de OpenWRT «actualización de firmware» existe la opción de actualizarlo (con otro OpenWRT o con otro firmware, DD-WRT por ejemplo) marcando la opción «erase nvram por web», lo cual de realizarse con éxito solucionará el problema.

OpenWRT + erase nvram por telnet: Con OpenWRT instalado y configurado el password a través de la web de administración, se entrará por Telnet (telnet 192.168.1.1 23) y se ejecutará:

#nvram set http_passwd = "admin"
#nvram commit

reiniciar y probar instalando DD-WRT. Si no, volver a la versión de OpenWRT, que es la que permite el acceso sin problema de password por telnet a la nvram, y borrarla:

#nvram erase
#vnram commit

Reiniciar y reinstalar DD-WRT por web o tftp.

tftp firmware Linksys: Un método definitivo y 100% eficaz es la reinstalación del firmware de fábrica (descargable a través de la web de la marca del router) por tftp, reseteo posterior, entrar en la interfaz web (http://192.168.1.245, 255.255.255.0, usuario en blanco y password «admin» en caso del Linksys WAP54G) y desde allí ejecutar un «Reset defaults settings». Tras ello se puede instalar DD-WRT desde la misma web de administración.

cable JTAG: Como última opción cabe decir el montaje de un cable de conexión que resetee fisicamente la memoria del router. Se puede encontrar más información aquí: http://www.dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash#Recovery_by_JTAG_cable

Fuentes principales:
http://airfart.blogspot.com/2008/04/how-to-revive-bricked-wap54g-ver31.html
http://www.dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash
http://www.dd-wrt.com/wiki/index.php/Espanol

Ejecute estas instrucciones bajo su propia responsabilidad.

h1

VirtualBox 2.2 no reconoce en el huésped los dispositivos USB

30/05/2009

Un problema habitual en VirtualBox es el no reconocimieinto de los dispositivos USB enchufados en el host por parte del huésped. En Ubuntu 8.10 Intrepid amd64, con VirtualBox 2.2, se soluciona aplicando los siguientes 3 pasos:

1º) Añadir o descomentar el siguiente código en la llave «do_start()»:

# sudo nano /etc/init.d/mountdevsubfs.sh
[...]
do_start () {
#
# Mount a tmpfs on /dev/shm
#
SHM_OPT= [ "${SHM_SIZE:=$TMPFS_SIZE}" ] && SHM_OPT=",size=$SHM_SIZE" domount tmpfs shmfs /dev/shm tmpfs -onosuid,nodev$SHM_OPT

#
# Mount /dev/pts. Master ptmx node is already created by udev.
#
domount devpts "" /dev/pts devpts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE

# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

}
[...]

2º) Añadir una orden de acceso en el fstab, hallando previamente el GID del grupo vboxusers:

# grep vboxusers /etc/group
vboxusers:x:125:username

# sudo echo "none /proc/bus/usb usbfs devgid=125,devmode=664 0 0" >> /etc/fstab
Nota: Reemplazar 125 por el número devuelto en el anterior comando.

3º) Dar permisos de escritura sobre los dispositivos USB (de otra manera aparecerían en la barra inferior de VB pero desactivados, sombreados).

#sudo nano /etc/udev/rules.d/40-permissions.rules Reemplazar las ocurrencias de permisos «660» por «666»

Reiniciar el sistema, abrir VirtualBox y en la propia configuración de la máquina virtual, añadir los filtros necesarios para acceder a los dispositivos USB que se deseen.

h1

Como partir un fichero en Linux

29/05/2009

En otros sistemas operativos hay utilidades bien conocidas como Hacha o ZIP que permiten dividir cualquier fichero en varias partes, de modo que sea más fácil para manejar (transmitirlo por Internet en protocolos que no tengan recuperación ante interrupciones, o grabarlo en medios físicos de capacidad limitada como DVDs).

En Linux existen varias alternativas, siendo la más conocida «split»:

carlos@shirley:/tmp/prueba$ split -d --bytes=100m archivoGrande.avi archivoPequeno_
carlos@shirley:/tmp/prueba$ ls -la
total 1144332
drwxr-xr-x 2 4096 2009-05-29 13:16 .
drwxrwxrwt 18 4096 2009-05-29 13:14 ..
-rw-r--r-- 1 585306112 2009-05-29 13:12 archivoGrande.avi
-rw-r--r-- 1 104857600 2009-05-29 13:16 archivoPequeno_00
-rw-r--r-- 1 104857600 2009-05-29 13:16 archivoPequeno_01
-rw-r--r-- 1 104857600 2009-05-29 13:16 archivoPequeno_02
-rw-r--r-- 1 104857600 2009-05-29 13:16 archivoPequeno_03
-rw-r--r-- 1 104857600 2009-05-29 13:16 archivoPequeno_04
-rw-r--r-- 1  61018112 2009-05-29 13:16 archivoPequeno_05

Para recomponerlo, en GNU/Linux vale con:
carlos@shirley:/tmp/prueba$ cat archivoPequeno_0* > archivoRecompuesto.avi

Y se puede comprobar que el proceso ha funcionado bien buscando diferencias entre el original y el recompuesto:
carlos@shirley:/tmp/prueba$ diff archivoGrande.avi archivoRecompuesto.avi
carlos@shirley:/tmp/prueba$

Mientras, si es necesario recomponerlo en Ms. Windows:
c:\> copy /b archivoPequeno_0* archivoRecompuesto.avi

Además, en GNU/Linux hay otras opciones como Dar (alternativa mejorada de Tar), Hoz o con interfaz gráfico como Dalle.

Fuente: LinuxPoison

04857600
h1

Script bash para generar alarmas según la ocupación del disco

25/05/2009

En caso de necesitar monitorear discos recibiendo un correo electrónico si se alcanza un porcentaje de ocupación determinado, un workaround rápido puede ser este pequeño script, personalizándolo con los valores propios:

#!/bin/bash
#It is neccesary to install "sendEmail", not "sendmail"

MONITOR1=80 #First alarm (%)
MONITOR2=90 #Second alarm (%)
DISCO=`df -h | grep /dev/sda2 | cut -c 41-42` #Change /dev/sda2, use the disk you want to monitor.
GB=`df -h | grep /dev/sda2 | cut -c 35-38`

#If your smtp server needs authentication, add parameters "-xu USERNAME" and "-xp PASSWORD"

if [ $DISCO -ge $MONITOR2 ]
then
echo "Espacio critico en disco, superado $MONITOR2"
sendEmail -l /var/log/syslog -f direccionRemite@gmail.com -t direccionDestino@gmail.com -u "Espacio CRITICO en Shirley - /dev/sda1" -m "El disco de Shirley está al $DISCO%. Espacio libre de $GB" -s miServidorSMTP.com
logger "80% alcanzado"
else
if [ $DISCO -gt $MONITOR1 ]
then
echo "Espacio critico en disco, superado $MONITOR1"
sendEmail -l /var/log/syslog -f direccionRemite@gmail.com -t direccionDestino@gmail.com -u "Espacio CRÍTICO en Shirley - /dev/sda1" -m "El disco de Shirley está al $DISCO%. Espacio libre de $GB" -s miServidorSMTP.com
logger "____________90% alcanzado"____________
else
echo "Disco OK"
fi
fi

Una vez creado el script, es necesario darle permiso de ejecución:
chmod 700 /root/alarma.ocupacion.sda2.sh

E incluirlo en el cron con la periodicidad deseada:
root@shirley:~# crontab -e
# m h dom mon dow command
* 19 * * * /root/alarma.ocupacion.sda1.sh
* 22 * * * /root/alarma.ocupacion.sda1.sh
* 9 * * * /root/alarma.ocupacion.sda1.sh

h1

Cómo programar o realizar por consola un reinicio del router Linksys AG241 / AG241V2

10/05/2009

Si se desea programar un reinicio o automatizarlo para este modelo concreto de router, se puede realizar utilizando este sencillo script o la sigueinte versión que he modificado ligeramente:

#!/bin/sh
#original source: http://forums.whirlpool.net.au/forum-replies-archive.cfm/623775.html
#fixes: Carlos Gacimartín, http://gacimartin.es
#
#It is necessary to install CURL. (apt-get install curl in Debian/Ubuntu)
#Hosts to test:
HOSTS="194.179.1.100 www.terra.es www.google.es telefonica.es"
#
# email report when it fails. That of course is a local address on the same server... that address then forwards on to an external address
SUBJECT="Pings failed so I tried to reboot :("
EMAILID="cgacimartin@dominio.com"
#
# number of ping requests per host.
COUNT=3
RAWOUTPUT=""
#
for HOST in $HOSTS
do
ping -c $COUNT $HOST > RAWOUTPUT
if [ $? -ne 0 ]
then
logger "ping: $HOST unreachable"
echo "ping: $HOST unreachable"
else
exit 0 #no sense in going on if all is good
fi
done
#
echo $RAWOUTPUT | mail -s "$SUBJECT" $EMAILID
#
#Attention,in the CURL command choose:
# - SRebootvalidate : reboot software, only ADSL.
# - HRebootvalidate : reboot hardware, power failure simulation.
#and change the router IP and TWICE the user/password data.
#
curl --anyauth -s -u admin:password "http://172.26.0.1/Reboot.asp" "http://172.26.0.1/apply.cgi?submit_button=Reboot_validate&action=Rebootvalidate&submit_type=HRebootvalidate&reboot_username=admin&reboot_password=password"
#
exit 0

Además, se puede incluir en el cron:

#crontab -e
* * * * * /root/testear.router.AG241.sh

de modo que cada minuto compruebe la conectividad con Internet y reinicie el router si falla, a parte de enviar un correo.

Además, se puede comprobar remotamente el estado del router (conocer la última vez que se reinició), mediante snmp. Para ello es necesario activarla a través de la interfaz gráfica, y después ejecutar:

carlos@wifiMonit:~$ snmpwalk -c private -v 1 172.26.0.1 | grep hrSystemUptime
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (33329) 0:05:33.29

h1

Error SSH buffer_get_ret/buffer_get_int

08/05/2009

Ante este problema al conectar por ssh:

carlos@ikeys:~$ ssh corp1.google.es
buffer_get_ret: trying to get more bytes 4 than in buffer 0
buffer_get_int: buffer error

Se presenta el problema del un fichero «known_hosts» mal formado. Como solución se presentan dos alternativas:

Solución #1: Borrarlo
mv $HOME/.ssh/known_hosts $HOME/.ssh/known_hostsOLD
ó
rm $HOME/.ssh/known_hosts

Solución #2: Corregirlo
nano .ssh/known_hosts

Revisar el fichero de modo que cada entrada aparezca solo en una línea. De este modo todas las líneas deben empezar por "[1]".

El problema también puede ocurrir en el fichero authorized_keys.

h1

Como evitar el error «BAD PASSWORD» al poner una contraseña débil a un usuario en GNU/Linux

08/05/2009

Cuando el propio usuario intenta cambiar su password, el sistema comprueba la resistencia ante ataques del nuevo password. Si cumple unos mínimos, éste se acepta; en otro caso, se rechaza:

[carlos@shirley ~]$ passwd
Changing password for user carlos.
Changing password for carlos
(current) UNIX password: ******
New UNIX password: *******
BAD PASSWORD: it is based on your username
New UNIX password: *******

Si de todas maneras se quiere poner un password débil, éste lo debe poner root a ese usuario:

[carlos@shirley ~]# su -
Password: *******

[root@shirley ~]# passwd carlos
Changing password for user carlos.
New UNIX password: ****
Retype new UNIX password: ****
passwd: all authentication tokens updated successfully.

h1

Como medir temperatura de la placa base, CPU, etc

26/04/2009

En GNU/Linux existe el comando «sensors» para mostrar en consola la información de los sensores de la placa base. Previamente estos deben haber sido activados en la BIOS. Para ver la temperatura se pueden seguir los siguientes pasos:

[root@server4 /]# sensors
Can't access procfs/sysfs file
Unable to find i2c bus information;
For 2.6 kernels, make sure you have mounted sysfs and done
'modprobe i2c_sensor'!
For older kernels, make sure you have done 'modprobe i2c-proc'!

[root@server4 /]# modprobe i2c_sensor
[root@server4 /]# sensors
No sensors found!
[root@server4 /]# sensors-detect (responder Intro a todo lo que pregunte)

This program will help you determine which I2C/SMBus modules you need to
load to use lm_sensors most effectively. You need to have i2c and
lm_sensors installed before running this program.
Also, you need to be `root', or at least have access to the /dev/i2c-*
files, for most things.
If you have patched your kernel and have some drivers built in, you can
safely answer NO if asked to load some modules. In this case, things may
seem a bit confusing, but they will still work.

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.
You do not need any special privileges for this.
Do you want to probe now? (YES/no):
Probing for PCI bus adapters...
Sorry, no PCI bus adapters found.

We will now try to load each adapter module in turn.
If you have undetectable or unsupported adapters, you can have them
scanned by manually loading the modules before running this script.

To continue, we need module `i2c-dev' to be loaded.
If it is built-in into your kernel, you can safely skip this.
i2c-dev is not loaded. Do you want to load it now? (YES/no):
Module loaded succesfully.

We are now going to do the adapter probings. Some adapters may hang halfway
through; we can't really help that. Also, some chips will be double detected;
we choose the one with the highest confidence value in that case.
If you found that the adapter hung after probing a certain address, you can
specify that address to remain unprobed. That often
includes address 0x69 (clock chip).

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. This is usually safe though.

Do you want to scan the ISA bus? (YES/no):
Probing for `National Semiconductor LM78'
Trying address 0x0290... Failed!
Probing for `National Semiconductor LM78-J'
Trying address 0x0290... Failed!
Probing for `National Semiconductor LM79'
Trying address 0x0290... Failed!
Probing for `Winbond W83781D'
Trying address 0x0290... Failed!
Probing for `Winbond W83782D'
Trying address 0x0290... Failed!
Probing for `Winbond W83627HF'
Trying address 0x0290... Success!
(confidence 8, driver `w83781d')
Probing for `Winbond W83697HF'
Trying address 0x0290... Failed!
Probing for `Silicon Integrated Systems SIS5595'
Trying general detect... Failed!
Probing for `VIA Technologies VT82C686 Integrated Sensors'
Trying general detect... Failed!
Probing for `VIA Technologies VT8231 Integrated Sensors'
Trying general detect... Failed!
Probing for `ITE IT8705F / IT8712F / SiS 950'
Trying address 0x0290... Failed!
Probing for `IPMI BMC KCS'
Trying address 0x0ca0... Failed!
Probing for `IPMI BMC SMIC'
Trying address 0x0ca8... Failed!

Some Super I/O chips may also contain sensors. Super I/O probes are
typically a bit more dangerous, as we have to write to I/O ports to do
this. This is usually safe though.

Do you want to scan for Super I/O sensors? (YES/no):

Probing for `ITE 8702F Super IO Sensors'
Failed! (skipping family)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
Failed! (skipping family)
Probing for `SMSC 47B27x Super IO Fan Sensors'
Failed! (skipping family)
Probing for `VT1211 Super IO Sensors'
Failed! (0x52)
Probing for `Winbond W83627HF Super IO Sensors'
Success... found at address 0x0295
Probing for `Winbond W83627THF Super IO Sensors'
Failed! (0x52)
Probing for `Winbond W83637HF Super IO Sensors'
Failed! (0x52)
Probing for `Winbond W83697HF Super IO Sensors'
Failed! (0x52)
Probing for `Winbond W83697SF/UF Super IO PWM'
Failed! (0x52)
Probing for `Winbond W83L517D Super IO'
Failed! (0x52)

Do you want to scan for secondary Super I/O sensors? (YES/no): Probing for `ITE 8702F Super IO Sensors'
Failed! (skipping family)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
Failed! (skipping family)
Probing for `SMSC 47B27x Super IO Fan Sensors'
Failed! (skipping family)
Probing for `VT1211 Super IO Sensors'
Failed! (skipping family)

Now follows a summary of the probes I have just done.
Just press ENTER to continue:
Driver `w83781d' (should be inserted):
Detects correctly:
* ISA bus address 0x0290 (Busdriver `i2c-isa')
Chip `Winbond W83627HF' (confidence: 8)

Driver `w83627hf' (should be inserted):
Detects correctly:
* ISA bus address 0x0295 (Busdriver `i2c-isa')
Chip `Winbond W83627HF Super IO Sensors' (confidence: 9)

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)?

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

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

To load everything that is needed, add this to some /etc/rc* file:

#----cut here----
# I2C adapter drivers
modprobe i2c-isa
# I2C chip drivers
modprobe w83781d
modprobe w83627hf
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----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.

Do you want to generate /etc/sysconfig/lm_sensors? (YES/no): Copy prog/init/lm_sensors.init to /etc/rc.d/init.d/lm_sensors
for initialization at boot time.
[root@server4 /]#
[root@server4 /]#
[root@server4 /]#
[root@server4 /]# /etc/init.d/lm_sensors restart
Stopping lm_sensors: [ OK ]
Starting lm_sensors: [ OK ]
[root@server4 /]#
[root@server4 /]#
[root@server4 /]# sensors
w83627hf-isa-0290
Adapter: ISA adapter
VCore 1: +0.00 V (min = +0.00 V, max = +0.00 V) ALARM
VCore 2: +0.00 V (min = +0.00 V, max = +0.00 V) ALARM
+3.3V: +0.00 V (min = +3.14 V, max = +3.46 V)
+5V: +5.03 V (min = +4.73 V, max = +5.24 V) ALARM
+12V: +0.00 V (min = +10.82 V, max = +13.19 V)
-12V: -14.91 V (min = -13.18 V, max = -10.88 V)
-5V: -7.71 V (min = -5.25 V, max = -4.75 V)
V5SB: +5.59 V (min = +4.73 V, max = +5.24 V) ALARM
VBat: +1.12 V (min = +2.40 V, max = +3.60 V)
fan1: 0 RPM (min = 3026 RPM, div = 2)
fan2: 0 RPM (min = 10074 RPM, div = 2)
fan3: 0 RPM (min = 4326 RPM, div = 2)
temp1: +127°C (high = +48°C, hyst = +115°C) sensor = thermistor
temp2: +127.0°C (high = +80°C, hyst = +75°C) sensor = thermistor ALARM
temp3: +127.0°C (high = +80°C, hyst = +75°C) sensor = thermistor ALARM
ERROR: Can't get VID data!
alarms: Chassis intrusion detection ALARM
beep_enable:
Sound alarm disabled


En Debian ó Ubuntu concretamente sería parecido a:

root@shirley:/var/cache/apt/archives# apt-get install lm-sensors
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
libsensors4
Paquetes sugeridos:
sensord read-edid i2c-tools
Se instalarán los siguientes paquetes NUEVOS:
libsensors4 lm-sensors
0 actualizados, 2 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 191kB de archivos.
Se utilizarán 795kB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]?
Des:1 http://archive.ubuntu.com intrepid/main libsensors4 1:3.0.2-1ubuntu2 [64,7kB]
Des:2 http://archive.ubuntu.com intrepid/main lm-sensors 1:3.0.2-1ubuntu2 [126kB]
Descargados 191kB en 0s (333kB/s)
Seleccionando el paquete libsensors4 previamente no seleccionado.
(Leyendo la base de datos ...
155498 ficheros y directorios instalados actualmente.)
Desempaquetando libsensors4 (de .../libsensors4_1%3a3.0.2-1ubuntu2_amd64.deb) ...
Seleccionando el paquete lm-sensors previamente no seleccionado.
Desempaquetando lm-sensors (de .../lm-sensors_1%3a3.0.2-1ubuntu2_amd64.deb) ...
Procesando activadores para man-db ...
Configurando libsensors4 (1:3.0.2-1ubuntu2) ...
udev active, devices will be created in /dev/.static/dev/
Creating config file /etc/sensors3.conf with new version
Configurando lm-sensors (1:3.0.2-1ubuntu2) ...

Procesando activadores para libc6 ...
ldconfig deferred processing now taking place

Detección e instalación de sensores:

carlos@WhenIGrowUp:/$ sudo sensors-detect
[sudo] password for carlos:
# sensors-detect revision 5016 (2007-11-11 22:20:16 +0100)
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.
(...)
To load everything that is needed, add this to /etc/modules:
#----cut here----
# Chip drivers
it87
k8temp
#----cut here----

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

# modprobe it87 k8temp

y muestreo de la temperatura:

root@shirley:/var/cache/apt/archives# sensors
k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: -49.0°C
Core1 Temp: +111.0°C <- Valor falso

it8712-isa-0290
Adapter: ISA adapter
VCore 1: +1.14 V (min = +0.00 V, max = +4.08 V)
VCore 2: +4.08 V (min = +0.00 V, max = +4.08 V) ALARM
+3.3V: +3.36 V (min = +0.00 V, max = +4.08 V)
+5V: +6.85 V (min = +0.00 V, max = +6.85 V) ALARM
+12V: +12.74 V (min = +0.00 V, max = +16.32 V)
-12V: -15.33 V (min = -27.36 V, max = +3.93 V)
-5V: +4.03 V (min = -13.64 V, max = +4.03 V) ALARM
Stdby: +6.85 V (min = +0.00 V, max = +6.85 V) ALARM
VBat: +3.20 V
fan1: 1126 RPM (min = 0 RPM)
fan2: 3169 RPM (min = 0 RPM)
M/B Temp: +100.0°C (low = -1.0°C, high = +127.0°C) sensor = thermistor
CPU Temp: +43.0°C (low = -1.0°C, high = +127.0°C) sensor = thermistor
Temp3: -128.0°C (low = -1.0°C, high = +127.0°C) sensor = disabled
cpu0_vid: +1.550 V