Ticket #1376

Johannes Weißl jargon at hurg.org
Sun Aug 24 19:14:57 CEST 2003


On 2003-08-24 10:24:50, Jean Delvare wrote:
> The i2c-viapro module is used by the eeprom module. This is only useful
> to read the SPD EEPROMs found on your memory modules, and I guess you
> can live without it, so feel free to remove i2c-viapro and eeprom from
> the list for faster operations.

Yes, I think that I don't need them ...

> Before you do that, however, I'm interested in the adm1021 problem. You
> don't seem to have such a chip on your system, so I wonder why
> sensors-detect told you to use it. Could you please provide a full log
> of sensors-detect? Please unload all chip drivers (adm1021, eeprom,
> w83781d) before running sensors-detect again.

I've attached a "LOG" file ...

> The two suspects left are: libsensors, and sensors itself. I'm not fully
> qualified to track that kind of bug. I think that Philip Pokorny would
> be much more that I am. In a similar case, he suggested to use "strace
> -o /tmp/sensors.strace sensors -s". Maybe we can start with that.

here it is

> Maybe the problem is that sensors drops its root priviledges at some
> point. But I don't know why nor how it could do that. All I know is that
> only Debian-system-based (or clones) users have reported the problem,
> which is probably not a simpe coincidence. What's more, I think I
> remember the i2c-isa module was in use each time. That too is probably
> not a coincidence. What do Debian systems have particular, and what does
> the i2c-isa module do that other bus drivers don't?

hmm, as far as I know, Debian is nearly completely FHS compatible ...
and the module-handling is different from the other distributions
(update-modules, /etc/modutils, ...)

I've never used another distribution, so I don't know what's different.

-- 
cu,
Johannes Weißl
-------------- next part --------------
 This program will help you to determine which I2C/SMBus modules you need to
 load to use lm_sensors most effectively.
 You need to have done a `make install', issued a `depmod -a' and made sure
 `/etc/conf.modules' (or `/etc/modules.conf') contains the appropriate
 module path before you can use some functions of this utility. Read
 doc/modules for more information.
 Also, you need to be `root', or at least have access to the /dev/i2c[-/]* files
 for some things. You can use prog/mkdev/mkdev.sh to create these /dev files
 if you do not have them already.
 If you have patched your kernel and have some drivers built-in you can
 safely answer NO if asked to load some modules. In this case, things may
 seem a bit confusing, but they will still work.

 BIOS vendor (ACPI): VIA694
 System vendor (DMI): VIA Technologies, Inc.
 BIOS version (DMI): 6.00 PG
 We can start with probing for (PCI) I2C or SMBus adapters.
 You do not need any special privileges for this.
 Do you want to probe now? (YES/no): 
Probing for PCI bus adapters...
Use driver `i2c-viapro' for device 00:11.0: VIA Technologies VT8233A/8235 South Bridge
Probe succesfully concluded.

 We will now try to load each adapter module in turn.
Module `i2c-viapro' already loaded.
 Do you now want to be prompted for non-detectable adapters? (yes/NO): 
 To continue, we need module `i2c-dev' to be loaded.
 If it is built-in into your kernel, you can safely skip this.
 i2c-dev is not loaded. Do you want to load it now? (YES/no): 
 Module loaded succesfully.

 We are now going to do the adapter probings. Some adapters may hang halfway
 through; we can't really help that. Also, some chips will 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. That often
 includes address 0x69 (clock chip).

Next adapter: SMBus Via Pro adapter at 5000 (Non-I2C SMBus adapter)
Do you want to scan it? (YES/no/selectively): 
Client found at address 0x2b
Probing for `National Semiconductor LM78'... Failed!
Probing for `National Semiconductor LM78-J'... Failed!
Probing for `National Semiconductor LM79'... Failed!
Probing for `National Semiconductor LM80'... Failed!
Probing for `Winbond W83781D'... Failed!
Probing for `Winbond W83782D'... Failed!
Probing for `Winbond W83783S'... Failed!
Probing for `Winbond W83791D'... Failed!
Probing for `Winbond W83627HF'... Failed!
Probing for `Asus AS99127F'... Failed!
Probing for `Winbond W83L784R/AR'... Failed!
Probing for `Analog Devices ADM1021'... Failed!
Probing for `Analog Devices ADM1021A/ADM1023'... Failed!
Probing for `Maxim MAX1617'... Success!
    (confidence 3, driver `adm1021')
Probing for `Maxim MAX1617A'... Failed!
Probing for `TI THMC10'... Failed!
Probing for `National Semiconductor LM84'... Success!
    (confidence 6, driver `adm1021')
Probing for `Genesys Logic GL523SM'... Failed!
Probing for `Onsemi MC1066'... Failed!
Probing for `National Semiconductor LM83'... Failed!
Probing for `ITE IT8705F / IT8712F / SiS 950'... Failed!
Client found at address 0x30
Client found at address 0x37
Client found at address 0x50
Probing for `Serial EEPROM'... Success!
    (confidence 8, driver `eeprom')
Probing for `DDC monitor'... Failed!
Client found at address 0x69

 Some chips are also accessible through the ISA bus. ISA probes are
 typically a bit more dangerous, as we have to write to I/O ports to do
 this.  Do you want to scan the ISA bus? (YES/no): 
Probing for `National Semiconductor LM78'
  Trying address 0x0290... Failed!
Probing for `National Semiconductor LM78-J'
  Trying address 0x0290... Failed!
Probing for `National Semiconductor LM79'
  Trying address 0x0290... Failed!
Probing for `Winbond W83781D'
  Trying address 0x0290... Failed!
Probing for `Winbond W83782D'
  Trying address 0x0290... Failed!
Probing for `Winbond W83627HF'
  Trying address 0x0290... Failed!
Probing for `Winbond W83697HF'
  Trying address 0x0290... Success!
    (confidence 8, driver `w83781d')
Probing for `Silicon Integrated Systems SIS5595'
  Trying general detect... Failed!
Probing for `VIA Technologies VT82C686 Integrated Sensors'
  Trying general detect... Failed!
Probing for `VIA Technologies VT8231 Integrated Sensors'
  Trying general detect... Failed!
Probing for `ITE IT8705F / IT8712F / SiS 950'
  Trying address 0x0290... Failed!
Probing for `IPMI BMC KCS'
  Trying address 0x0ca0... Failed!
Probing for `IPMI BMC SMIC'
  Trying address 0x0ca8... Failed!

 Some Super I/O chips may also contain sensors. Super I/O probes are
 typically a bit more dangerous, as we have to write to I/O ports to do
 this.  Do you want to scan for Super I/O sensors? (YES/no): 
Probing for `SMSC 47M1xx Super IO Fan Sensors'
  Failed!
Probing for `VT1211 Super IO Sensors'
  Failed! (0x60)
Probing for `Winbond W83627HF Super IO Sensors'
  Failed! (0x60)
Probing for `Winbond W83627THF Super IO Sensors'
  Failed! (0x60)
Probing for `Winbond W83697HF Super IO Sensors'
  Success... found at address 0x0290

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

Driver `adm1021' (should be inserted but causes problems):
  Detects correctly:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x2b
    Chip `National Semiconductor LM84' (confidence: 6)
  Misdetects:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x2b
    Chip `Maxim MAX1617' (confidence: 3)

Driver `eeprom' (should be inserted):
  Detects correctly:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x50
    Chip `Serial EEPROM' (confidence: 8)

Driver `w83781d' (should be inserted):
  Detects correctly:
  * ISA bus address 0x0290 (Busdriver `i2c-isa')
    Chip `Winbond W83697HF' (confidence: 8)

Driver `w83627hf' (may not be inserted):
  Misdetects:
  * ISA bus address 0x0290 (Busdriver `i2c-isa')
    Chip `Winbond W83697HF Super IO Sensors' (confidence: 8)


 I will now generate the commands needed to load the I2C modules.
 Sometimes, a chip is available both through the ISA bus and an I2C bus.
 ISA bus access is faster, but you need to load an additional driver module
 for it. If you have the choice, do you want to use the ISA bus or the
 I2C/SMBus (ISA/smbus)? 

To make the sensors modules behave correctly, add these lines to either
/etc/modules.conf or /etc/conf.modules:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
options adm1021 ignore=0,0x2b
#----cut here----

To load everything that is needed, add this to some /etc/rc* file:

#----cut here----
# I2C adapter drivers
modprobe i2c-viapro
modprobe i2c-isa
# I2C chip drivers
modprobe adm1021
modprobe eeprom
modprobe w83781d
# sleep 2 # optional
/usr/local/bin/sensors -s # recommended
#----cut here----

WARNING! If you have some things 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 it's done.

Do you want to generate /etc/sysconfig/lm_sensors? (yes/NO):
-------------- next part --------------
execve("/usr/local/bin/sensors", ["sensors", "-s"], [/* 33 vars */]) = 0
uname({sys="Linux", node="kronos", ...}) = 0
brk(0)                                  = 0x805e948
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=47150, ...}) = 0
old_mmap(NULL, 47150, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3)                                = 0
open("/usr/local/lib/libsensors.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0$T\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=117478, ...}) = 0
old_mmap(NULL, 109796, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40020000
old_mmap(0x4002d000, 53248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x4002d000
old_mmap(0x4003a000, 3300, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4003a000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\224]\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1142224, ...}) = 0
old_mmap(NULL, 1151748, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4003b000
old_mmap(0x4014d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x111000) = 0x4014d000
old_mmap(0x40152000, 8964, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40152000
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0006\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=134100, ...}) = 0
old_mmap(NULL, 136656, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40155000
old_mmap(0x40176000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20000) = 0x40176000
close(3)                                = 0
munmap(0x40014000, 47150)               = 0
brk(0)                                  = 0x805e948
brk(0x807f948)                          = 0x807f948
brk(0)                                  = 0x807f948
brk(0x8080000)                          = 0x8080000
open("/etc/sensors.conf", O_RDONLY)     = 3
_sysctl({{CTL_DEV, 2, 1}, 3, 0x40039be0, 80, (nil), 0}) = 0
open("/proc/bus/i2c", O_RDONLY)         = 4
fstat64(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(4, "i2c-0\tsmbus    \tSMBus Via Pro ad"..., 4096) = 165
read(4, "", 4096)                       = 0
close(4)                                = 0
munmap(0x40014000, 4096)                = 0
ioctl(3, SNDCTL_TMR_TIMEBASE, 0xbfffe840) = -1 ENOTTY (Inappropriate ioctl for device)
fstat64(3, {st_mode=S_IFREG|0644, st_size=48531, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(3, "# Sensors configuration file use"..., 8192) = 8192
read(3, "p\' lines, this will run-time\n# b"..., 8192) = 8192
read(3, "\n    label in4 \"+12V\"\n    label "..., 8192) = 8192
read(3, " 1)\n    compute in5 (160/35.7)*("..., 8192) = 8192
read(3, "g resistors, rather\n# than exter"..., 8192) = 8192
read(3, "to load the it87 module as follo"..., 8192) = 7571
read(3, "", 4096)                       = 0
read(3, "", 8192)                       = 0
ioctl(3, SNDCTL_TMR_TIMEBASE, 0xbfffe830) = -1 ENOTTY (Inappropriate ioctl for device)
_sysctl({{CTL_DEV, 2, 101, 3e8}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3e8}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 3e8}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3e8}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ea}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ea}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ea}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ea}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 3eb}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3eb}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 3eb}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3eb}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ec}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ec}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ec}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ec}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ed}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ed}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ed}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ed}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ee}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ee}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ee}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ee}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ef}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ef}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ef}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3ef}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 3f0}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3f0}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 3f0}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 3f0}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b0}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b0}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b0}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b0}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b1}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b1}, 4, (nil), 1074247997, 0x40039be0, 4}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b1}, 4, 0x40039be0, 12, (nil), 0}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b1}, 4, (nil), 1074247997, 0x40039be0, 8}) = 0
_sysctl({{CTL_DEV, 2, 101, 4b2}, 4, 0x40039be0, 4096, (nil), 0}) = -1 ENOTDIR (Not a directory)
_sysctl({{CTL_DEV, 2, 101, 4b2}, 4, 0x40039be0, 4096, (nil), 0}) = -1 ENOTDIR (Not a directory)
write(2, "w83697hf-isa-0290: Can\'t access "..., 56) = 56
write(2, "Run as root?\n", 13)          = 13
exit_group(0)                           = ?


More information about the lm-sensors mailing list