Skip to content

Resurrecting the ThinkPad X201

February 24, 2023 | 12:00 AM

The X201

The X201 is a unique model: It’s one of the last ThinkPads to have a 4:3 screen, status lights, and a Core i5 CPU at the same time. It’s an interesting collector’s item, and it’s still quite useable in 2023 if you temper your expectations. I found one on the second hand market for a small amount of money. Less than a big mac menu. It was marked for parts, but the seller claimed that it works.

I did not hesitate much and decided to buy it.

Corrupted BIOS

The laptop arrived with no RAM. Since it’s well documented the X201 has upper limit of 8GB (4G+4GB), I tried to assemble some configuration from what I’ve had available. I populated the slots with 2G(1R)+4GB(2R) modules.

After that, I tried to boot it up. The status lights blinked, and nothing happened. I thought it was broken, but when I left it sit for around a minute, the familiar screen appeared.

Boot logo

I tried to go into bios, and it looked functional. But after going into the config menu, it froze. I read somewhere that this might be related to some invalid Intel AMT config, but there was no way for me to change it. The laptop also got so hot that the heat sink burned my fingers. Fan eventually turned on, but it was somehow delayed.

Booting up a Linux distro from the USB drive worked (after a very long delay), but the fan issue persisted. There was definitively something wrong with the bios/firmware. And that’s an answer to the question about it’s suspicious price.

Repairing the BIOS

There’s no easy way around this. The surgery is needed. We need access to where the BIOS is stored. Physically.

MX25L6405

The BIOS flash chip (MX25L6405) is located under the keyboard, next to a larger tantalum capacitor and CMOS battery. I soldered wires to its legs, since I have no “flash chip clip”. For a flashing device I decided to use a Raspberry Pi Pico, with the stacksmashing’s pico-serprog firmware. The project should be compiled with a pico-sdk 1.1.0, but there are some precompiled binaries inside this issue. The firmware is compatible with the standard flashrom tool.

Reading the flash

Try to read the flash at least two times. This ensures that the connection is reliable (match the serial port name with your own).

flashrom -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -p serprog:dev=/dev/ttyACM0:115200 -r read1.bin

flashrom -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -p serprog:dev=/dev/ttyACM0:115200 -r read2.bin

Check the two images with diff tool:

diff read1.bin read2.bin

The tool should not return anything. If they differ, it will let you know :)

Read failures

I was not able to get two consistent readings. The problem was that I was not able to provide enough power for the chip. Since it’s soldered in circuit, the power lane was connected to some other device that pulled way too much power.

This issue was tackled by providing an additional 3v3 PSU parallel to the Pico’s power pins. Some unused dev board works good enough for this.

Flashing process

After the read consistency was confirmed, I flashed this bios backup to it using this command:

flashrom -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -p serprog:dev=/dev/ttyACM0:115200 -w flash1.bin

After this, the wires were soldered off.

IT ALL WORKS NOW!!!

The bios worked flawlessly after this repair. No more freezing or fan issues, and the very long boot delay was gone.

RAM issues

The X201 is known to be picky about its RAM. This is due to limitation of the first generation i5 mobile CPU. This issue was discussed on the coreboot mailing list. I decided to try single 8GB(R2) module, but unfortunately it was not stable. The DE started up and a few seconds later it just froze. So the 6GB configuration that I have currently is good enough. The fact is that this machine is quite old and throwing more RAM at it would not make it much faster.

Overheating

12 inch laptops do not go well with 35W power hungry CPUs, modern apps and 13 years of security mitigations. The laptop does get quite hot. So hot that the VGA port on the left burns skin. To fix this, I decided to install the thinkfan utility. I recommend this, as it makes it much more useable, and it throttles much less.

Benchmark

I like to test my computers for JS performance, because that’s how I use them most - for web browsing. For a 2010 CPU, the performance is not too shabby. It scored 65 points in Speedometer 2.0, that’s about 10 points less than 2015 MacBook Pro.

Coreboot support

X201 is supported by coreboot, but it has some show stoppers, like this issue with Turbo Boost. Not having a turbo could save you some battery life, but it would hurt the performance badly. Not worth it until it’s fixed.

Conclusion

If you have a ThinkPad X201 with a damaged BIOS, there is hope. Reflashing the corrupted BIOS can be a viable solution, but it is not without risks. It is crucial to follow the instructions carefully and exercise caution throughout the process to avoid causing further damage to your computer. I don’t take any responsibility for any bricked devices caused by this post.

This process was quite fun and I learned much. It was definetly worth it, since this makes a great backup laptop.