# lm sensor for AMD K10 CPU not working correctly

## dman777

I'm trying to lm sensor to read my AMD K10 (Phenom II X3) cpu temp sensor. On the lm sensor site it lists the driver for download in which I did and installed. 

However when issuing the sensors command I get back:

```
localhost one # sensors 

k10temp-pci-00c3

Adapter: PCI adapter

```

I know on the Lm Sensor wiki it states:

 *Quote:*   

> (2009-12-06) Embedded sensors are known to be unreliable on the DR-BA, DR-B2, DR-B3, RB-C2 and HY-D0 revisions of the family 10h CPU, which will never be supported. Driver contributed by Clemens Ladisch, reviewed by Jean Delvare.

 

Since I did not get the output I was expecting with the sensors command, does this mean I'm scr*wed?

----------

## krinn

Only the revision 10h is bad. 

You could check yours with cat /proc/cpuinfo | grep -m1 stepping but i don't own an amd and i'm not sure stepping is also use for amd.

considering my output, it seems your sensors is working :/

```
sensors

atk0110-acpi-0

Adapter: ACPI interface

Vcore Voltage:      +0.95 V  (min =  +0.80 V, max =  +1.60 V)

 +3.3 Voltage:      +3.33 V  (min =  +2.97 V, max =  +3.63 V)

 +5 Voltage:        +5.24 V  (min =  +4.50 V, max =  +5.50 V)

 +12 Voltage:      +12.14 V  (min = +10.20 V, max = +13.80 V)

CPU FAN Speed:     1360 RPM  (min =  600 RPM)

CHASSIS1 FAN Speed:   0 RPM  (min =  600 RPM)

CHASSIS2 FAN Speed:   0 RPM  (min =  600 RPM)

POWER FAN Speed:   1318 RPM  (min =    0 RPM)

CPU Temperature:    +39.5°C  (high = +60.0°C, crit = +75.0°C)  

MB Temperature:     +46.0°C  (high = +45.0°C, crit = +75.0°C)  

```

----------

## pianosaurus

 *krinn wrote:*   

> Only the revision 10h is bad.

 

Actually, it says there are 5 different revisions of the 10h family that are bad. Skip the grep, the output isn't that long. There should be a separate cpu family entry.

My old Athlon64 lists a stepping, but it is set to 1, so I don't know if it is in use either.

----------

## dman777

```
localhost one # cat /proc/cpuinfo 

processor   : 0

vendor_id   : AuthenticAMD

cpu family   : 16

model      : 4

model name   : AMD Phenom(tm) II X3 705e Processor

stepping   : 2

cpu MHz      : 2511.631

cache size   : 512 KB

physical id   : 0

siblings   : 3

core id      : 0

cpu cores   : 3

apicid      : 0

initial apicid   : 0

fpu      : yes

fpu_exception   : yes

cpuid level   : 5

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt

bogomips   : 5023.25

TLB size   : 1024 4K pages

clflush size   : 64

cache_alignment   : 64

address sizes   : 48 bits physical, 48 bits virtual

power management: ts ttp tm stc 100mhzsteps hwpstate

processor   : 1

vendor_id   : AuthenticAMD

cpu family   : 16

model      : 4

model name   : AMD Phenom(tm) II X3 705e Processor

stepping   : 2

cpu MHz      : 2511.631

cache size   : 512 KB

physical id   : 0

siblings   : 3

core id      : 1

cpu cores   : 3

apicid      : 1

initial apicid   : 1

fpu      : yes

fpu_exception   : yes

cpuid level   : 5

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt

bogomips   : 5022.72

TLB size   : 1024 4K pages

clflush size   : 64

cache_alignment   : 64

address sizes   : 48 bits physical, 48 bits virtual

power management: ts ttp tm stc 100mhzsteps hwpstate

processor   : 2

vendor_id   : AuthenticAMD

cpu family   : 16

model      : 4

model name   : AMD Phenom(tm) II X3 705e Processor

stepping   : 2

cpu MHz      : 2511.631

cache size   : 512 KB

physical id   : 0

siblings   : 3

core id      : 2

cpu cores   : 3

apicid      : 2

initial apicid   : 2

fpu      : yes

fpu_exception   : yes

cpuid level   : 5

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt

bogomips   : 5022.72

TLB size   : 1024 4K pages

clflush size   : 64

cache_alignment   : 64

address sizes   : 48 bits physical, 48 bits virtual

power management: ts ttp tm stc 100mhzsteps hwpstate

```

Do I go by the stepping or the familey? The stepping saids 2 and the family saids 16. Would that be 16h which would mean it should work?

----------

## krinn

must be family, and i hope it's hexa, else you're dead 10h = 16dec

----------

## Mike Hunt

Can you not use the hwmon kernel module? It's in Device Drivers.

I use it like this:

```
 ~ # echo "$(sed 's/\(..\)\(.\)../\1\.\2/' /sys/class/hwmon/hwmon0/device/temp1_input)C"

45.1C
```

----------

## pianosaurus

DR-BA, DR-B2 and DR-B3 have model number 2, so you don't have those.

HY-D0 has model number 8, so you don't have that one either.

The RB-C* has model number 4, so you may have RB-C2. Post the output of setpci -d 1022:1202 94.L as root, and I should be able to tell you.

Addendum: Oh, and by the way, I'm fairly certain you have family 10h, as all the other output from cpuinfo is in decimal.

----------

## poly_poly-man

I have the same cpu family/model/stepping as you:

```
vendor_id       : AuthenticAMD

cpu family      : 16          

model           : 4           

model name      : AMD Phenom(tm) II X4 925 Processor

stepping        : 2
```

I have working k10temp, although I downloaded it from the internet (not using the version in the kernel, because I'm using a weird kernel setup.)

Anyway: 

```
$ sensors

k10temp-pci-00c3

Adapter: PCI adapter

temp1:       +22.5 C

it8720-isa-0228

Adapter: ISA adapter

in0:         +0.94 V  (min =  +0.00 V, max =  +4.08 V)

in1:         +1.62 V  (min =  +0.00 V, max =  +4.08 V)

in2:         +3.28 V  (min =  +0.00 V, max =  +4.08 V)

in3:         +2.96 V  (min =  +0.00 V, max =  +4.08 V)

in4:         +3.10 V  (min =  +0.00 V, max =  +4.08 V)

in5:         +1.33 V  (min =  +0.00 V, max =  +4.08 V)

in6:         +3.28 V  (min =  +0.00 V, max =  +4.08 V)

in7:         +2.14 V  (min =  +0.00 V, max =  +4.08 V)

Vbat:        +3.15 V

fan1:        983 RPM  (min =    0 RPM)

fan2:       1036 RPM  (min =    0 RPM)

fan3:          0 RPM  (min =    0 RPM)

fan5:          0 RPM  (min =    0 RPM)

temp1:       +30.0 C  (low  = +127.0 C, high = +127.0 C)  sensor = thermistor

temp2:       +28.0 C  (low  = +127.0 C, high = +127.0 C)  sensor = thermal diode

temp3:       +80.0 C  (low  = +127.0 C, high = +127.0 C)  sensor = thermistor

cpu0_vid:   +1.250 V
```

dunno if the number's good, but it's a number, so I imagine it's trustable.

----------

## dman777

That's good to hear. I downloaded mine from the lm sensor wiki since the current kernel in gentoo sources doesn't have it yet. I am compiled it and installed it. The temp doesn't show though..only:

```
$ sensors

k10temp-pci-00c3

Adapter: PCI adapter 
```

What am I doing wrong?

----------

## pianosaurus

 *dman777 wrote:*   

> What am I doing wrong?

 

Did you read my post?

 *pianosaurus wrote:*   

> Post the output of setpci -d 1022:1202 94.L as root, and I should be able to tell you.

 

----------

## NeddySeagoon

dman777,

You should be using the ACPI interface, not the hardware sensor directly.

I have 

```
vendor_id   : AuthenticAMD

cpu family   : 16

model      : 4

model name   : AMD Phenom(tm) II X3 720 Processor

stepping   : 2
```

and sensors gives me 

```
$ sensors

atk0110-acpi-0

Adapter: ACPI interface

Vcore Voltage:       +1.06 V  (min =  +0.85 V, max =  +1.60 V)

 +3.3 Voltage:       +3.49 V  (min =  +2.97 V, max =  +3.63 V)

 +5 Voltage:         +5.08 V  (min =  +4.50 V, max =  +5.50 V)

 +12 Voltage:       +12.44 V  (min = +10.20 V, max = +13.80 V)

CPU FAN Speed:      1227 RPM  (min =  600 RPM)

CHASSIS FAN Speed:   406 RPM  (min =  600 RPM)

CHASSIS FAN 2 Speed: 229 RPM  (min =  600 RPM)

CPU Temperature:     +34.0 C  (high = +60.0 C, crit = +95.0 C)  

MB Temperature:      +46.0 C  (high = +45.0 C, crit = +75.0 C)  

```

----------

## NeddySeagoon

dman777,

You should be using the ACPI interface, not the hardware sensor directly.

I have 

```
vendor_id   : AuthenticAMD

cpu family   : 16

model      : 4

model name   : AMD Phenom(tm) II X3 720 Processor

stepping   : 2
```

and sensors gives me 

```
$ sensors

atk0110-acpi-0

Adapter: ACPI interface

Vcore Voltage:       +1.06 V  (min =  +0.85 V, max =  +1.60 V)

 +3.3 Voltage:       +3.49 V  (min =  +2.97 V, max =  +3.63 V)

 +5 Voltage:         +5.08 V  (min =  +4.50 V, max =  +5.50 V)

 +12 Voltage:       +12.44 V  (min = +10.20 V, max = +13.80 V)

CPU FAN Speed:      1227 RPM  (min =  600 RPM)

CHASSIS FAN Speed:   406 RPM  (min =  600 RPM)

CHASSIS FAN 2 Speed: 229 RPM  (min =  600 RPM)

CPU Temperature:     +34.0 C  (high = +60.0 C, crit = +95.0 C)  

MB Temperature:      +46.0 C  (high = +45.0 C, crit = +75.0 C)  

```

The kernel will not load the lm73 driver, or whatever it is as its a very bad thing.

Well, it will but you have to force it on the kernel command line.

----------

## dman777

 *pianosaurus wrote:*   

>  *dman777 wrote:*   What am I doing wrong? 
> 
> Did you read my post?
> 
>  *pianosaurus wrote:*   Post the output of setpci -d 1022:1202 94.L as root, and I should be able to tell you. 

 

sorry....here it is:

```
localhost one # setpci -d 1022:1202 94.L 

1f58090d

localhost one # 

```

----------

## pianosaurus

 *dman777 wrote:*   

> sorry....here it is:
> 
> ```
> localhost one # setpci -d 1022:1202 94.L 
> 
> ...

 

Ok. According to the lm-sensors source, your CPU is not affected. So the driver should work.

The line in question in the source is commented with "DDR3". That's not exactly a verbose comment, so I don't know what they mean by that. That the DDR3-supporting chips don't have the problem?

Anyway, if you can't get it to work, you should be able to get the same data through ACPI, as has been suggested.

----------

## dman777

How do I get lm sensor to access the cpu temps through the acpi interface?

----------

## jathlon

If you have an ASUS mother board it's fairly easy.  If you look under Drivers -> Hardware Monitoring Support right at the bottom of the page there is "ASUS ATK0110"  and "STMicroeletronics LIS3* three-axis digital accelerometer".  I'm not sure how I found it but the atk0110  seems to work well on my newer M4A87TD EVO board and my old P5Q-E.

I notice that krinn is using the same sensor as well.

From my Phenom system:

```

atk0110-acpi-0

Adapter: ACPI interface

Vcore Voltage:     +1.19 V  (min =  +0.80 V, max =  +1.60 V)

+3.3V Voltage:     +3.34 V  (min =  +2.97 V, max =  +3.63 V)

+5V Voltage:       +5.10 V  (min =  +4.50 V, max =  +5.50 V)

+12V Voltage:     +12.11 V  (min = +10.20 V, max = +13.80 V)

CPU Fan Speed:     600 RPM  (min =  600 RPM)

Chassis Fan Speed: 405 RPM  (min =  600 RPM)

Power Fan Speed:  1577 RPM  (min =  600 RPM)

CPU Temperature:   +43.0°C  (high = +60.0°C, crit = +95.0°C)  

MB Temperature:    +41.0°C  (high = +45.0°C, crit = +75.0°C)
```

From my old Core2Duo system:

```

atk0110-acpi-0

Adapter: ACPI interface

Vcore Voltage:      +1.10 V  (min =  +0.80 V, max =  +1.60 V)

 +3.3 Voltage:      +3.30 V  (min =  +2.97 V, max =  +3.63 V)

 +5 Voltage:        +4.99 V  (min =  +4.50 V, max =  +5.50 V)

 +12 Voltage:      +12.04 V  (min = +10.20 V, max = +13.80 V)

CPU FAN Speed:     1205 RPM  (min =  600 RPM)

CHASSIS1 FAN Speed:   0 RPM  (min =  600 RPM)

CHASSIS2 FAN Speed: 781 RPM  (min =  600 RPM)

CHASSIS3 FAN Speed:2343 RPM  (min =  600 RPM)

POWER FAN Speed:      0 RPM  (min =  600 RPM)

CPU Temperature:    +28.0�C  (high = +60.0�C, crit = +95.0�C)  

MB Temperature:     +35.0�C  (high = +45.0�C, crit = +95.0�C)
```

NOTE that in both cases the first line of output is the sensor module that the command sensors is getting input from!

later,

joe

----------

## dman777

How do I find out the Linux kernel hardware monitoring ACPI driver for a Gigabyte Motherboard ma770t-udp3? I looked on the wiki's but couldn't find any results for this motherboard. I ran sensors-detect and it showed no acpi driver.

EDIT: I don't think there is a acpi driver I can use for my motherboard. Please correct me if I am wrong. Anyways, I got this far:

```
k10ktemp-pci-00c3

Adapter: PCI adapter

temp1:       +36.0 C  (high = +70.0 C, crit = +72.0 C)  

```

It still seems high for this type of CPU with no load going and it being chilly in my apartment. But it's better than the ISA reading. 

However I have 2 more cpus I can not get the temps off of. There is no config section in /etc/sensors3.conf for the ktemp-pci-00c3 driver. Can anyone help please?

----------

## theotherjoe

Had a look at your MB manual and it looks as if it uses a similar sensor 

chip as on mine. So, you would need to include the following option from 

the hardware monitoring driver section in your kernel .config

```
CONFIG_SENSORS_IT87=y
```

Additionally, as an example this is output from 'sensors' command on 

my system

```
it8718-isa-0228

Adapter: ISA adapter

in0:         +0.85 V  (min =  +0.00 V, max =  +4.08 V)

in1:         +1.58 V  (min =  +0.00 V, max =  +4.08 V)

in2:         +3.26 V  (min =  +0.00 V, max =  +4.08 V)

+5V:         +2.99 V  (min =  +0.00 V, max =  +4.08 V)

in4:         +3.04 V  (min =  +0.00 V, max =  +4.08 V)

in5:         +4.08 V  (min =  +0.00 V, max =  +4.08 V)

in6:         +4.08 V  (min =  +0.00 V, max =  +4.08 V)

in7:         +1.63 V  (min =  +0.00 V, max =  +4.08 V)

Vbat:        +3.07 V

CPU fan:    2014 RPM  (min =    0 RPM)

SYS fan:    1595 RPM  (min =    0 RPM)

fan3:          0 RPM  (min =    0 RPM)

fan5:          0 RPM  (min =    0 RPM)

Sys Temp:    +43.0 C  (low  =  +0.0 C, high = +50.0 C)  sensor = thermistor

CPU:         +37.0 C  (low  =  +0.0 C, high = +60.0 C)  sensor = thermal diode

Chipset:     +39.0 C  (low  =  +0.0 C, high = +60.0 C)  sensor = thermistor

cpu0_vid:   +1.050 V

k10temp-pci-00c3

Adapter: PCI adapter

temp1:       +28.9 C  (high = +70.0 C, crit = +72.0 C)

```

----------

## dman777

I have had it enabled:

```
Symbol: SENSORS_IT87 [=y]
```

But the it8720-isa-0228 readings can not be right for my cpu temps because they are to high. And the k10temp-pci-00c3 is more realistic but...again...it shows only one cpu.

```
localhost linux # sensors

it8720-isa-0228

Adapter: ISA adapter

in0:         +1.17 V  (min =  +0.00 V, max =  +4.08 V)   

in1:         +1.95 V  (min =  +0.00 V, max =  +4.08 V)   

in2:         +3.41 V  (min =  +0.00 V, max =  +4.08 V)   

in3:         +3.04 V  (min =  +0.00 V, max =  +4.08 V)   

in4:         +3.06 V  (min =  +0.00 V, max =  +4.08 V)   

in5:         +1.20 V  (min =  +0.00 V, max =  +4.08 V)   

in6:         +3.41 V  (min =  +0.00 V, max =  +4.08 V)   

in7:         +2.96 V  (min =  +0.00 V, max =  +4.08 V)   

Vbat:        +3.25 V

fan1:       2014 RPM  (min =   10 RPM)

fan2:          0 RPM  (min =    0 RPM)

fan3:          0 RPM  (min =    0 RPM)

fan5:          0 RPM  (min =    0 RPM)

temp1:       +40.0 C  (low  = +127.0 C, high = +127.0 C)  sensor = thermistor

temp2:       +42.0 C  (low  = +127.0 C, high = +60.0 C)  sensor = thermal diode

temp3:       +84.0 C  (low  = +127.0 C, high = +127.0 C)  sensor = thermistor

cpu0_vid:   +1.250 V

k10temp-pci-00c3

Adapter: PCI adapter

temp1:       +35.5 C  (high = +70.0 C, crit = +72.0 C)  
```

----------

## theotherjoe

dman777, 

dont know what temp3 represents in your output.

only thing I can say about the CPU temperatures reported from

the it8718 sensors on my board is that they are systematically 

(about 7-8 deg.) higher than the k10temp values. 

I checked those values against values reported in BIOS and they 

are inline with what lm_sensors reports.

edit: BTW, you seem to expect separate temperature readings for 

each core, but that is not the case. I am not to sure about the 

details, but as far as I understand the k10temp sensor will be 

inside the CPU casing (correct term?) or on the die itself, whereas the 

temp2 sensor which is reported by lm_sensors (I labeled it CPU myself 

via sensors.conf) sits underneath the socket on the MB

edit2: also, if you compare your output with the output from poly_poly-man

than you will find that your values are pretty much inline, couple of degrees

higher though.

----------

