[ltp] Password recovery (T22) success/howto.

Richard Neill linux-thinkpad@linux-thinkpad.org
Wed, 17 Jan 2007 21:25:04 +0000


Dear All,

Hope this may be of some use. I just bought a 2nd hand T22, which the 
owner couldn't use, because the power-on password was set (and unknown).
The recovery was quite simple, but not straightforward, so I'm 
documenting it here.

There's a good (Windows-based) tutorial here:
http://sodoityourself.com/hacking-ibm-thinkpad-bios-password/
(also read the comments)

1)For the T22, the EEPROM is located under the DIMMs next to the bottom 
of the case. It's easy to access. The chip is the 14-pin version 
described here:
http://www.allservice.ro/forum/dl/simple-i2cprog.pdf

2)Solder carefully, and tape the wires to the back of the case. A 
standard 15Watt iron with a sharp tip is fine; you don't need a surface 
mount soldering iron. Should a mishap occur, Flux impregnated, braided 
copper "Desoldering braid" works miracles at wicking away surplus solder.

3)The ground can connect to anywhere convenient - but note that the 
"obvious" place (the DIMM retaining springs) is not actually grounded.

4)The serial interface is very easy to build, and works as expected. 
However, I was unsuccessful in my initial attempts, using a USB-Serial 
adapter. You really need to use a proper (hardware) serial port for 
this, because the voltage levels are higher. I used my A22p for this.

5)The EEPROM reading software, r24c01.exe  works fine under WINE with 
Linux. (Just create a symlink in ~/.wine/dosdevices named com1, pointing 
to /dev/ttyS0 for your serial port.) The baud rate etc is automatically 
set by the reader software.

6)Read the EEPROM at least 3 times consecutively, and do a bytewise 
compare with `cmp`. If they don't match exactly, you have had an 
incorrect EEPROM read, which probably denotes that the serial port isn't 
up to spec).  The file is exactly 1024 bytes long.

7)If you look at the binary dump with hexedit, it looks like garbage. My 
EEPROM begins with the string:   SER#

8)At this point, you need to run ibmpass2.exe to decode (uncompress? 
translate?) the EEPROM dump. Sadly, this program wouldn't run under WINE 
- I have no idea why, but I needed to use XP. [This might change, with 
luck!]

9)You should now get the Power-on password and supervisor password. 
These are located at location 0x338 (and maybe 0x340). The font is 
unhelpful - it's impossible to distinguish '1','l', '0', 'O'.

10)The password on the Thinkpad is limited to 7 characters. (Maybe less; 
more will be ignored). These characters are restricted to (about)
  [0-9A-Z;_-]
It is NOT case-sensitive.  (I found this out by experiment with my A22p, 
which has a known Power-on password).


11)This process should work exactly  as above for most modern ThinkPads.
Very old machines (770 and earlier) need some extra tweak. Newest 
machines (t60 and so) need some other process to deal with the TCPA chip 
- it's documented, but I didn't read it.
The Hard disk password is more secure than the Power-on password, and is 
stored within the disk itself. It can't be recovered in this manner.


12)Lastly, the ThinkWiki has a section here:
http://www.thinkwiki.org/wiki/Maintenance#Recovering_BIOS_passwords
which probably needs some attention.

Hope that's useful.

Richard