Ticket #2236 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

No fans sensors on 2.6.22.1 (smsc47m1) MB: K8 Triton Server ULi/ALi M1689

Reported by: tommy.public@… Owned by: khali
Priority: critical Milestone:
Component: kernel Version: 2.10.4
Keywords: smsc47m1 Cc:

Description (last modified by khali) (diff)

I got K8 Triton Server motherboard with ULi/ALi M1689 chipset after upgrading kernel to 2.6.22.1 from 2.6.21.5 I lost fans sensors smsc47m1.

On 2.6.21.5 i see:

smsc47m1-isa-0800
Adapter: ISA adapter
fan1:     2671 RPM  (min =  640 RPM, div = 8)          
fan2:      835 RPM  (min =  640 RPM, div = 8)          

smsc47m192-i2c-0-2d
Adapter: SMBus ALi 1563 Adapter @ 1400
+2.5V:     +2.58 V  (min =  +0.00 V, max =  +3.32 V)   
VCore:     +1.43 V  (min =  +0.00 V, max =  +2.99 V)   
+3.3V:     +3.30 V  (min =  +0.00 V, max =  +4.38 V)   
+5V:       +5.03 V  (min =  +0.00 V, max =  +6.64 V)   
+12V:     +11.94 V  (min =  +0.00 V, max = +15.94 V)   
VCC:       +3.47 V  (min =  +0.00 V, max =  +4.38 V)   
+1.5V:     +1.66 V  (min =  +0.00 V, max =  +1.99 V)   
+1.8V:     +2.39 V  (min =  +1.71 V, max =  +1.89 V)   ALARM
Chip Temp: +39.0°C  (low  =  -128°C, high =  +127°C)  
CPU Temp:  +47.0°C  (low  =  -128°C, high =  +127°C)  
Sys Temp:  +35.0°C  (low  =   +25°C, high =   +40°C)  
vid:      +1.400 V  (VRM Version 2.4)

On 2.6.22.1:

smsc47m1-isa-0800
Adapter: ISA adapter
fan1:     2671 RPM  (min =  640 RPM, div = 8)          
fan2:      835 RPM  (min =  640 RPM, div = 8)          

smsc47m192-i2c-0-2d
Adapter: SMBus ALi 1563 Adapter @ 1400
+2.5V:     +2.58 V  (min =  +0.00 V, max =  +3.32 V)   
VCore:     +1.43 V  (min =  +0.00 V, max =  +2.99 V)   
+3.3V:     +3.30 V  (min =  +0.00 V, max =  +4.38 V)   
+5V:       +5.03 V  (min =  +0.00 V, max =  +6.64 V)   
+12V:     +11.94 V  (min =  +0.00 V, max = +15.94 V)   
VCC:       +3.47 V  (min =  +0.00 V, max =  +4.38 V)   
+1.5V:     +1.66 V  (min =  +0.00 V, max =  +1.99 V)   
+1.8V:     +2.39 V  (min =  +1.71 V, max =  +1.89 V)   ALARM
Chip Temp: +39.0°C  (low  =  -128°C, high =  +127°C)  
CPU Temp:  +47.0°C  (low  =  -128°C, high =  +127°C)  
Sys Temp:  +35.0°C  (low  =   +25°C, high =   +40°C)  
vid:      +1.400 V  (VRM Version 2.4)

I have latest lm_sensors 2.10.4

sensors-detect result:

# sensors-detect revision 4609 (2007-07-14 09:28:39 -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-ali15x3' for device 0000:00:03.1: Acer Labs 1533/1543
Use driver `i2c-ali1535' for device 0000:00:03.1: Acer Labs 1535
Use driver `i2c-ali1563' for device 0000:00:03.0: Acer Labs 1563

We will now try to load each adapter module in turn.
Load `i2c-ali15x3' (say NO if built into your kernel)? (YES/no):
Module loaded successfully.
Load `i2c-ali1535' (say NO if built into your kernel)? (YES/no):
Module loaded successfully.
Module `i2c-ali1563' 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 ALi 1563 Adapter @ 1400 (i2c-0)
Do you want to scan it? (YES/no/selectively):
Client found at address 0x2d
Handled by driver `smsc47m192' (already loaded), chip type `smsc47m192'
Client found at address 0x51
Handled by driver `eeprom' (already loaded), chip type `eeprom'
    (note: this is probably NOT a sensor chip!)
Client found at address 0x52
Handled by driver `eeprom' (already loaded), chip type `eeprom'
    (note: this is probably NOT a sensor chip!)

Next adapter: bt878 #0 [sw] (i2c-1)
Do you want to scan it? (YES/no/selectively): 
Next adapter: NVIDIA i2c adapter  (i2c-2)
Do you want to scan it? (YES/no/selectively):
Client found at address 0x49
Probing for `National Semiconductor LM75'...                No
Probing for `Dallas Semiconductor DS75'...                  No
Probing for `National Semiconductor LM77'...                No
Probing for `Dallas Semiconductor DS1621'...                No
Probing for `National Semiconductor LM92'...                No
Probing for `National Semiconductor LM76'...                No
Probing for `Maxim MAX6633/MAX6634/MAX6635'...              No
Client found at address 0x50
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Probing for `EDID EEPROM'...                                Yes
    (confidence 8, not a hardware monitoring chip)
Client found at address 0x51
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Probing for `EDID EEPROM'...                                Yes
    (confidence 8, not a hardware monitoring chip)
Client found at address 0x52
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Probing for `EDID EEPROM'...                                Yes
    (confidence 8, not a hardware monitoring chip)
Client found at address 0x53
Probing for `Analog Devices ADM1033'...                     No
Probing for `Analog Devices ADM1034'...                     No
Probing for `SPD EEPROM'...                                 No
Probing for `EDID EEPROM'...                                Yes
    (confidence 8, not a hardware monitoring chip)

Next adapter: NVIDIA i2c adapter  (i2c-3)
Do you want to scan it? (YES/no/selectively): 
Next adapter: NVIDIA i2c adapter  (i2c-4)
Do you want to scan it? (YES/no/selectively): 
Next adapter: ISA main adapter (i2c-9191)
Do you want to scan it? (YES/no/selectively):
Can't open /dev/i2c-9191

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 `Silicon Integrated Systems SIS5595'...         No
Probing for `VIA VT82C686 Integrated Sensors'...            No
Probing for `VIA VT8231 Integrated 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 `National Semiconductor'...                   No
Trying family `SMSC'...                                     Yes
Found `SMSC LPC47M15x/192/997 Super IO Fan Sensors'         Success!
    (address 0x800, driver `smsc47m1')
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor'...                   No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Fintek'...                       No
Trying family `ITE'...                                      No

Some CPUs or memory controllers may also contain embedded sensors.
Do you want to scan for them? (YES/no):
AMD K8 thermal sensors...                                   Success!
    (driver `k8temp')
Intel Core family thermal sensor...                         No
Intel AMB FB-DIMM thermal sensor...                         No

Now follows a summary of the probes I have just done.
Just press ENTER to continue: 
Driver `smsc47m192' (should be inserted):
  Detects correctly:
  * Bus `SMBus ALi 1563 Adapter @ 1400'
    Busdriver `i2c-ali1563', I2C address 0x2d
    Chip `smsc47m192' (confidence: 6)

Driver `smsc47m1' (should be inserted):
  Detects correctly:
  * ISA bus, address 0x800
    Chip `SMSC LPC47M15x/192/997 Super IO Fan Sensors' (confidence: 9)

Driver `k8temp' (should be inserted):
  Detects correctly:
  * Chip `AMD K8 thermal sensors' (confidence: 9)

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/modprobe.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-ali1563
# Chip drivers
modprobe smsc47m192
modprobe smsc47m1
modprobe k8temp
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----cut here----

If you have some drivers 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 the needed
modules are loaded.

Do you want to overwrite /etc/sysconfig/lm_sensors? (YES/no):
Copy prog/init/lm_sensors.init to /etc/init.d/lm_sensors
for initialization at boot time.

lsmod:

Module                  Size  Used by
i2c_dev                 5732  0 
i2c_ali1535             5412  0 
i2c_ali15x3             5988  0 
nvidia               6828148  24 
snd_seq_oss            24896  0 
snd_seq_midi_event      4288  1 snd_seq_oss
snd_seq                36144  4 snd_seq_oss,snd_seq_midi_event
snd_pcm_oss            36256  0 
snd_mixer_oss          13504  1 snd_pcm_oss
ipv6                  238672  144 
ipt_iprange             1184  32 
ipt_REDIRECT            1344  1 
xt_tcpudp               2432  51 
iptable_nat             5444  1 
nf_conntrack_ipv4      12716  1 iptable_nat
iptable_filter          1856  1 
ip_tables               9608  2 iptable_nat,iptable_filter
usb_storage            62208  0 
fuse                   36756  0 
dm_crypt               10984  0 
dm_mod                 42304  1 dm_crypt
parport_pc             31460  0 
parport                25416  1 parport_pc
video1394              15988  0 
ohci1394               30420  1 video1394
raw1394                26260  0 
ieee1394               64216  3 video1394,ohci1394,raw1394
nfnetlink_queue         8800  0 
xt_state                1568  0 
xt_NFQUEUE              1248  0 
x_tables                8772  7 ipt_iprange,ipt_REDIRECT,xt_tcpudp,iptable_nat,ip_tables,xt_state,xt_NFQUEUE
nf_nat_ftp              2208  0 
nf_conntrack_ftp        7488  1 nf_nat_ftp
nf_nat_irc              1760  0 
nf_nat                 12844  4 ipt_REDIRECT,iptable_nat,nf_nat_ftp,nf_nat_irc
nf_conntrack_irc        4664  1 nf_nat_irc
nf_conntrack           38648  8 iptable_nat,nf_conntrack_ipv4,xt_state,nf_nat_ftp,nf_conntrack_ftp,nf_nat_irc,nf_nat,nf_conntrack_irc
nfnetlink               3224  4 nf_conntrack_ipv4,nfnetlink_queue,nf_nat,nf_conntrack
tuner                  50632  0 
tvaudio                17596  0 
bttv                  152372  0 
video_buf              15812  1 bttv
ir_common              23748  1 bttv
compat_ioctl32           768  1 bttv
i2c_algo_bit            4900  1 bttv
btcx_risc               3080  1 bttv
tveeprom               12880  1 bttv
videodev               24608  1 bttv
v4l2_common            11872  4 tuner,tvaudio,bttv,videodev
v4l1_compat            13284  2 bttv,videodev
snd_intel8x0           25116  0 
snd_emu10k1           113888  4 
snd_rawmidi            16544  1 snd_emu10k1
snd_ac97_codec         77024  2 snd_intel8x0,snd_emu10k1
ac97_bus                1376  1 snd_ac97_codec
snd_pcm                56840  5 snd_pcm_oss,snd_intel8x0,snd_emu10k1,snd_ac97_codec
snd_seq_device          5196  4 snd_seq_oss,snd_seq,snd_emu10k1,snd_rawmidi
snd_timer              16932  3 snd_seq,snd_emu10k1,snd_pcm
snd_page_alloc          6760  3 snd_intel8x0,snd_emu10k1,snd_pcm
snd_util_mem            2176  1 snd_emu10k1
snd_hwdep               6596  1 snd_emu10k1
snd                    34052  19 snd_seq_oss,snd_seq,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_emu10k1,snd_rawmidi,snd_ac97_codec,snd_pcm,snd_seq_device,snd_timer,snd_hwdep
soundcore               4480  1 snd
smsc47m192              9168  3 
hwmon_vid               2240  1 smsc47m192
smsc47m1                7108  0 
hwmon                   1844  2 smsc47m192,smsc47m1
i2c_isa                 2592  0 
eeprom                  4752  0 
i2c_ali1563             5988  0 
8139too                19776  0 

Attachments

2.6.21.5-grsec.txt Download (0.8 KB) - added by ticket 3 years ago.
sensors result on 2.6.21.5
2.6.22.1-grsec.txt Download (0.7 KB) - added by ticket 3 years ago.
sensors result on 2.6.22.1
hwmon-smsc47m1-missing-name-attribute.patch Download (0.9 KB) - added by khali 3 years ago.
Restore the smsc47m1 name attribute

Change History

  Changed 3 years ago by ticket

On 2.6.22.1 I see only: smsc47m192-i2c-0-2d Adapter: SMBus ALi 1563 Adapter @ 1400 +2.5V: +2.58 V (min = +0.00 V, max = +3.32 V) VCore: +1.43 V (min = +0.00 V, max = +2.99 V) +3.3V: +3.30 V (min = +0.00 V, max = +4.38 V) +5V: +5.03 V (min = +0.00 V, max = +6.64 V) +12V: +11.94 V (min = +0.00 V, max = +15.94 V) VCC: +3.47 V (min = +0.00 V, max = +4.38 V) +1.5V: +1.66 V (min = +0.00 V, max = +1.99 V) +1.8V: +2.39 V (min = +1.71 V, max = +1.89 V) ALARM Chip Temp: +38.0°C (low = -128°C, high = +127°C) CPU Temp: +48.0°C (low = -128°C, high = +127°C) Sys Temp: +34.0°C (low = +25°C, high = +40°C) vid: +1.400 V (VRM Version 2.4) My mistake paste same result two times.

Changed 3 years ago by ticket

sensors result on 2.6.21.5

Changed 3 years ago by ticket

sensors result on 2.6.22.1

  Changed 3 years ago by khali

  • status changed from new to assigned
  • description modified (diff)
  • reporter changed from ticket to tommy.public@…
  • cc tommy.public@… removed
  • component changed from fancontrol to kernel
  • priority changed from major to critical
  • owner changed from somebody to khali
  • keywords uli m1689 k8 2.6.22.1 removed

  Changed 3 years ago by khali

  • version changed from SVN to 2.10.4

follow-up: ↓ 5   Changed 3 years ago by khali

First of all, your report shows a bug in sensors-detect: the i2c-isa pseudo-bus (which BTW you no longer need) should not be probed as a regular i2c bus. This is now fixed in SVN.

There are 5 patches affecting the smsc47m1 driver between 2.6.21 and 2.6.22. I guess that one of them is the cause of your problem.

What does "sensors -v" return? I'd like to make sure that you're not accidentally linking with an older version of libsensors not supporting platform drivers.

Do you see anything in the logs when the smsc47m1 driver is loaded?

What does "grep . /sys/class/hwmon/*/device/name" return?

in reply to: ↑ 4   Changed 3 years ago by ticket

Replying to khali:

First of all, your report shows a bug in sensors-detect: the i2c-isa pseudo-bus (which BTW you no longer need) should not be probed as a regular i2c bus. This is now fixed in SVN.

Ok, now I got SVN 2007-08-11

What does "sensors -v" return? I'd like to make sure that you're not accidentally linking with an older version of libsensors not supporting platform drivers.

sensors version 2.10.4 with libsensors version 2.10.4

Do you see anything in the logs when the smsc47m1 driver is loaded?

Aug 11 16:27:05 n4 kernel: smsc47m1: Found SMSC LPC47M15x/LPC47M192/LPC47M997

What does "grep . /sys/class/hwmon/*/device/name" return?

Only this but I have hwmon0 and hwmon1

smsc47m192

In /sys/class/hwmon/hwmon0/device I see

-r--r--r-- 1 root root 4096 2007-08-11 16:28 alarms
lrwxrwxrwx 1 root root    0 2007-08-11 16:28 bus -> ../../../bus/platform
lrwxrwxrwx 1 root root    0 2007-08-11 16:28 driver -> ../../../bus/platform/drivers/smsc47m1
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 fan1_div
-r--r--r-- 1 root root 4096 2007-08-11 16:28 fan1_input
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 fan1_min
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 fan2_div
-r--r--r-- 1 root root 4096 2007-08-11 16:28 fan2_input
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 fan2_min
lrwxrwxrwx 1 root root    0 2007-08-11 16:28 hwmon:hwmon0 -> ../../../class/hwmon/hwmon0
-r--r--r-- 1 root root 4096 2007-08-11 16:28 modalias
drwxr-xr-x 2 root root    0 2007-08-11 16:27 power
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 pwm1
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 pwm1_enable
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 pwm2
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 pwm2_enable
lrwxrwxrwx 1 root root    0 2007-08-11 16:28 subsystem -> ../../../bus/platform
-rw-r--r-- 1 root root 4096 2007-08-11 16:28 uevent

#~ cat /sys/class/hwmon/hwmon0/device/fan1_input 
2730
#~

follow-up: ↓ 7   Changed 3 years ago by khali

Ah, I see the problem now. The name attribute is missing. It was lost by accident during the conversion to a platform driver. I'll attach a patch, please give it a try and report.

Changed 3 years ago by khali

Restore the smsc47m1 name attribute

in reply to: ↑ 6   Changed 3 years ago by ticket

Replying to khali:

Ah, I see the problem now. The name attribute is missing. It was lost by accident during the conversion to a platform driver. I'll attach a patch, please give it a try and report.

Ok, now I got name file

#~ grep . /sys/class/hwmon/*/device/name
/sys/class/hwmon/hwmon0/device/name:smsc47m1
/sys/class/hwmon/hwmon1/device/name:smsc47m192
#~

But in /sys/bus/i2c/devices/ I still dont have smsc47m1

#~ grep . /sys/bus/i2c/devices/*/name
/sys/bus/i2c/devices/0-002d/name:smsc47m192
/sys/bus/i2c/devices/0-0051/name:eeprom
/sys/bus/i2c/devices/0-0052/name:eeprom
/sys/bus/i2c/devices/1-0061/name:Philips PAL_I (FI12
#~

follow-up: ↓ 9   Changed 3 years ago by khali

This is expected. The smsc47m1 is no longer an i2c driver so its device doesn't have to appear under /sys/bus/i2c/devices. You'll find it under /sys/bus/platform/devices instead.

Is "sensors" working again?

in reply to: ↑ 8 ; follow-up: ↓ 10   Changed 3 years ago by ticket

Replying to khali:

This is expected. The smsc47m1 is no longer an i2c driver so its device doesn't have to appear under /sys/bus/i2c/devices. You'll find it under /sys/bus/platform/devices instead.

Many program (like conky) are reading only form i2c...

Is "sensors" working again?

Yes it works:

#~sensors 
smsc47m1-isa-0800
Adapter: ISA adapter
fan1:     2614 RPM  (min =  640 RPM, div = 8)          
fan2:      835 RPM  (min =  640 RPM, div = 8)          

smsc47m192-i2c-0-2d
Adapter: SMBus ALi 1563 Adapter @ 1400
+2.5V:     +2.58 V  (min =  +0.00 V, max =  +3.32 V)   
VCore:     +1.43 V  (min =  +0.00 V, max =  +2.99 V)   
+3.3V:     +3.30 V  (min =  +0.00 V, max =  +4.38 V)   
+5V:       +5.03 V  (min =  +0.00 V, max =  +6.64 V)   
+12V:     +11.94 V  (min =  +0.00 V, max = +15.94 V)   
VCC:       +3.47 V  (min =  +0.00 V, max =  +4.38 V)   
+1.5V:     +1.66 V  (min =  +0.00 V, max =  +1.99 V)   
+1.8V:     +2.39 V  (min =  +1.71 V, max =  +1.89 V)   ALARM
Chip Temp: +36.0°C  (low  =  -128°C, high =  +127°C)  
CPU Temp:  +45.0°C  (low  =  -128°C, high =  +127°C)  
Sys Temp:  +31.0°C  (low  =   +25°C, high =   +40°C)  
vid:      +1.400 V  (VRM Version 2.4)
#~

in reply to: ↑ 9   Changed 3 years ago by khali

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

Great, thanks for reporting and testing, I'll push my patch upstream now.

Replying to ticket:

Many program (like conky) are reading only form i2c...

Such programs must get fixed then. The right location to look for hardware monitoring information is now /sys/class/hwmon. Many drivers have been converted from i2c-isa to platform drivers lately.

Note: See TracTickets for help on using tickets.