Coreboot on x230 (GRUB2 payload)

Few weeks ago I bought thinkpad x230. I’m not big fan of old thinkpads, only bought this model because it’s newest you can get with coreboot (or was, by ~april 2017). It’s ok I guess but why are they worshipped as much on reddit I can’t understand.

After nuking windows and installing arch (really enjoyed gentoo but packages (even on unstable) move too slow for me) the time came for flashing the device. I won’t provide you any help on this here, since you can read it somewhere else).

I flashed with raspberry pi 1 model b (finally found some work to do! it was ‘idling’ since 2013), few jumper cables (shortest you can get, if you live in poland and wish to buy from allegro, search for “kable żeńsko żeńskie arduino” - I have no experience in electronics and it took me a long time to find it) and pomona 5250. Connect as in this.

Check if you are connected properly before flashing and do few backups of bios before. I didn’t connect 3.3V cable and had power cable connected to the laptop. It might (?) cause some problems (internet told me so) but I flashed over 30 times recently and it’s still ok. You might wanna also see this video.

Compared to what was next, it was all easy.

Then compiling coreboot with some options came. It’s really kinda hard to find any information without reading code. I wanted grub2 as a payload cause I don’t boot anything but Linux. It just didn’t build. Downgraded flex (2.6.4-1 had/have some problems (?) ) and one compilation error later it still didn’t compile. It’s probably some typo somewhere.

I went for seabios for few weeks and later tried again with new release, still same. Tried FILO, which could read from my keyboard and seemed to random bind keys to characters, maybe you should’nt even think to use it, but where do you get this information?

Anyway, some time later decided to build payload separately with these comands:

$ ./autogen.sh

$ ./configure –with-platform=coreboot

$ make

$ make default_payload.elf

You may also want to change/remove “Welcome to GRUB!” message and add modules usbserial_pl2303 and usbserial_ftdi (grub echo’ed warnings at boot, I don’t even use serial (?) ).

Add this elf file into coreboot config and compile. Then add config file into coreboot.rom. You can find info on that here. And it should boot. That’s it. Sounds really easy if you know what are you doing.

If somehow my post made you flash coreboot on your x230, write me at ‘i dot this_domain’ with your boot time (just coreboot or with payload, whichever you want). Coreboot was supposed to be faster than stock bios. It’s still kinda slow (even 3-4 seconds from cold boot), not a problem for me but kinda hoped I could show off friends my boot time.

More info (from Daniel) - no build issues on Fedora 25, so it all might be Arch related problems. Also, same ’long’ cold boot time with i7-3520M model.

September 2017: If you encounter kernel panic after shuting down (with suspending before), blacklist mei_me module (why it’s loaded by default ?)