In the night I worked with a fellow hacker on flashing coreboot on my Lenovo X220. The hardest part was to build the ROM itself, especially getting all those blobs you need.

These are the things I stumbled across:

  • Setting the blob’s path and filename in menuconfig, not using variables
    • The $(MAINBOARDDIR) vars didn’t work for me.
  • SeaBIOS is only capable to use MBR.
    • You might need to change your disk from GPT to MBR. I made it without any data loss. After changing from GPT to MBR, I
      • repartitioned the /boot partition,
      • installed grub2+config and the linux-kernel again,
      • changed /etc/fstab since I chose another file system.
  • SeaBIOS might not recognise your harddrive at first boot.
    • CTRL+ALT+Delete makes it work. I configured SeaBIOS to restart quickly after nothing has been found. This way it works. I’ll talk with others about it to see how they solved that.
    • UPDATE: Using a new hard drive with a faster controller fixed the problem of finding the hard drive on cold boot.
  • Network device names might change.
    • If you use the old fashioned device names, don’t worry about it.
    • If you use the poetteringized™ unique network device identifiers like “wlpXsY” then they might change its name. Using netctl you might
      • change the configs of each SSID (see /etc/netctl, notice that with renaming only the job isn’t done),
      • disable/reenable network device specific systemd services with its new name.