Всё разбирается на примере 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 файлами.

Мой телеграм-канал .