Ticket #2250 (closed defect: fixed)

Opened 7 years ago

Last modified 7 years ago

Intel 82801BA/BAM SMBus and thmc50 not fully working

Reported by: ticket Owned by: khali
Priority: major Milestone: 2.10.5
Component: sensors Version: 2.10.4
Keywords: adm1022 Cc: raiden24@…

Description

I always get the following result after running sensors-detect and loading the modules it proposes. While running sensors-detect I saw it detected some unknown chip but I don't know if its related. I tried almost everything (new kernel, recompile, patch thmc50, unhide SMBus, ...). I'll add additional information. If you need debug or other information just let me know. I'll be happy to test and seeing it getting solved, while I'd love to monitor my little server. Btw, It's a Compaq D500.

Isengard:~# sensors
adm1022-i2c-0-2e
 ERROR: Can't get adapter or algorithm?!?
temp: 24.00 (temp)
ERROR: Can't get feature `temp_hyst' data!
  temp_over: 127.00 (temp_over)
remote_temp: 32.00 (remote_temp)
ERROR: Can't get feature `remote_temp_hyst' data!
  remote_temp_over: 59.00 (remote_temp_over)
ERROR: Can't get feature `analog output' data!
ERROR: Can't get feature `interrupts' data!
ERROR: Can't get feature `interrupt mask' data!
ERROR: Can't get feature `die_code' data!

SENSORS-DETECT
==============
Isengard:~# sensors-detect
# sensors-detect revision 4171 (2006-09-24 03:37:01 -0700)

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.

We can start with probing for (PCI) I2C or SMBus adapters.
Do you want to probe now? (YES/no): 
Probing for PCI bus adapters...
Use driver `i2c-i801' for device 0000:00:1f.3: Intel 82801BA ICH2

We will now try to load each adapter module in turn.
Module `i2c-i801' already loaded.
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.
Do you want to load `i2c-dev' now? (YES/no): 
Module loaded successfully.

We are now going to do the I2C/SMBus adapter probings. Some chips may
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.

Next adapter: SMBus I801 adapter at fc00
Do you want to scan it? (YES/no/selectively): 
Client found at address 0x2e
Handled by driver `THMC50 sensor chip driver' (already loaded), chip type `adm1022'
    (note: this is probably NOT a sensor chip!)
Client found at address 0x50
Handled by driver `eeprom' (already loaded), chip type `eeprom'
Client found at address 0x51
Handled by driver `eeprom' (already loaded), chip type `eeprom'
Client found at address 0x52
Handled by driver `eeprom' (already loaded), chip type `eeprom'
Client found at address 0x69

Some chips are also accessible through the ISA I/O ports. We have to
write to arbitrary I/O ports to probe them. This is usually safe though.
Yes, you do have ISA I/O ports even if you do not have any ISA slots!
Do you want to scan the ISA I/O ports? (YES/no): 
Probing for `National Semiconductor LM78' at 0x290...       No
Probing for `National Semiconductor LM78-J' at 0x290...     No
Probing for `National Semiconductor LM79' at 0x290...       No
Probing for `Winbond W83781D' at 0x290...                   No
Probing for `Winbond W83782D' at 0x290...                   No
Probing for `Winbond W83627HF' at 0x290...                  No
Probing for `Silicon Integrated Systems SIS5595'...         No
Probing for `VIA VT82C686 Integrated Sensors'...            No
Probing for `VIA VT8231 Integrated Sensors'...              No
Probing for `AMD K8 thermal sensors'...                     No
Probing for `IPMI BMC KCS' at 0xca0...                      No
Probing for `IPMI BMC SMIC' at 0xca8...                     No

Some Super I/O chips may also contain sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): 
Probing for Super-I/O at 0x2e/0x2f
Trying family `ITE'...                                      Yes
Found unknown chip with ID 0x6d00
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     Yes
Found unknown chip with ID 0x6d00
Trying family `VIA/Winbond/Fintek'...                       No
Probing for Super-I/O at 0x4e/0x4f
Trying family `ITE'...                                      No
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Fintek'...                       No

Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `eeprom' (should be inserted):
  Detects correctly:
  * Bus `SMBus I801 adapter at fc00'
    Busdriver `i2c-i801', I2C address 0x50
    Chip `eeprom' (confidence: 6)
  * Bus `SMBus I801 adapter at fc00'
    Busdriver `i2c-i801', I2C address 0x51
    Chip `eeprom' (confidence: 6)
  * Bus `SMBus I801 adapter at fc00'
    Busdriver `i2c-i801', I2C address 0x52
    Chip `eeprom' (confidence: 6)

  EEPROMs are *NOT* sensors! They are data storage chips commonly
  found on memory modules (SPD), in monitors (EDID), or in some
  laptops, for example.

I will now generate the commands needed to load the required modules.
Just press ENTER to continue: 

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

#----cut here----
# I2C adapter drivers
i2c-i801
# Chip drivers
eeprom
#----cut here----


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

SYSTEM-INFO
===========
Isengard:~# lspci 
00:00.0 Host bridge: Intel Corporation 82845 845 (Brookdale) Chipset Host Bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 82845 845 (Brookdale) Chipset AGP Bridge (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 12)
00:1f.0 ISA bridge: Intel Corporation 82801BA ISA Bridge (LPC) (rev 12)
00:1f.1 IDE interface: Intel Corporation 82801BA IDE U100 (rev 12)
00:1f.2 USB Controller: Intel Corporation 82801BA/BAM USB (Hub #1) (rev 12)
00:1f.3 SMBus: Intel Corporation 82801BA/BAM SMBus (rev 12)
00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB (Hub #2) (rev 12)
00:1f.5 Multimedia audio controller: Intel Corporation 82801BA/BAM AC'97 Audio (rev 12)
01:00.0 VGA compatible controller: nVidia Corporation NV6 [Vanta/Vanta LT] (rev 15)
02:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
02:08.0 Ethernet controller: Intel Corporation 82801BA/BAM/CA/CAM Ethernet Controller (rev 03)
Isengard:~# uname -a
Linux Isengard 2.6.23-rc5 #1 Sat Sep 1 14:31:36 CEST 2007 i686 GNU/Linux
Isengard:~# lsmod | grep i2c
i2c_dev                 7172  0 
i2c_i801                8848  0 
i2c_core               23440  4 i2c_dev,eeprom,thmc50,i2c_i801
Isengard:~# lsmod | grep thmc
thmc50                 11288  0 
i2c_core               23440  4 i2c_dev,eeprom,thmc50,i2c_i801
Isengard:~# lspci -v -n
00:00.0 0600: 8086:1a30 (rev 03)
        Flags: bus master, fast devsel, latency 0
        Memory at f8000000 (32-bit, prefetchable) [size=64M]
        Capabilities: [e4] Vendor Specific Information
        Capabilities: [a0] AGP version 2.0

00:01.0 0604: 8086:1a31 (rev 03) (prog-if 00 [Normal decode])
        Flags: bus master, 66MHz, fast devsel, latency 64
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
        Memory behind bridge: fd000000-fe1fffff
        Prefetchable memory behind bridge: f5e00000-f7ffffff

00:1e.0 0604: 8086:244e (rev 12) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=64
        I/O behind bridge: 00001000-00001fff
        Memory behind bridge: fc200000-fc4fffff
        Prefetchable memory behind bridge: 40000000-400fffff

00:1f.0 0601: 8086:2440 (rev 12)
        Flags: bus master, medium devsel, latency 0

00:1f.1 0101: 8086:244b (rev 12) (prog-if 80 [Master])
        Subsystem: 0e11:2411
        Flags: bus master, medium devsel, latency 0
        [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8]
        [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1]
        [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8]
        [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1]
        I/O ports at 2480 [size=16]

00:1f.2 0c03: 8086:2442 (rev 12) (prog-if 00 [UHCI])
        Subsystem: 0e11:2411
        Flags: bus master, medium devsel, latency 0, IRQ 16
        I/O ports at 2440 [size=32]

00:1f.3 0c05: 8086:2443 (rev 12)
        Subsystem: 0e11:2411
        Flags: medium devsel, IRQ 20
        I/O ports at fc00 [size=16]

00:1f.4 0c03: 8086:2444 (rev 12) (prog-if 00 [UHCI])
        Subsystem: 0e11:2411
        Flags: bus master, medium devsel, latency 0, IRQ 17
        I/O ports at 2460 [size=32]

00:1f.5 0401: 8086:2445 (rev 12)
        Subsystem: 0e11:0088
        Flags: bus master, medium devsel, latency 0, IRQ 20
        I/O ports at 2000 [size=256]
        I/O ports at 2400 [size=64]

01:00.0 0300: 10de:002c (rev 15) (prog-if 00 [VGA])
        Subsystem: 10de:0072
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 11
        Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
        Memory at f6000000 (32-bit, prefetchable) [size=32M]
        [virtual] Expansion ROM at f5e00000 [disabled] [size=64K]
        Capabilities: [60] Power Management version 1
        Capabilities: [44] AGP version 2.0

02:04.0 0200: 10ec:8139 (rev 10)
        Subsystem: 10ec:8139
        Flags: bus master, medium devsel, latency 66, IRQ 18
        I/O ports at 1000 [size=256]
        Memory at fc401000 (32-bit, non-prefetchable) [size=256]
        [virtual] Expansion ROM at 40000000 [disabled] [size=64K]
        Capabilities: [50] Power Management version 2

02:08.0 0200: 8086:2449 (rev 03)
        Subsystem: 0e11:0012
        Flags: bus master, medium devsel, latency 66, IRQ 19
        Memory at fc400000 (32-bit, non-prefetchable) [size=4K]
        I/O ports at 1400 [size=64]
        Capabilities: [dc] Power Management version 2

PACKAGE INFO
============
Isengard:~# apt-cache policy lm-sensors
lm-sensors:
  Installed: 1:2.10.1-3
  Candidate: 1:2.10.1-3
  Version table:
 *** 1:2.10.1-3 0
        500 http://ftp.debian.skynet.be etch/main Packages
        100 /var/lib/dpkg/status
Isengard:~# apt-cache policy libsensors3
libsensors3:
  Installed: 1:2.10.1-3
  Candidate: 1:2.10.1-3
  Version table:
 *** 1:2.10.1-3 0
        500 http://ftp.debian.skynet.be etch/main Packages
        100 /var/lib/dpkg/status

Change History

  Changed 7 years ago by khali

  • owner changed from somebody to khali
  • status changed from new to assigned
  • version changed from 2.10.3 to 2.10.1
  • component changed from sensors to libsensors
  • milestone set to 2.10.5

Your report shows that are using lm-sensors 2.10.1, not 2.10.3 as you set -> fixing version.

Support for the Linux 2.6 ADM1022/THMC50 driver was only fixed recently. Please try the latest SVN snapshot:

 http://dl.lm-sensors.org/lm-sensors/snapshots/lm-sensors-r4741-20070902.tar.bz2

It installs to /usr/local with "make user" and "make user_install". Make sure that "sensors" links with the new library (check with "sensors -v".)

in reply to: ↑ description   Changed 7 years ago by ticket

Dear,

Thanks for the response. I did as asked, and reran sensors-detect. It proposed this :

#----cut here----
# I2C adapter drivers
modprobe i2c-i801
# Chip drivers
modprobe thmc50
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----cut here----

So I did. This is the result :

Isengard:~/lm-sensors-r4741-20070902# sensors
adm1022-i2c-0-2e
Adapter: SMBus I801 adapter at fc00
temp: 24.00 (temp)
  temp_hyst: -128.00 (temp_hyst)
  temp_over: 127.00 (temp_over)
remote_temp: 31.00 (remote_temp)
  remote_temp_hyst: -127.00 (remote_temp_hyst)
  remote_temp_over: 59.00 (remote_temp_over)
analog output: 1.00 (analog output)
ERROR: Can't get feature `interrupts' data!
ERROR: Can't get feature `interrupt mask' data!
ERROR: Can't get feature `die_code' data!

The sensors seems properly linked :

Isengard:~/lm-sensors-r4741-20070902# sensors -v
sensors version 2.10.4 with libsensors version 2.10.4

Regards,

Philippe

  Changed 7 years ago by khali

  • version changed from 2.10.1 to 2.10.4
  • component changed from libsensors to sensors

Ah, yeah, now I remember: "sensors" still lacks dedicated support for the thmc50 driver.

  Changed 7 years ago by khali

  • keywords adm1022 added

  Changed 7 years ago by ticket

Hi, The best solution at the moment is to download and use lmsensors3 (this is development barnach and snapshots are available from lm-sensors.org). On the other hand, the updated version of sensors does work for you (the second log). You got MB temp with limits, CPU temp with limits and fan control (analog_output) The only fix to ERROR messages is not to display them (interrupt bits and die code are not important). The only problem with the old lmsensors2 is that it support thmc50 only and ADM1022 is enhanced version. If you have dual CPU server, the second temperature is not reported (as you can see). The lmsensors3 will give you all 3 temps. Kind regards, Krzysztof

Hi Krzysztof,

Sensors 3 seems to do it a bit better ! Look for the ouput :

Isengard:~/lm-sensors-3-r4783-20070906# sensors
adm1022-i2c-0-2e
Adapter: SMBus I801 adapter at fc00
temp1:       +23.0°C  (low  = -128.0°C, high = +127.0°C)
temp2:       +31.0°C  (low  = -127.0°C, high = +59.0°C)
temp3:        -1.0°C  (low  =  -1.0°C, high =  -1.0°C)

Thanks alot !

Regards,

Philippe

  Changed 7 years ago by ticket

Isengard:~/lm-sensors-3-r4783-20070906# sensors3 -v
sensors version 3.0.0-pre with libsensors version 3.0.0-pre

  Changed 7 years ago by khali

Of course lm-sensors 3 works, however it isn't production-ready and the new library is incompatible so 3rd party applications do not yet work with it. Thus I think that there would still be value in adding support for the thmc50 and adm1022 to lm-sensors 2.

  Changed 7 years ago by khali

  • status changed from assigned to closed
  • resolution set to fixed

Fixed in r4799, r4811 and r4812.

Note: See TracTickets for help on using tickets.