# Broken CPU temperature sensor

## linux4ever

Hi,

I have a motherboard with a it78(12F) chip on it. However, while fooling around with it I guess I damaged the CPU temperature sensor.

Now I get values between 60 and 90 degrees Celsius when idle, and sometimes it raises (at random times) to somewhere around 120 degrees and will reach at the end 127 and overflow to -127 (!) degrees.

The problem is that my CPU fan is (was) controlled using the QFan chip (or feature) using this sensor and now I can't use it (when I get a -127 degrees value, the fan stops).

Is there a (save!) way to use an other sensor value as source or is this feature hard-wired? I also don't want a fried CPU on a system crash... I know that the k8temp sensors are just guesses, but they were more or less reliable (maybe I should add some degrees to their values). And what about the thermal_zone?

BTW I have an Asus M2NPV-VM board.

Thanks.

```

$ sensors

it8716-isa-0290

Adapter: ISA adapter

VCore:     +1.54 V  (min =  +1.05 V, max =  +1.66 V)

+3.3V:     +3.25 V  (min =  +2.97 V, max =  +3.62 V)

+5V:       +4.93 V  (min =  +4.51 V, max =  +5.51 V)

+12V:     +12.25 V  (min = +10.79 V, max = +13.18 V)

5VSB:      +4.76 V  (min =  +4.51 V, max =  +5.51 V)

VBat:      +2.91 V

CPU Fan:  4821 RPM  (min =  799 RPM)

PWR Fan:  1421 RPM  (min =  399 RPM)

CPU Temp:    +70 C  (low  =   +10 C, high =   +60 C)   sensor = diode

M/B Temp:    +45 C  (low  =   +10 C, high =   +50 C)   sensor = thermistor

UNKNOWN:     +25 C  (low  =   +10 C, high =   +60 C)   sensor = thermistor

k8temp-pci-00c3

Adapter: PCI adapter

Core0 Temp:

             +39 C

Core1 Temp:

             +36 C

```

```

$ cat /proc/acpi/thermal_zone/THRM/temperature

temperature:             40 C

```

----------

## NeddySeagoon

linux4ever,

The 

```
CPU Temp:    +70 C  (low  =   +10 C, high =   +60 C)   sensor = diode 
```

on your it8716-isa-0290 sensor, isn't actually the CPU. temperature.  Its the temperature inside the CPU socket, between the CPU and the motherboard.

These sensors are rarely diodes as thermisters are easier to work with.

lm-sensors will have two sets of equations to cope with diodes and thermisters, so your sensors.conf needs to be looked at. 

The k8temp-pci-00c3 outputs are your real CPU core temperatures.  They are provided by sensors embedded in the cores, probably diodes made with all the other other millions of transistors in the CPU.

None of this affects QFan operation, as thats mediated by the BIOS and the BIOS has no idea how lm-sensors is reporting temperatures.

----------

## linux4ever

Thanks for your answer, however,

1. I read at several places that the k8temp temperatures are guesses because they are inside the CPU. I'm not sure whether being inside the package or not effects reliability, but that's what I found on the net.

2. When I change the sensor to thermistor(in sensors.conf), the temperature only raises (say by 10 degrees), still this *could* be a configuration (bias) issue.

3. The temperature measured by lm_sensors consists more or less with the BIOS temperature (I got a hardware monitoring section in my BIOS), and suddenly (after fiddling around with the M/B) showed this behavior (higher values, the -128 value).

4. QFan uses the it8712f CPU sensor as input to control the fan. I don't know whether the BIOS initializes this or it's hard wired.

If I'm wrong somewhere or you have any ideas, just say it. 

Thanks a lot anyway.

----------

## doctork

I have a system with an M2NPV-VM which has been sitting quietly in the corner as a router/firewall/dhcp/dns server for 2+ years.  The only time it gets any exercise is when I update software.  Currently it's running 2.6.28-gentoo-r3 kernel and lm_sensors 2.10.7.  Re temperatures, it tells me:

```
temp1:       +20°C  (low  =   +20°C, high =   +60°C)   sensor = diode

temp2:       +40°C  (low  =   +20°C, high =   +50°C)   sensor = invalid

temp3:       +25°C  (low  =    -1°C, high =  +127°C)   sensor = invalid

and

k8temp-pci-00c3

Adapter: PCI adapter

Core0 Temp:

             +27°C

Core1 Temp:

             +25°C

```

temp1 appears a bit low to me, since it's actually below ambient room temperature.  However, it does track the temps given by  k8temp when I load the system.  temp2 and temp3 don't ever seem to change, so perhaps the "sensor = invalid" is true.  Out of curiousity, I changed the sensor type on temp1 to thermistor, and the readout immediatly jumped to 79c.

--

doc

----------

