my Way to Coreboot

In the last few months I have made my experiences with coreboot and was thinking it might need some more recognition!

The first time I heard about it was from Luke Smith and I was pretty much hooked on the idea of running your own BIOS on your machine. The only problem was, I didn’t have any compatible hardware! A while later I got my first Thinkpad, a X201t with an i7, and also bought a 120GB SSD. I overpaid a little bit with 150 Euros on the laptop, but I was happy I finally got myself a cool laptop. :)

When I then tried to thoroughly read through the coreboot wiki (retired by now), I was kind of overwhelmed with all the information. I managed with cloning and building the Cross-Compiler, but when it got to using my RapberryPi to program the SPI chip on the mainboard I didn’t dare to actually use it, as I was scared of messing up and killing the laptop which I already used on a day-to-day basis at this point.

In the end I just didn’t read enough documentation and wasn’t able to use the I/O from the RPi. The problem was me trying to run 64-bit ArchLinux ARM on the RPi, which didn’t support I/O at that point. Oh and I also compiled the Cross-Compiler on only one thread because I was stupid, which took hours. x)

So I kept looking for cheap usable Thinkpads, until I was able to find 2 X220 for only 150 Euros. This time I pulled through and got everything working:

  • 32-bit ArchLinux ARM

  • Cross-Compiler

  • connecting the right I/O pins

  • reading vendor BIOS with flashrom

  • extracting binary blobs with ifdtool (coreboot)

  • compiling the new BIOS with coreboot and SeaBios as a payload

  • flashing new BIOS with flashrom

The only problem I had, was using the same binary blobs for both X220, especially the GigabitEngine (GBE). This resulted in both laptops having the same MAC-address on the ethernet port. Since I backuped the vendor BIOSes beforehand I was still able to flash that part of the chip afterwards.

There were some more hurdles like setting read/write permissions in the coreboot setup and disabling (crippling) the Intel Management Engine, but every problem I had was solvable and the #coreboot IRC channel was a big help!

To this day I am using coreboot on every one of my notebooks (even that shitty chromebook, I already tried to get rid off, runs coreboot out of the box). At the moment I am using a Thinkpad X200 that I got for a steal and have grub2 as a payload. That means I have the grub.cfg within the BIOS and I dont need any bootloader at all on my harddrive. I am living a happy life now completely without IME and a super quick startup.

I am also still planning to get SeaBios working as a secondary payload. Because the only problem I have with running grub is, that it is kind of a pain to boot from USB.

If you are also thinking about using coreboot, I would say go for it as long as you don’t have a problem with fiddling around for a while until you get it working! Obviously tho, the time spent on compiling coreboot etc. will not be saved by quicker startups in the next few months but it’s still fun and also about being free.