x220 Coreboot Setup

Configuration and helper script for easy build, assembly and installation of Coreboot on the Thinkpad X220

This setup keeps the descriptor, gbe config and Intel ME from the stock BIOS, neutralizes the Intel ME by removing most of its partitions with me_cleaner and prepares a flash image with Coreboot using SeaBIOS+GRUB with LUKS+LVM support as the default payload

Usage:

./cb-helper operation [parameters]

Alternatively the auto-run script can be launched to automatically run through all the operations in order, provided a valid BIOS stock image as been placed in "binaries/bios.bin"

Configs

coreboot.config - Coreboot build configuration

grub.config - GRUB build configuration

grub.cfg - GRUB configuration and boot menu

grub_memdisk.cfg - GRUB configuration inside the memdisk

grub_modules.conf - GRUB modules, installed and loaded

Operations

download_code

Download repositories for Coreboot, GRUB and me_cleaner

build_utils

Build useful utilities like cbfstool and idftool

split_bios

Splits the stock bios ("binaries/bios.bin") into descriptor, gbe configuration and Intel ME

neuter_me

Neutralize Intel ME by removing most of its partitions using me_cleaner

pre_build_coreboot

Copy config files and build Coreboot's toolchain

build_coreboot

Build Coreboot

build_grub

Build GRUB

assemble_grub

Assembles configurations and resources in a nice usable GRUB payload

config_seabios

Configure SeaBIOS to boot GRUB directly from the CBFS volume

install_grub

Install the GRUB payload and configuration in the CBFS volume

flash operation programmer

Read or write flash chips with a multitude of programmers

Valid operations: check, read, write

Valid programmers: internal, ftdi, u2, rpi

Dependencies

Debian 9

sudo apt-get install git wget build-essential gnat flex bison libncurses5-dev zlib1g-dev libfreetype6-dev unifont python3 sudo apt-get build-dep grub

Attribuition

config/grub.cfg, config/grub_modules.conf and misc/usqwerty.gkb are based on their Libreboot counterparts which are released under the GNU GPLv3

The font DejaVuSans Mono is used in GRUB and is licensed under a free license

Converted to bitmap with the following command

grub/grub-mkfont --size=24 --bold -o "misc/dejavusansmono.pf2" /usr/share/fonts/TTF/DejaVuSansMono.ttf

Licensing

This entire project is licensed under the GNU General Public License Version 3