Building Coreboot

  • Significantly easier and lower risk than I expected. A lot is already taken care of once the mainboard is selected. There are many safety and sanity checks in the build process.
  • Make sure to select “General Setup”>“Option backend to use”>“Use CMOS for configuration values” so that nvramcui and nvramtool works.
  • Even if flashing only the top chip, build for the entire 12 MB ROM. Otherwise, the machine won’t have the correct offset for the MRC cache and will cold boot when it should be resuming from suspend.

Installing Coreboot

  • I am not yet confident enough to use an external programmer with my 3612QE board, so I opted for the 1vyrain route.
  • Extracted the top 4MB of coreboot.rom using dd and once booted in the 1vyrain installer, overwrote /root/bios/X230.rom (double-check this for yourself, just going off my memory here) and let it flash the chip. This workaround to avoid having to upload my bios somewhere and connect 1vyrain to the internet.
  • After that, the bios region of the chip is unlocked. To update the bios with a new build, run sudo flashrom -p internal -i bios --ifd -w build/coreboot.rom --noverify-all
  • In the event of GRUB misconfiguration, run set prefix=(memdisk)/boot/grub, ls your way to your grub.cfg (the one in the boot partition, not the one in EFI) and get back into Linux with configfile (disk,part)/path/to/your/grub.cfg

Observations

  • Boot times are fast, only 2.5 seconds to the LUKS password prompt
  • All components are recognized and seem to work as usual.
  • Battery life is good. About 1 W increase in idle power consumption over the regular BIOS.
  • The wifi card changed from wlp3s0 to wlp2s0
  • The 3612QE CPU, QM77 chipset, and Coreboot all have documented ECC support. Regardless, the machine still does not boot if ECC RAM is installed. Bear in mind that I only had one such stick of RAM (SK Hynix EP3L-12800S 8GB) to test.
  • The 3612QE board now charges with a stock 65W charger.
  • I am using the ME Disable option in nvramtool for now. Eventual goal is to use me_cleaner.

Quirks

  • The power button LED occasionally does not light when booted. No obvious cause yet and no adverse effects associated with it.
  • Rarely and without obvious cause, the reported battery percentage suddenly drops to 0. Immediately upon plugging in the charger, the correct percentage comes back.
  • This may or may not have to do with the installed 9-cell Kingsener battery. My other corebooted X230 with an i5-3320M and DTK 6-cell has been used equally as much without ever encountering this issue.
  • EDIT: the issue is indeed related to the Kingsener battery. The battery also jumps back to a normal percentage within a few seconds even if I don’t plug in a charger. No work lost due to the issue yet.