[lm-sensors] Problems with f71882fg and NVIDIA graphics card thermal sensor

Malcolm Lalkaka mlalkaka at gmail.com
Wed Jan 21 09:40:28 CET 2009


On Wed, 2009-01-21 at 08:58 +0100, Jean Delvare wrote:
> Hi Malcolm,
> 
> On Tue, 20 Jan 2009 11:50:45 -0800, Malcolm Lalkaka wrote:
> > I ran sensors-detect, and it told me to load the modules coretemp and
> > f71882fg. I added those to /etc/modules, and restarted my computer.
> > Although coretemp loaded fine, f71882fg did not. Furthermore, I don't
> > think it detected the thermal monitor on my NVIDA GeForce 9800 GTX+,
> > which I know exists because nvidia-settings displays the temperature of
> > the device.
> > 
> > When I run "sudo modprobe f71882fg", I get the following output:
> >         FATAL: Error inserting f71882fg
> >         (/lib/modules/2.6.27-9-generic/kernel/drivers/hwmon/f71882fg.ko): Device or resource busy
> > The following allows is outputted to dmesg:
> >         [66032.953156] f71882fg: Not a Fintek device
> 
> This one is a false positive, already addressed by a patch I sent 2
> days ago.

Thank you :).

> >         [66032.953206] f71882fg: Found F71882FG chip at 0x290, revision 32
> >         [66032.953684] f71882fg.656: failed to claim resource 0
> >         [66032.953687] f71882fg: Device addition failed
> > 
> > The output of sensors-detect is as follows:
> >         # sensors-detect revision 5249 (2008-05-11 22:56:25 +0200)
> >         
> >         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...
> >         Found unknown SMBus adapter 10de:0aa2 at 0000:00:03.2.
> >         Sorry, no supported PCI bus adapters found.
> 
> You appear to have a recent nVidia SMBus controller which we do not
> support yet (MCP79). If it is compatible with previous nVidia south
> bridges then the i2c-nforce2 driver should work. Can you please provide
> the output of lspci -d 10de:0aa2 -vxxx?

The output from "sudo lspci -d 10de:0aa2 -vxxx":
00:03.2 SMBus: nVidia Corporation MCP79 SMBus (rev b1)
	Subsystem: eVga.com. Corp. Device 1006
	Flags: 66MHz, fast devsel, IRQ 5
	I/O ports at ff00 [size=64]
	I/O ports at 1c00 [size=64]
	I/O ports at 1c80 [size=64]
	Capabilities: [44] Power Management version 2
00: de 10 a2 0a 01 00 b0 00 b1 00 05 0c 00 00 80 00
10: 01 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 1c 00 00 81 1c 00 00 00 00 00 00 42 38 06 10
30: 00 00 00 00 44 00 00 00 00 00 00 00 05 01 00 00
40: 42 38 06 10 01 00 02 c0 00 00 00 00 6a 96 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 01 10 00 00 01 14 00 00 01 18 00 00 00 00 00 00
70: 00 00 00 00 00 00 f0 ef 00 00 00 00 01 00 00 00
80: 00 10 fe fe 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: b1 02 00 00 07 00 00 84 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: d4 30 80 01 01 00 00 00 20 82 00 0a 0d 0d 19 19
d0: c0 b0 c0 00 10 00 01 00 05 00 00 00 00 00 00 00
e0: 88 10 01 10 60 40 00 4f 80 60 00 00 23 44 44 00
f0: 7a ff 3d 67 b7 af 9b f8 90 00 80 80 00 00 00 00

> >         If you have undetectable or unsupported I2C/SMBus 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: NVIDIA i2c adapter  (i2c-0)
> >         Do you want to scan it? (YES/no/selectively): 
> >         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)
> >         
> >         Next adapter: NVIDIA i2c adapter  (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): 
> 
> No thermal sensor on your graphics adapter's I2C buses. Maybe it has
> another type of thermal sensor, but we do not support that.
> 
> >         
> >         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 `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'...                                     No
> >         Trying family `VIA/Winbond/Fintek'...                       No
> >         Trying family `ITE'...                                      No
> >         Probing for Super-I/O at 0x4e/0x4f
> >         Trying family `National Semiconductor'...                   No
> >         Trying family `SMSC'...                                     No
> >         Trying family `VIA/Winbond/Fintek'...                       Yes
> >         Found `Fintek F71882FG/F71883FG Super IO Sensors'
> >         Success!
> >             (address 0x295, driver `f71882fg')
> >         
> >         Some south bridges, CPUs or memory controllers may also contain
> >         embedded sensors. Do you want to scan for them? (YES/no): 
> >         Silicon Integrated Systems SIS5595...                       No
> >         VIA VT82C686 Integrated Sensors...                          No
> >         VIA VT8231 Integrated Sensors...                            No
> >         AMD K8 thermal sensors...                                   No
> >         AMD K10 thermal sensors...                                  No
> >         Intel Core family thermal sensor...
> >         Success!
> >             (driver `coretemp')
> >         Intel AMB FB-DIMM thermal sensor...                         No
> >         
> >         Now follows a summary of the probes I have just done.
> >         Just press ENTER to continue: 
> >         
> >         Driver `f71882fg' (should be inserted):
> >           Detects correctly:
> >           * ISA bus, address 0x295
> >             Chip `Fintek F71882FG/F71883FG 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 load everything that is needed, add this to /etc/modules:
> >         
> >         #----cut here----
> >         # Chip drivers
> >         f71882fg
> >         coretemp
> >         #----cut here----
> >         
> >         Do you want to add these lines automatically? (yes/NO)
> > 
> > The output of "sudo isadump 0x295 0x296":
> >         WARNING! Running this program can cause system crashes, data
> >         loss and worse!
> >         I will probe address register 0x295 and data register 0x296.
> >         Continue? [Y/n] 
> >              0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
> >         00: ff 03 00 00 ff ff ff ff ff ff 00 51 55 4c 00 00 
> >         10: 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff 
> >         20: d3 79 5e 79 8d 70 5b d3 c6 ff ff ff ff ff ff ff 
> >         30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
> >         40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
> >         50: ff ff ff ff ff ff ff ff ff ff 03 04 10 19 34 ff 
> >         60: 00 88 88 00 ff ff 02 00 00 00 ff 06 40 24 ff 00 
> >         70: ff ff 23 ff 1f ff 7f ff ff ff ff ff ff ff ff ff 
> >         80: ff ff 64 55 64 55 55 46 ff ff ff ff ff ff a8 ff 
> >         90: 00 0d 0d 00 00 ff 56 ff 44 22 ff 55 55 55 ff 1a 
> >         a0: 03 55 00 c8 01 23 3c 32 28 1e ff d9 b2 99 80 0d 
> >         b0: 04 8f 00 99 02 45 3c 32 28 1e ff d9 b2 99 80 0e 
> >         c0: 0f ff 00 ff 03 ff 3c 32 28 1e ff d9 b2 99 80 0f 
> >         d0: 0f ff 00 ff 03 ff 3c 32 28 1e ff d9 b2 99 80 0f 
> >         e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
> >         f0: 00 00 00 00 00 00 3b ff 01 6e ff 00 ff ff ff ff
> > 
> > The output of "sudo i2cdetect 0":
> >         WARNING! This program can confuse your I2C bus, cause data loss
> >         and worse!
> >         I will probe file /dev/i2c-0.
> >         I will probe address range 0x03-0x77.
> >         Continue? [Y/n] 
> >              0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
> >         00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
> >         10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> >         20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> >         30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- -- 
> >         40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> >         50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> >         60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> >         70: -- -- -- -- -- -- -- --                         
> > 
> > The output of "sudo i2cdetect 1" and "sudo i2cdetect 2" had no "XX", but
> > all entries were "--", so I haven't included it here.
> > 
> > The output of "sudo i2cdump 0 0x50":
> > -----
> > No size specified (using byte-data access)
> > WARNING! This program can confuse your I2C bus, cause data loss and
> > worse!
> > I will probe file /dev/i2c-0, address 0x50, mode byte
> > Continue? [Y/n] 
> >      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
> > 00: 00 ff ff ff ff ff ff 00 4c 2d e5 03 32 32 57 54    ........L-??22WT
> > 10: 29 12 01 03 80 2f 1e 78 2a ee 91 a3 54 4c 99 26    )????/?x*???TL?&
> > 20: 0f 50 54 bf ef 80 b3 00 81 80 81 40 71 4f 01 01    ?PT????.???@qO??
> > 30: 01 01 01 01 01 01 7c 2e 90 a0 60 1a 1e 40 30 20    ??????|.??`??@0 
> > 40: 36 00 da 28 11 00 00 1a 00 00 00 fd 00 38 4b 1e    6.?(?..?...?.8K?
> > 50: 51 0e 00 0a 20 20 20 20 20 20 00 00 00 fc 00 53    Q?.?      ...?.S
> > 60: 79 6e 63 4d 61 73 74 65 72 0a 20 20 00 00 00 ff    yncMaster?  ....
> > 70: 00 48 56 5a 51 41 30 30 31 31 38 0a 20 20 00 01    .HVZQA00118?  .?
> > 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > -----
> > 
> > The output of "sudo i2cdump 0 0x37" was all "ff", so I haven't included
> > it here.
> > 
> > The output of "sudo i2cdump 0 0x3a":
> > -----
> > No size specified (using byte-data access)
> > WARNING! This program can confuse your I2C bus, cause data loss and
> > worse!
> > I will probe file /dev/i2c-0, address 0x3a, mode byte
> > Continue? [Y/n] 
> >      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
> > 00: da 81 3a 3d 8e 00 00 00 00 00 e7 00 00 00 00 00    ??:=?.....?.....
> > 10: 00 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 00    ............/...
> > 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 40: 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
> > 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > -----
> 
> What have you the idea to run i2cdump on all addresses? In general this
> is a _very bad_ idea, as i2cdump can damage your system (as the warning
> says.) If there is any documentation lying around that told you to do
> this, it should be fixed quickly.

Assuming I understood it correctly, I was doing what it said on the "How
to Ask for Help" section of the lm-sensors website:
http://www.lm-sensors.org/wiki/FAQ/Chapter4.
        Here's what you should send us:
        ...
        The output of (as root) prog/dump/i2cdump X 0xXX where XX = the
        address of each chip you see in the output of i2cdetect. (run
        once for each chip) (please send this only if it's not all ff)

I read the warning, but I guess I thought it would be alright. (It
sounds foolish now, I know.) I hope I didn't do any damage; how can I
check? Out of curiosity, how can dumping this information cause damage?
Isn't dumping usually a read-only operation?

> > My motherboard is an EVGA nForce 730i. 
> > I'm using sensors version 3.0.2 with libsensors 3.0.2. 
> > My Linux kernel version is 2.6.27, compiled for x86_64.
> > 
> > Does anyone know how to solve these problems? I can provide more
> > information, and can test some things if needed.
> 
> Don't you think it would have been fair to mention that you already
> received some help about this issue over IRC, and that the cause of the
> problem was found?

I apologize for not writing this in the original email; I didn't know
whether you would be on the mailing list, and I had no way to identify
you based on just your IRC name. I figured though that if you were on
the mailing list, you or I would notice each other after I describe the
problem. Sorry again if this has caused anyone confusion or redundant
effort.

> For the others: the problem is a PNP BIOS bug: region 0x295-0x314 is
> reserved by PNP, which is clearly incorrect. This prevents the f71882fg
> driver from declaring its I/O region (0x290-0x297).
> 
> Malcolm, did you try the pnp boot parameters I suggested on IRC?

Yes I tried the boot parameters you suggested; neither "pnpbios=off" nor
"pnp_reserve_io=0x290,8" worked, unfortunately. This led me to believe
the problem may be something different. (I don't know much about this
stuff, though.)






More information about the lm-sensors mailing list