mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-10-09 16:52:33 +07:00
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1173 7894878c-1315-0410-8ee3-d5d059ff63e0
157 lines
6.4 KiB
Plaintext
157 lines
6.4 KiB
Plaintext
Except for many unimplemented things (listed in the TODO file), there may be
|
|
true bugs too. If you experience any problems not listed here,
|
|
do not hesitate to mail sensors@stimpy.netroedge.com.
|
|
But read this file and doc/FAQ first, please!
|
|
|
|
============================================================================
|
|
These are current problems with specific programs and drivers.
|
|
In general, please don't send us mail telling us you have the
|
|
same problem!! Do send us mail if you have a fix!!
|
|
|
|
|
|
================================
|
|
Asus boards - as99127f support (w83781d driver)
|
|
|
|
Several problems. Asus will not release a datasheet.
|
|
Support was developed - and tweaked - with experimentation and user feedback.
|
|
These will not be fixed unless we get a datasheet.
|
|
If you have problems, please lobby Asus to release a datasheet.
|
|
Unfortunately, several others have done so, without success.
|
|
Please do not send mail to us asking for better as99127f support.
|
|
We have done the best we can without a datasheet.
|
|
The changes we do make to please some people generally makes
|
|
things worse for people with other types of motherboard.
|
|
Please do not send mail to the author or the sensors group asking for
|
|
a datasheet or ideas on how to convince Asus.
|
|
See doc/chips/w83781d for more information.
|
|
|
|
Also, many as99127f chips are misidentified as w83781d or w83782d chips.
|
|
If so, you can fix this by forcing the driver:
|
|
modprobe w83781d force_as99127f=BUS,0x2d where BUS is your bus number
|
|
(cat /proc/bus/i2c to identify your bus number).
|
|
|
|
================================
|
|
i2c/smbus lockup (i2c-piix4 and i2c-ali15x3 drivers)
|
|
|
|
Sometimes the i2c bus will get hung and the driver can't un-hang it.
|
|
If this is caused by a hung sensor chip (mtp008 and w83781d chips may
|
|
be culprits), only a reboot or even power cycle will clear it
|
|
(if the SDRAM eeproms are on the hung i2c bus, the machine probably won't
|
|
boot until the power is cycled).
|
|
If there are bugs in the i2c bus drivers, or improvements we can make to
|
|
error recovery, we don't know what they are.
|
|
|
|
On the ASUS P5A motherboard, there are several reports that
|
|
the SMBus will hang and this can only be resolved by
|
|
powering off the computer. It appears to be worse when the board
|
|
gets hot, for example under heavy CPU load, or in the summer.
|
|
There may be electrical problems on this board.
|
|
On the P5A, the W83781D sensor chip is on both the ISA and
|
|
SMBus. Therefore the SMBus hangs can generally be avoided
|
|
by accessing the W83781D on the ISA bus only.
|
|
|
|
================================
|
|
IBM Thinkpad laptops and sensors-detect
|
|
See the file README.thinkpad
|
|
|
|
|
|
================================
|
|
mtp008 support
|
|
|
|
This chip does not always respond, as evidenced by 'XX' fields
|
|
in i2cdump. Results in non-detection by sensors-detect and/or
|
|
the mtp008 driver, or periodic bad readings.
|
|
Cause unknown - perhaps a bug in the chip, or the chip
|
|
not meeting the i2c specifications.
|
|
|
|
|
|
================================
|
|
sis5595 (sis5595 and i2c-sis5595 drivers)
|
|
|
|
These drivers latch on to many non-sis5595 chips which
|
|
do not support sensors, i2c bus, or both.
|
|
This is because SiS uses the same PCI ID for several different chips.
|
|
This will have to be fixed by us to recognize these other chips.
|
|
|
|
Right now, the driver tries
|
|
writing the base addresses (using the force_addr=0x.... parameter to modprobe),
|
|
it does not work for some machines (dmesg message is "force address failed").
|
|
Either some chips do not support sensors, or there is some undocumented
|
|
lock bit for the base address registers.
|
|
|
|
Also, the temperature reading in sis5595 is usually wrong.
|
|
Different formulas are required for different versions of
|
|
the chip and different motherboards.
|
|
|
|
================================
|
|
bus drivers (all)
|
|
|
|
Rmmod'ing a bus driver when the /proc directory for a chip
|
|
driver on that bus is in use may cause a kernel oops, because
|
|
the chip driver gets removed too. See ticket #331 for details.
|
|
Not likely to happen. No obvious way to fix.
|
|
|
|
|
|
============================================================================
|
|
Following are old problems with older kernels.
|
|
|
|
|
|
Pre-2.1.58 /proc directory Oops
|
|
===============================
|
|
|
|
There is a problem in pre 2.1.58 kernels that can make the kernel Oops. You
|
|
can trigger this Oops if you have opened any file, or are in any directory,
|
|
created by a module. If you remove the module at such a moment, successive
|
|
access to those files or directories will make the kernel complain through
|
|
an Oops. There is really no good way to solve this. Stock kernel modules
|
|
exhibit the same problem, by the way. Kernels from 2.1.58 onwards have new
|
|
fill_inode() semantics; using this function, we can increase the module use
|
|
count while a module file or directory is accessed. This solves the problem,
|
|
because it makes it impossible to remove the module.
|
|
Alan Cox (alan@lxorguk.ukuu.org.uk), the maintainer of 2.0 kernels, has
|
|
said he will consider patches that backport this 2.1 feature; perhaps it
|
|
will be in 2.0.37. Until then, be careful when you unload modules.
|
|
|
|
|
|
2.2.x cdrom.o Oops
|
|
==================
|
|
|
|
Module cdrom.o in all 2.2 kernels conflicts with our sensors.o module.
|
|
You can get an Oops if cdrom.o is unloaded after sensors.o was loaded.
|
|
Below is a small diff that you can apply to the kernel to correct this.
|
|
Another solution is to make sure cdrom.o is never unloaded, or to make
|
|
sure it is not a module but compiled into the kernel proper.
|
|
|
|
The diff corrects a long-standing /proc bug. It will go into kernel 2.2.2
|
|
or later in a somewhat modified form. It was written by Jens Axboe
|
|
<axboe@image.dk>.
|
|
|
|
-----cut here-----
|
|
--- virgin/kernel/sysctl.c Sat Jan 9 07:54:16 1999
|
|
+++ linux/kernel/sysctl.c Mon Feb 1 23:44:58 1999
|
|
@@ -559,12 +559,12 @@
|
|
unregister_proc_table(table->child, de);
|
|
}
|
|
/* Don't unregister proc directories which still have
|
|
- entries... */
|
|
- if (!((de->mode & S_IFDIR) && de->subdir)) {
|
|
+ entries or are still being used... */
|
|
+ if (!((de->mode & S_IFDIR) && de->subdir) && !de->count)
|
|
{
|
|
proc_unregister(root, de->low_ino);
|
|
table->de = NULL;
|
|
kfree(de);
|
|
- }
|
|
+ }
|
|
}
|
|
}
|
|
-----cut here-----
|
|
|
|
|
|
Kernel i2c conflict
|
|
===================
|
|
|
|
An older version of the i2c modules is distributed in 2.2 and late 2.1
|
|
kernels. If you try to use it at the same moment as our i2c modules, you
|
|
may get into trouble. This should be fixed for lm_sensors-2.4.0 and newer.
|