Thinkpad x230 (and why it's fun to flash your own BIOS)

(Updated Sat 11 Jul 2020 12:05:50 AM EDT)

BIOS

Banjo BIOS

What? You mean your BIOS splash screen isn't Banjo Kazooie?

Since the x200 supported by coreboot I decided to free the BIOS via hardware flashing, specifically using the skulls project as the base. Pretty risky but since I got the x230 for semi-cheap ($200ish?) I thought I might as well try. I got an SOIC clip from Amazon (this one), opened the x230 and exposed both BIOS chips, and flashed both of them with the help of my T480 as the host.

It was… uhh, nerve wracking as hell, but after getting the clip in JUST the right spot, everything worked and it flashed successfully. I didn't lock it from software flashing because I wanted to flash it from the machine itself and add my own splash screen, just for cool bragging rights (aka, what you're reading right now). I also thought it might be cool to add my contact info burned into the BIOS, so if someone steals it, they would have to be semi-hardcore and reflash the BIOS to get my name out.

The splashscreen image you have to make (if you want to make your own) is a bit odd to set up correctly. The skulls docs say the JPG must "Progressive" turned off and "4:2:0 (chroma quartered)" Subsampling which is all fine and dandy, but what they DO NOT tell you (or maybe I'm naive for not considering) is your image must be 1024x768. Meaning you have to crush your image intentionally since the display size of the X230 is 1366x768. Kind of weird but in the end it looks fine and I was able to with GIMP fairly easily.

TODO: Add example of OG banjo splash

I still want to see if there's any other tweaks I can add, mostly relating to power saving at the BIOS level/turning off ports I won't use, etc, but I haven't explored that yet at all.

Screen

I've done nothing yet, but eventually I want to mod it to be a 1080p screen instead of the default 1366x768, there are mod kits you can get like this one but getting the correct screen that's compatible is a little daunting.