# sensors not detected

## elestedt

Hi,

sensors-detect does not detect which sensor-chip I have - how can I find out which chip i have?

(I have installed the latest ~x86 version of lm_sensors)

Thanks in advance.

----------

## Kruegi

sensors-detect tells you to load some modules. Make sure they are compiled and loaded.

Thomas

----------

## elestedt

 *Kruegi wrote:*   

> sensors-detect tells you to load some modules. Make sure they are compiled and loaded.
> 
> Thomas

 

If this is what you mean

```
 To continue, we need module `i2c-dev' to be loaded.

 If it is built-in into your kernel, you can safely skip this.

```

Then it should not be a problem because sensors-detect reports

```
i2c-dev is already loaded.
```

----------

## Kruegi

Does it display additional modules after scanning the bus?

Thomas

----------

## elestedt

 *Kruegi wrote:*   

> Does it display additional modules after scanning the bus?
> 
> Thomas

 

```
 Sorry, no chips were detected.

 Either your sensors are not supported, or they are

 connected to an I2C bus adapter that we do not support.

 See doc/FAQ, doc/lm_sensors-FAQ.html, or

 http://www2.lm-sensors.nu/~lm78/cvs/lm_sensors2/doc/lm_sensors-FAQ.html

 (FAQ #4.24.3) for further information.

 If you find out what chips are on your board, see

 http://secure.netroedge.com/~lm78/newdrivers.html for driver status.

```

Hence my original question... is there any way to find the name of the chip I have?

----------

## Kruegi

Screwdriver and flashlight! Look for a small IC. In most cases it is located near the AGP slot. If you found such an IC and you see Winbond on it it may be the right one.

Or ask the mainboard manifacturer.

Thomas

----------

## elestedt

 *Kruegi wrote:*   

> Screwdriver and flashlight! Look for a small IC. In most cases it is located near the AGP slot. If you found such an IC and you see Winbond on it it may be the right one.
> 
> Or ask the mainboard manifacturer.
> 
> Thomas

 

And if I have a laptop? I'm not particurarly happy about the idea of opening it...

----------

## elestedt

*bump*

I still want to get my I2C working.

How can I find out (without opening my laptop) which chip I have?

Thanks in advance.

----------

## AdShea

Try building your kernel with every I2C chipset as a module, then run sensors-detect.  This worked for me.

----------

## dgaffuri

Which kind of laptop? Some hide the SMBus chip from BIOS. Try with lspci

----------

## elestedt

 *AdShea wrote:*   

> Try building your kernel with every I2C chipset as a module, then run sensors-detect.  This worked for me.

 

They are. Doesn't work anyway...

Thinking about trying the latest rc of gentoo-sources-2.6.12...

----------

## elestedt

 *dgaffuri wrote:*   

> Which kind of laptop? Some hide the SMBus chip from BIOS. Try with lspci

 

I have a HP nw8240 (the model is one month old)... 

What I can tell lspci does not reveal anything:

```
0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)

0000:00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03)

0000:00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)

0000:00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 03)

0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)

0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)

0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)

0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)

0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)

0000:00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)

0000:00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03)

0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)

0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)

0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE)

0000:02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)

0000:02:06.0 CardBus bridge: Texas Instruments Texas Instruments PCIxx21/x515 Cardbus Controller

0000:02:06.2 FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller

0000:02:06.3 Unknown mass storage controller: Texas Instruments Texas Instruments PCIxx21 Integrated FlashMedia Controller

0000:02:06.4 Class 0805: Texas Instruments Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) 

0000:02:06.5 Communication controller: Texas Instruments Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Smart Card Controlle

0000:10:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express (rev 11)

```

----------

## dgaffuri

 *elestedt wrote:*   

> I have a HP nw8240 (the model is one month old)... 
> 
> What I can tell lspci does not reveal anything:
> 
> ```
> ...

 

Mine is a Toshiba Tecra M2, with an 855PM chip. It hides the SMBus at 1f.3. I had to build a kernel patch to enable it. In case look at drivers/pci/quirks.c, something like asus_hides_smbus.

----------

## dgaffuri

Now I've booted into Gentoo and can be more specific. Our chipsets are different, but I think this could work for you too. First of all run

```
# lspci -n

0000:00:00.0 Class 0600: 8086:3340 (rev 21)

0000:00:01.0 Class 0604: 8086:3341 (rev 21)

0000:00:1d.0 Class 0c03: 8086:24c2 (rev 03)

0000:00:1d.1 Class 0c03: 8086:24c4 (rev 03)

0000:00:1d.2 Class 0c03: 8086:24c7 (rev 03)

0000:00:1d.7 Class 0c03: 8086:24cd (rev 03)

0000:00:1e.0 Class 0604: 8086:2448 (rev 83)

0000:00:1f.0 Class 0601: 8086:24cc (rev 03)

0000:00:1f.1 Class 0101: 8086:24ca (rev 03)

0000:00:1f.3 Class 0c05: 8086:24c3 (rev 03)

0000:00:1f.5 Class 0401: 8086:24c5 (rev 03)

0000:00:1f.6 Class 0703: 8086:24c6 (rev 03)

0000:01:00.0 Class 0300: 10de:0328 (rev a1)

0000:02:05.0 Class 0280: 8086:4220 (rev 05)

0000:02:07.0 Class 0c00: 104c:8023

0000:02:09.0 Class 0200: 8086:1016 (rev 03)

0000:02:0b.0 Class 0607: 1179:0617 (rev 32)

0000:02:0b.1 Class 0607: 1179:0617 (rev 32)

0000:02:0d.0 Class 0880: 1179:0805 (rev 03)
```

Note that in my case you see the unhidden SMBus chip

```
0000:00:1f.3 Class 0c05: 8086:24c3 (rev 03)
```

With plain lspci it's

```
0000:00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)
```

The first line is your host bridge (Intel Corporation Mobile 915GM/PM/GMS/910GML).  Look at device ID (3340 in my configuration). Grep this in

```
./include/linux/pci_ids.h:#define PCI_DEVICE_ID_INTEL_82855PM_HB        0x3340
```

I think you should find

```
#define PCI_DEVICE_ID_INTEL_82915GM_HB  0x2590
```

Now run

```
# lspci -nvx -d 8086:3340

0000:00:00.0 Class 0600: 8086:3340 (rev 21)

        Subsystem: 1179:0001

        Flags: bus master, fast devsel, latency 0

        Memory at e0000000 (32-bit, prefetchable)

        Capabilities: [e4] #09 [4104]

        Capabilities: [a0] AGP version 2.0

00: 86 80 40 33 06 00 90 20 21 00 00 06 00 00 00 00

10: 08 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 00

20: 00 00 00 00 00 00 00 00 00 00 00 00 79 11 01 00

30: 00 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00
```

substituting 3340 in the command with your device ID. Look at the last four numbers in the 20 line: these are subvendor (1179) and subdevice id (0001). Look for subvendor id symbolic name in /include/linux/pci_ids.h. For me is:

```
#define PCI_VENDOR_ID_TOSHIBA           0x1179
```

I think yours should be

```
#define PCI_VENDOR_ID_HP                0x103c
```

Now patch the drivers/pci/quirks.c (this is my patch against vanilla 2.6.12, look at the source code to get the picture,there's and HP if branch just above the Toshiba one).

```

--- linux-2.6.12//drivers/pci/quirks.c.orig     2005-06-17 21:48:29.000000000 +0200

+++ linux-2.6.12//drivers/pci/quirks.c  2005-06-18 15:03:49.000000000 +0200

@@ -819,6 +819,11 @@ static void __init asus_hides_smbus_host

                        case 0x0001: /* Toshiba Satellite A40 */

                                asus_hides_smbus = 1;

                        }

+               if (dev->device ==  PCI_DEVICE_ID_INTEL_82855PM_HB)

+                       switch(dev->subsystem_device) {

+                       case 0x0001: /* Toshiba Tecra M2 */

+                               asus_hides_smbus = 1;

+                       }

        } else if (unlikely(dev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG)) {

                if (dev->device ==  PCI_DEVICE_ID_INTEL_82855PM_HB)

                        switch(dev->subsystem_device) {

```

The asus_hide_smbus variable name is because first vendor found to hide the SMBus in BIOS was ASUS. If your patch works you may submit it to the kernel mailing list to be included in some future release.

Hope this may be helpful.

----------

## elestedt

dgaffuri:

Everything was as you said - but I can't get a list of devices from my bios... don't know how...

Got any ideas?

----------

## elestedt

Well - I finally managed to do the mod.

But it still doesn't work  :Sad: 

I can now tell exactly which SMBus chip it is... found it burried in one of the manuals... but apparantly that information does not help :/

----------

## dgaffuri

 *Quote:*   

> I can now tell exactly which SMBus chip it is... found it burried in one of the manuals... but apparantly that information does not help

 

Which device? And where is it connected?

Did you patch your kernel? Does lspci show an SMBus device at 0000:00:1f.3?

----------

## elestedt

 *dgaffuri wrote:*   

> I can now tell exactly which SMBus chip it is... found it burried in one of the manuals... but apparantly that information does not help

 

Which device? And where is it connected?

I found it in the Support Manual available here:

http://h200007.www2.hp.com/bc/docs/support/SupportManual/c00312743/c00312743.pdf on page 169.

```
Intel 82801DB/DBM SMBus Controller24C3
```

loatd on IRQ5

 *dgaffuri wrote:*   

> Did you patch your kernel? 

 

Yes

 *dgaffuri wrote:*   

> Does lspci show an SMBus device at 0000:00:1f.3?

 

No - it doesn't show at all.

I'm not 100% sure that I did everything right - but there was nothing but a asus_hides_smbus...

I have not been able to get the bios to tell meanything - like you said you had?

----------

## dgaffuri

 *elestedt wrote:*   

>  *dgaffuri wrote:*   I can now tell exactly which SMBus chip it is... found it burried in one of the manuals... but apparantly that information does not help 
> 
> Which device? And where is it connected?
> 
> I found it in the Support Manual available here:
> ...

 

Ok, it's the same one. It's an ADM1032, the lm_sensors module is lm90.

 *elestedt wrote:*   

>  *dgaffuri wrote:*   Did you patch your kernel?  
> 
> Yes
> 
>  *dgaffuri wrote:*   Does lspci show an SMBus device at 0000:00:1f.3? 
> ...

 

I din't mean that, I've no option at all in BIOS. Probably you (or me:D) have missed something. If you want post all the lspci stuff and the kernel patch, so that we can double check it.

If you have Windows you can try this

http://www.almico.com/speedfan.php

to discover the chip and check that it's working.

----------

## elestedt

I probably will try speedfan - unless HP has a tool which does the same thing...

I don't know how to do a pach - but here is the diff of the two files:

```

804a805,809

>               if (dev->device ==  PCI_DEVICE_ID_INTEL_82915GM_HB)

>                       switch(dev->subsystem_device) {

>                       case 0x0934: /* HP Compaq nw8240 */

>                               asus_hides_smbus = 1;

>                       }

```

```

# lspci -n

0000:00:00.0 Class 0600: 8086:2590 (rev 03)

0000:00:01.0 Class 0604: 8086:2591 (rev 03)

0000:00:1c.0 Class 0604: 8086:2660 (rev 03)

0000:00:1c.1 Class 0604: 8086:2662 (rev 03)

0000:00:1d.0 Class 0c03: 8086:2658 (rev 03)

0000:00:1d.1 Class 0c03: 8086:2659 (rev 03)

0000:00:1d.2 Class 0c03: 8086:265a (rev 03)

0000:00:1d.7 Class 0c03: 8086:265c (rev 03)

0000:00:1e.0 Class 0604: 8086:2448 (rev d3)

0000:00:1e.2 Class 0401: 8086:266e (rev 03)

0000:00:1e.3 Class 0703: 8086:266d (rev 03)

0000:00:1f.0 Class 0601: 8086:2641 (rev 03)

0000:00:1f.1 Class 0101: 8086:266f (rev 03)

0000:01:00.0 Class 0300: 1002:5653

0000:02:04.0 Class 0280: 8086:4220 (rev 05)

0000:02:06.0 Class 0607: 104c:8031

0000:02:06.2 Class 0c00: 104c:8032

0000:02:06.3 Class 0180: 104c:8033

0000:02:06.4 Class 0805: 104c:8034

0000:02:06.5 Class 0780: 104c:8035

0000:10:00.0 Class 0200: 14e4:167d (rev 11)

```

```
# lspci

0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)

0000:00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03)

0000:00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)

0000:00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 03)

0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)

0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)

0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)

0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)

0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)

0000:00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)

0000:00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03)

0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)

0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)

0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE)

0000:02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)

0000:02:06.0 CardBus bridge: Texas Instruments Texas Instruments PCIxx21/x515 Cardbus Controller

0000:02:06.2 FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller

0000:02:06.3 Unknown mass storage controller: Texas Instruments Texas Instruments PCIxx21 Integrated FlashMedia Controller

0000:02:06.4 Class 0805: Texas Instruments Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) 

0000:02:06.5 Communication controller: Texas Instruments Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Smart Card Controlle

0000:10:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express (rev 11)

```

And finally

```
# lspci -nvx -d 8086:2590

0000:00:00.0 Class 0600: 8086:2590 (rev 03)

        Subsystem: 103c:0934

        Flags: bus master, fast devsel, latency 0

        Capabilities: [e0] #09 [2109]

00: 86 80 90 25 06 00 90 20 03 00 00 06 00 00 00 00

10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 34 09

30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00

```

----------

## dgaffuri

Sorry, didn't notice this. Immediately below the function you've chaged you've to add a line for your chipset (mine was already listed)

```
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82915GM_HB,   asus_hides_smbus_hostbridge );
```

to make the function even called.

----------

## elestedt

 *dgaffuri wrote:*   

> Sorry, didn't notice this. Immediately below the function you've chaged you've to add a line for your chipset (mine was already listed)
> 
> ```
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82915GM_HB,   asus_hides_smbus_hostbridge );
> ```
> ...

 

Should have noticed that myself...

Made no difference though  :Sad: 

----------

## elestedt

*bump*

Still no luck getting them to work.

Anyone have any ideas?

----------

## elestedt

*bump*

Well - did all of the above. And I tried putting the unhiding of my chipset outside of the vendor checking - no luck.

Anyone have any ideas now?

----------

## elestedt

*bump*

New info...

What do I do if SpeedFan for Windows does not find the device?

According to the manuals it is there...

----------

## dgaffuri

Really don't know at this point. Sorry.

----------

## elestedt

I'm starting to think that my hardware is broken...

----------

