[i2c] SMBus collision on Asus Commando, Intel QX6700
Trevor Bowen
bowentrevor at yahoo.com
Mon May 7 19:38:54 CEST 2007
Hi Jean,
Thanks for the answers. I finally got lm_sensors working, but I'm having further issues with the new hardware, which may be more appropriately addressed on the other lm-sensors mailing list. Please see below:
> Your OS might be recent, but this looks like an old version of
> lm-sensors.
Yes, CentOS5 came with 2.10.0. I upgraded to 2.10.3-47 (atrpms.net), and that seemed to help. Plus, I also began using NVIDIA's nvidia graphics driver module, which may not be related; except, I did notice that an nvidia ic2 device began to be picked up by sensors-detect, after I upgraded the nvidia module and lm_sensors. FYI, here's the new sensors-detect output (see below).
> The error message above is admittedly confusing (and was improved by
> now.) What it really means it that no hardware monitoring devices were
> found. Which means that either the relevant drivers were not loaded, or
> they were loaded but do not work as intended.
Ahh, Ok - thx!
> But are you sure that Asus Probe was using the Intel 82801 SMBus to get
> the data? It could as well be getting the data from a Super-I/O chip
> with embedded hardware monitoring functions, for example.
True. I do *not* know how it was getting the data. However, I did visually inspect my board, and I verified that I have the following chips on-board:
- WinBond W83627DHG-A (635G9C263077G0UB)
- WinBond W83791G (643GC)
- Intel Core2Duo QX6700 (on-die temp monitors)
- NVIDA 7300GT graphics card
sensors-detect picked up these (or similar), and I verified the above numbers, which are transcribed from the board. This leads me to my next question, which may necessitate being reposted on the other list:
lm_sensors is now running without the previous error (about old kernel or missing sysfs support) - Yeah! :-) However, most of the data is missing or bad, and I don't think editing the sensors.conf file will help this problem. :-( Per the devices wiki, I've updated the kernel to 2.6.21 to pick up the w83627dhg chip, and I've patched the kernel to pick up the core2duo on-die thermal sensors (coretemp). sensors-detect seems to identify them properly (see bottom), and sensors reports their values - however they have no values! My w83791G is reported as a W83791d (which may be a problem. Does w83791G=w83791D?); however, all the values are bunk - they don't change much, if at all, when I change the voltages in the BIOS. The fan speeds seem to be working, but the temps are not even being reported. Why aren't the chip sensors showing up (coretemp)? Here's the sensors output. Any thoughts on what do do here?
$ sensors
w83627dhg-isa-0290
Adapter: ISA adapter
coretemp-isa-0000
Adapter: ISA adapter
coretemp-isa-0001
Adapter: ISA adapter
coretemp-isa-0002
Adapter: ISA adapter
coretemp-isa-0003
Adapter: ISA adapter
w83791d-i2c-0-2d
Adapter: SMBus I801 adapter at 0400
in0: +1.07 V (min = +0.00 V, max = +3.06 V)
in1: +1.54 V (min = +0.00 V, max = +3.06 V)
in2: +1.28 V (min = +2.82 V, max = +3.79 V) ALARM
in3: +3.06 V (min = +0.00 V, max = +0.00 V) ALARM
in4: +0.96 V (min = +2.05 V, max = +0.00 V) ALARM
in5: +1.20 V (min = +0.00 V, max = +0.02 V) ALARM
in6: +1.30 V (min = +2.24 V, max = +2.05 V) ALARM
fan1: 0 RPM (min = -1 RPM, div = 2) ALARM
fan2: 0 RPM (min = -1 RPM, div = 2) ALARM
fan3: 19852 RPM (min = -1 RPM, div = 2) ALARM
temp1: -48°C (high = +0°C, hyst = +8°C)
temp2: -48.0°C (high = +80°C, hyst = +75°C)
temp3: -48.0°C (high = +80°C, hyst = +75°C)
vid: +1.419 V (VRM Version 11.0)
alarms:
beep_enable:
Sound alarm enabled
I've identified some of these (in0=SB Vcore, in1=SB SATA, in4=DDR TERM V, in6=NV Vcore, fan3=120mm rear chassis fan), but the other voltages do not track anything else that I can see, and the temps are clearly bogus. (I don't have anything hooked to fan1 or fan2, so I expect that to be bogus).
> Loading i2c-i801 and i2c-ec at the same time is probably not a good
> idea - both drivers could be attempting to grab the same device. I'm
> not sure if it could explain the error messages above, though. Is
> i2c-ec loaded automatically by your distribution? Does it work? Please
> provide the output of "i2cdetect -l".
It is getting loaded automatically, but I don't know if it works, because I do not know what it does. :-) I successfully removed its dependent module (sbs) and it (using modprobe -r), but it did not seem to change anything. Here's the output you requested:
$ i2cdetect -l
i2c-3 i2c NVIDIA i2c adapter 2 at 1:00.0 Algorithm unavailable
i2c-2 i2c NVIDIA i2c adapter 1 at 1:00.0 Algorithm unavailable
i2c-1 i2c NVIDIA i2c adapter 0 at 1:00.0 Algorithm unavailable
i2c-0 smbus SMBus I801 adapter at 0400 Non-I2C SMBus adapter
Thanks,
Trevor
<snippet sensors-detect>
....
Now follows a summary of the probes I have just done.
Just press ENTER to continue:
Driver `eeprom' (should be inserted):
Detects correctly:
* Bus `NVIDIA i2c adapter 1 at 1:00.0'
Busdriver `UNKNOWN', I2C address 0x50
Chip `eeprom' (confidence: 6)
* Bus `NVIDIA i2c adapter 0 at 1:00.0'
Busdriver `UNKNOWN', I2C address 0x50
Chip `eeprom' (confidence: 6)
* Bus `SMBus I801 adapter at 0400'
Busdriver `i2c-i801', I2C address 0x50
Chip `eeprom' (confidence: 6)
* Bus `SMBus I801 adapter at 0400'
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.
Driver `w83627ehf' (should be inserted):
Detects correctly:
* ISA bus, address 0x290
Chip `Winbond W83627DHG Super IO Sensors' (confidence: 9)
Driver `coretemp' (should be inserted):
Detects correctly:
* Chip `Intel Core family thermal sensor' (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/modules.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 unknown adapter NVIDIA i2c adapter 0 at 1:00.0
# modprobe unknown adapter NVIDIA i2c adapter 1 at 1:00.0
# modprobe unknown adapter NVIDIA i2c adapter 2 at 1:00.0
modprobe i2c-i801
# Chip drivers
modprobe eeprom
modprobe w83627ehf
modprobe coretemp
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----cut here----
</snippet>
For some reason, my w83791G (d) is no longer showing up in sensors-detect. Maybe it is because the module is already loded?
More information about the i2c
mailing list