Всё разбирается на примере Lenovo x220 с уже прошитым Coreboot и установленной Ubuntu. Blob уже файлы извлечены.

Для работы с Linux Coreboot надо подсунуть просто три blob файла из оригинальной прошивки

  • flashregion_0_flashdescriptor.bin
  • flashregion_2_intel_me.bin
  • flashregion_3_gbe.bin

Linux’у не требуется VGA драйвер BIOS для загрузки, а вот Windows без этого не может.

Последовательность действий:

  • sudo apt install -y bison build-essential curl flex git gnat-5 libncurses5-dev m4 zlib1g-dev

  • git clone https://review.coreboot.org/coreboot

  • cd coreboot

  • git submodule update --init --checkout

  • mkdir -p 3rdparty/blobs/mainboard/lenovo/x220

    Копируем и переименовываем в эту директорию три уже извлечённых blob файла descriptor.bin, me.bin, gbe.bin.

Теперь надо добыть VGA драйвер.

Первый вариант, это взять уже извлечённый другими людьми, например можно взять вот здесь или здесь.

MD5 у этих файлов совпадают

koala@x220 ~/test123> sha512sum *
10c34086586f67ed76cb286b7918d5f372fd7a4d1f67e685946a9f1f7a43be903a435b1e186dcf3339c8faa6656bc69c395b5ce10a56ab38d309f251e31b00f4  vga-8086-0126-1.bin
10c34086586f67ed76cb286b7918d5f372fd7a4d1f67e685946a9f1f7a43be903a435b1e186dcf3339c8faa6656bc69c395b5ce10a56ab38d309f251e31b00f4  vga-8086-0126-2.bin

Второй вариант — это извлечь самостоятельно из своей оригинальной прошивки.

Сделать это можно несколькими способами. Разберём самый простой. Используем утилиту UEFITool, проще всего будет собрать из репозитория:

sudo apt install qt5-default build-essential
git clone https://github.com/LongSoft/UEFITool
cd UEFITool
qmake uefitool.pro && make

После сборки можно запускать ./UEFITool

Откроется графический интерфейс, в котором надо выбрать файл прошивки File — Open image file

Находим нужный драйвер File — Search — Text, снимаем галочку с Unicode и ищем “VGA Compatible BIOS”.

Щёлкаем на найденном файле, откроется в главном окне и уже там в контекстном меню — Extract as is.

UEFItools coreboot

Сохраняем в каталог, где уже лежат остальные blob 3rdparty/blobs/mainboard/lenovo/x220/

Мой файл получился с такой же MD5 хэш суммой, как у двух других людей.

koala@x220 ~/N/B/x220> sha512sum vgabios.bin
10c34086586f67ed76cb286b7918d5f372fd7a4d1f67e685946a9f1f7a43be903a435b1e186dcf3339c8faa6656bc69c395b5ce10a56ab38d309f251e31b00f4  vgabios.bin

Второй важный шаг — это задать этот драйвер в nconfig

make nconfig

Devices

 │                   [*] Add a VGA BIOS image                                                                                                │
 │                       (3rdparty/blobs/mainboard/$(MAINBOARDDIR)/vgabios.bin) VGA BIOS path and filename                                   │
 │                       (8086,0126) VGA device PCI IDs

Дальше, как обычно, сохраняем F6 и выходим F9.

Компилируем Coreboot

make crossgcc-i386 CPUS=4
make iasl
make

Прошиваем

sudo flashrom -p internal:laptop=force_I_want_a_brick -c MX25L6405 -w build/coreboot.rom

Драйвер у меня заработал не с первого раза. Сначала я пытался его подсунуть в каталог с Coreboot, где до этого уже собирал без него. Заработало только с чистой репой Coreboot, где первая компиляция была уже с всеми подготовленными blob файлами.