mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-10-16 10:49:31 +00:00
Update URI of Joe's site.
Add link to pwcrack.com.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2406 7894878c-1315-0410-8ee3-d5d059ff63e0
111 lines
4.9 KiB
Plaintext
111 lines
4.9 KiB
Plaintext
|
|
**** WARNING: IBM Thinkpad users should not install lm_sensors! ****
|
|
|
|
The eeprom of some IBM Thinkpads have 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 have made several changes in release 2.6.5 to minimize the
|
|
chance of corruption. Later evolutions were made and the current state is:
|
|
|
|
1) Sensors-detect accesses VPD information in the BIOS to identify IBM
|
|
systems. If it finds the VPD structure (which is IBM-proprietary),
|
|
sensors-detect will print a message and exit, unless the system is
|
|
listed in a growing white-list. We add system signatures to the list
|
|
when users report that a given model has been tested to be safe.
|
|
|
|
2) The sequence of probes in sensors-detect has been changed so that
|
|
24RF08 eeproms are not corrupted. This *should* prevent corruption
|
|
of 24RF08 eeproms in any non-IBM systems in most cases.
|
|
|
|
3) 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, even if sensors-detect was not used.
|
|
|
|
4) 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) 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 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. We were planning to refine refine the system detection so that
|
|
only those models containing 24RF08's are blacklisted. But it looks like
|
|
we will not get sufficient cooperation from IBM to implement a reliable
|
|
blacklist. For this reason, we will now be using the other approach:
|
|
a "white list" of known-to-be-safe systems. This is the only safe way.
|
|
|
|
Systems will be added to the white list at a slow rate, on user report.
|
|
Basically, users wanting to use lm_sensors on their IBM systems, either
|
|
because they know for sure that the system doesn't have the 24RF08 chip,
|
|
or because they like playing with fire, have to bypass the securities we
|
|
have implemented, and then report (hopefully) success, then we add their
|
|
system signature to the white list. Note that this list is only
|
|
implemented in sensors-detect at the moment, not the i2c-piix4 bus
|
|
driver.
|
|
|
|
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.
|