mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-02 13:30:30 +00:00
lm-sensors should now be safe to use on Thinkpad laptops.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0@4865 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
b60f5a718e
commit
6270516240
5 files changed
+18
-154
No files matched your search
-108
@@ -1,108 +0,0 @@
|
||||
|
||||
**** WARNING: IBM Thinkpad users should not install lm_sensors! ****
|
||||
|
||||
The eeprom of some IBM Thinkpads has been corrupted after installing
|
||||
lm_sensors.
|
||||
|
||||
In our releases through 2.6.4, sensors-detect (our userspace detection script)
|
||||
corrupts the Atmel 24RF08 eeprom. We have verified this in testing.
|
||||
After the eeprom is corrupted, the checksum verification in the BIOS
|
||||
will fail and the Thinkpad will not boot.
|
||||
|
||||
The 24RF08 is an 8K eeprom appearing at addresses 0x54 - 0x57 with
|
||||
an additional "access protection page" at address 0x5c.
|
||||
This is an unusual eeprom that contains a RFID (Radio Frequency ID)
|
||||
port for wireless access, and elaborate access protection mechanisms.
|
||||
The 24RF08 gets confused (presumably due to a state machine flaw) by
|
||||
the 'quick write 0' (*) probes our package uses for detection.
|
||||
This behavior is in violation of the I2C specification. This corruption
|
||||
mechanism has never been reported to us on any other eeprom,
|
||||
Atmel or otherwise.
|
||||
|
||||
We made several changes in release 2.6.5 (released September 15, 2002)
|
||||
to minimize the chance of corruption.
|
||||
Later evolutions were made and the current state is:
|
||||
|
||||
1) The probing command (quick write 0) has been replaced by a different
|
||||
command (read byte) for addresses where eeproms are known to live.
|
||||
This should prevent corruption of 24RF08 eeproms in any system,
|
||||
IBM or not. A similar change was made to i2cdetect as well, although
|
||||
no corruption was ever reported using this tool.
|
||||
|
||||
2) The i2c-piix4 module (the bus driver that is used for Intel PIIX4-based
|
||||
systems, including IBM Thinkpads) now accesses DMI information
|
||||
in the BIOS to identify the system manufacturer. If the system
|
||||
manufacturer is IBM, i2c-piix4 will print a message and exit.
|
||||
As the 24RF08 is on the PIIX4 SMBus, this prevents access to
|
||||
the 24RF08.
|
||||
|
||||
3) The sequence of probes in the eeprom module (when loaded with
|
||||
checksum=1) has been changed so that 24RF08 eeproms will
|
||||
not be corrupted. This *should* prevent corruption of 24RF08
|
||||
eeproms in non-IBM systems.
|
||||
We do not have any reports of this corruption mechanism in releases
|
||||
2.6.4 or earlier but have verified that it can happen.
|
||||
The ddcmon driver was changed in the same way, just in case.
|
||||
|
||||
Even with these changes, we still DO NOT RECOMMEND INSTALLING
|
||||
lm_sensors 2.6.5 or later on IBM Thinkpads, because:
|
||||
|
||||
1) While these changes will dramatically reduce the chance of 24RF08
|
||||
corruption, these changes have not been heavily tested.
|
||||
|
||||
2) lm_sensors won't run on most IBM systems because of these changes.
|
||||
|
||||
3) Most IBM Thinkpads contain a proprietary Embedded Controller which
|
||||
is used to access sensors. This controller is not on the SMBus,
|
||||
and IBM will not release the programming interface to the
|
||||
controller. So lm_sensors isn't useful on these Thinkpads anyway.
|
||||
|
||||
You may want to try ACPI instead, it should let you get some information
|
||||
about temperatures and fan status.
|
||||
|
||||
As described above, our 2.6.5 release "blacklisted" all IBM systems.
|
||||
For a moment, we have been planning to refine the system detection
|
||||
so that only those models containing 24RF08's are blacklisted. After that,
|
||||
we planned to use a different approach: a "white list" of known-to-be-safe
|
||||
systems. In both cases, it would require continuous updates of a machines
|
||||
list. This would have been slow and inefficient.
|
||||
|
||||
The latest idea is to stop using the dangerous command for EEPROM
|
||||
addresses. That way, risks of corruption are reduced to zero. This was
|
||||
already done for user-space tools, as mentioned above. Once this will
|
||||
have been tested and we are sure that there are no drawbacks, we'll
|
||||
do the same on the kernel side in Linux 2.6. The change won't occur in
|
||||
Linux 2.4 however, because it implies changes to both i2c modules and
|
||||
lm_sensors modules. It is possible to use mismatching versions of
|
||||
these modules, and when doing so, the fix would become more dangerous
|
||||
than helpful.
|
||||
|
||||
We do not have any reports of 24RF08 eeproms on non-IBM systems.
|
||||
If there are any such systems with 24RF08 eeproms, these changes will
|
||||
reduce the chances of corruption. However, there are
|
||||
theoretical scenarios (involving multiple bus masters,
|
||||
SMP systems, or simultaneous bus access) in which 24RF08's could
|
||||
still be corrupted. If you know of any non-IBM systems which contain
|
||||
these eeproms, please contact us.
|
||||
|
||||
|
||||
Thanks to IBM, the Linux Thinkpad Mailing List, and Joe in Australia
|
||||
for their assistance on this issue.
|
||||
|
||||
For more information, see:
|
||||
|
||||
The Linux Thinkpad Mailing List
|
||||
http://www.bm-soft.com/~bm/tp_mailing.html
|
||||
|
||||
Joe in Australia's Thinkpad Password Recovery Site
|
||||
http://www.ja.axxs.net/unlock/
|
||||
|
||||
Atmel 24RF08 Datasheet
|
||||
http://www.atmel.com/dyn/products/product_card.asp?part_id=2370
|
||||
|
||||
Site in the US that sells replacement AT24RF08 chips for all models
|
||||
http://www.pwcrack.com/
|
||||
|
||||
|
||||
(*) 'Write Quick 0' is not an actual write and should never generate
|
||||
a write operation to an eeprom location.
|
||||
@@ -104,10 +104,9 @@ lm_sensors
|
||||
4.31.2 Tyan 2460, 2462
|
||||
4.31.3 Tyan 2466
|
||||
4.31.4 Tyan 2688
|
||||
4.32 Problems on particular systems
|
||||
4.33 Problems on 2.6 kernels
|
||||
4.33.1 i2c-viapro and via686a
|
||||
4.33.2 Where are my EEPROMs?
|
||||
4.32 Problems on 2.6 kernels
|
||||
4.32.1 i2c-viapro and via686a
|
||||
4.32.2 Where are my EEPROMs?
|
||||
5 How to Ask for Help
|
||||
5.1 What to send us when asking for help
|
||||
5.2 What to do if a module won't insert?
|
||||
@@ -1201,12 +1200,7 @@ See support tickets 941, 840, and 841 for information.
|
||||
For board hangs, see support ticket 721 for information. Also *Note
|
||||
Inserting modules hangs my board: Section 4.29.
|
||||
|
||||
4.32 Problems on particular systems
|
||||
===================================
|
||||
|
||||
For IBM systems, see `README.thinkpad'.
|
||||
|
||||
4.33 Problems on 2.6 kernels
|
||||
4.32 Problems on 2.6 kernels
|
||||
============================
|
||||
|
||||
Not all drivers have been ported to 2.6. If your favorite driver is not
|
||||
@@ -1215,7 +1209,7 @@ not get a proper review yet. If you would like to port the driver, see
|
||||
the file Documentation/i2c/porting-clients in the 2.6 kernel tree for
|
||||
help, then send us the ported driver when you are done.
|
||||
|
||||
4.33.1 i2c-viapro and via686a
|
||||
4.32.1 i2c-viapro and via686a
|
||||
-----------------------------
|
||||
|
||||
Until kernel 2.6.11, there was a PCI resource conflict between
|
||||
@@ -1224,7 +1218,7 @@ integrated sensors driver for VIA bridges). This caused the second
|
||||
loaded driver to silently fail working. So do not load both i2c-viapro
|
||||
and via686a together unless you have a recent kernel.
|
||||
|
||||
4.33.2 Where are my EEPROMs?
|
||||
4.32.2 Where are my EEPROMs?
|
||||
----------------------------
|
||||
|
||||
The 2.6.14-rc1 kernel introduced the hwmon class, which groups all
|
||||
|
||||
+7
-23
@@ -164,11 +164,10 @@ Jean Delvare<br>
|
||||
<li><a href="#Section-4_002e31">4.31.3 Tyan 2466</a>
|
||||
<li><a href="#Section-4_002e31">4.31.4 Tyan 2688</a>
|
||||
</li></ul>
|
||||
<li><a href="#Section-4_002e32">4.32 Problems on particular systems</a>
|
||||
<li><a href="#Section-4_002e33">4.33 Problems on 2.6 kernels</a>
|
||||
<li><a href="#Section-4_002e32">4.32 Problems on 2.6 kernels</a>
|
||||
<ul>
|
||||
<li><a href="#Section-4_002e33">4.33.1 i2c-viapro and via686a</a>
|
||||
<li><a href="#Section-4_002e33">4.33.2 Where are my EEPROMs?</a>
|
||||
<li><a href="#Section-4_002e32">4.32.1 i2c-viapro and via686a</a>
|
||||
<li><a href="#Section-4_002e32">4.32.2 Where are my EEPROMs?</a>
|
||||
</li></ul>
|
||||
</li></ul>
|
||||
<li><a name="toc_Help" href="#Help">5 How to Ask for Help</a>
|
||||
@@ -903,8 +902,7 @@ Up: <a rel="up" accesskey="u" href="#Top">Top</a>
|
||||
<li><a href="#Section-4_002e29">Section 4.29</a>: Inserting modules hangs my board
|
||||
<li><a href="#Section-4_002e30">Section 4.30</a>: Inserting modules slows down my board
|
||||
<li><a href="#Section-4_002e31">Section 4.31</a>: Problems on particular motherboards
|
||||
<li><a href="#Section-4_002e32">Section 4.32</a>: Problems on particular systems
|
||||
<li><a href="#Section-4_002e33">Section 4.33</a>: Problems on 2.6 kernels
|
||||
<li><a href="#Section-4_002e32">Section 4.32</a>: Problems on 2.6 kernels
|
||||
</ul>
|
||||
|
||||
<div class="node">
|
||||
@@ -1817,26 +1815,12 @@ Also <a href="#Section-4_002e29">Inserting modules hangs my board</a>.
|
||||
<p><hr>
|
||||
<a name="Section-4.32"></a>
|
||||
<a name="Section-4_002e32"></a>
|
||||
Next: <a rel="next" accesskey="n" href="#Section-4_002e33">Section 4.33</a>,
|
||||
Previous: <a rel="previous" accesskey="p" href="#Section-4_002e31">Section 4.31</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#Problems">Problems</a>
|
||||
|
||||
</div>
|
||||
|
||||
<h3 class="section">4.32 Problems on particular systems</h3>
|
||||
|
||||
<p>For IBM systems, see <samp><span class="file">README.thinkpad</span></samp>.
|
||||
|
||||
<div class="node">
|
||||
<p><hr>
|
||||
<a name="Section-4.33"></a>
|
||||
<a name="Section-4_002e33"></a>
|
||||
Previous: <a rel="previous" accesskey="p" href="#Section-4_002e32">Section 4.32</a>,
|
||||
Up: <a rel="up" accesskey="u" href="#Problems">Problems</a>
|
||||
|
||||
</div>
|
||||
|
||||
<h3 class="section">4.33 Problems on 2.6 kernels</h3>
|
||||
<h3 class="section">4.32 Problems on 2.6 kernels</h3>
|
||||
|
||||
<p>Not all drivers have been ported to 2.6. If your favorite driver is not
|
||||
in 2.6, the reason is that nobody has ported it, or the ported code did
|
||||
@@ -1845,7 +1829,7 @@ If you would like to port the driver, see the file
|
||||
Documentation/i2c/porting-clients in the 2.6 kernel tree for help,
|
||||
then send us the ported driver when you are done.
|
||||
|
||||
<h4 class="subsection">4.33.1 i2c-viapro and via686a</h4>
|
||||
<h4 class="subsection">4.32.1 i2c-viapro and via686a</h4>
|
||||
|
||||
<p>Until kernel 2.6.11, there was a PCI resource conflict between
|
||||
i2c-viapro (the SMBus driver for VIA bridges) and via686a (the integrated
|
||||
@@ -1853,7 +1837,7 @@ sensors driver for VIA bridges). This caused the second loaded driver to
|
||||
silently fail working. So do not load both i2c-viapro and via686a together
|
||||
unless you have a recent kernel.
|
||||
|
||||
<h4 class="subsection">4.33.2 Where are my EEPROMs?</h4>
|
||||
<h4 class="subsection">4.32.2 Where are my EEPROMs?</h4>
|
||||
|
||||
<p>The 2.6.14-rc1 kernel introduced the hwmon class, which groups all
|
||||
hardware monitoring drivers in a logical way. The goal was to help
|
||||
|
||||
@@ -567,8 +567,7 @@ to work.
|
||||
* Section 4.29:: Inserting modules hangs my board
|
||||
* Section 4.30:: Inserting modules slows down my board
|
||||
* Section 4.31:: Problems on particular motherboards
|
||||
* Section 4.32:: Problems on particular systems
|
||||
* Section 4.33:: Problems on 2.6 kernels
|
||||
* Section 4.32:: Problems on 2.6 kernels
|
||||
@end menu
|
||||
|
||||
|
||||
@@ -1240,13 +1239,7 @@ For board hangs, see support ticket 721 for information.
|
||||
Also @ref{Section 4.29, Inserting modules hangs my board}.
|
||||
|
||||
|
||||
@node Section 4.32, Section 4.33, Section 4.31, Problems
|
||||
@section Problems on particular systems
|
||||
|
||||
For IBM systems, see @file{README.thinkpad}.
|
||||
|
||||
|
||||
@node Section 4.33, , Section 4.32, Problems
|
||||
@node Section 4.32, , Section 4.31, Problems
|
||||
@section Problems on 2.6 kernels
|
||||
|
||||
Not all drivers have been ported to 2.6. If your favorite driver is not
|
||||
@@ -1586,6 +1579,7 @@ will email you announcement.
|
||||
@appendix Revision History of This Document
|
||||
|
||||
@itemize
|
||||
@item Rev 2.19 (JD) Removed 4.32 (Thinkpad-specific issues), 2007-09-24
|
||||
@item Rev 2.18 (JD) Removed version 1 specifics part, 2005-12-17
|
||||
@item Rev 2.17 (JD) Added 5.9 (why we don't support undocumented chips),
|
||||
removed 6.9 (doesn't apply to the new mailing list), 2005-10-05
|
||||
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
@set UPDATED 17 December 2005
|
||||
@set VERSION 2.18
|
||||
@set UPDATED 24 September 2007
|
||||
@set VERSION 2.19
|
||||
Reference in new issue
Block a user