12 KiB
title | x-toc-enable |
---|---|
Спільне Sandybridge/Ivybridge/Haswell | true |
Для ivybridge конкретно (тобто, thinkpad X230, T430) на Lenovo ThinkPad, можливо прошитись з мікропрограмного забезпечення постачальника до Libreboot, без використання кліпси, але деякий розбір досі потрібен. Це може бути вигідно, якщо ви хочете заощадити кошти за допомогою некупівлі обладнання для зовнішньої прошивки. Все, що вам потрібно, це металевий пінцет або щось подібне, за допомогою якого можна створити коротке замикання між двома провідниками.
Дивіться: внутрішнє прошивання ivybridge
Отримання бінарних блобів
Якщо ви побудували ваш rom з джерельного коду, тоді всі блоби загалом завантажено автоматично. Деякі плати, однак, не мають джерел для всіх блобів і вимагають ручного вилучення блобів. Якщо ви пробуєте побудувати rom з джерельного коду та lbmk виходить з ладу при розміщенні блобів, ви може вилучити їх з існуючої резервної копії rom. Щоб зробити це, почніть з отримання повної резервної копії rom для вашої машини.
Після того, як ви підключили програматор і зчитали обидва флеш-чіпи, вам доведеться об'єднати два образи в якості одного rom. Загалом, образ 4Мб є верхнім і образ 8Мб є нижнім. Для створення файлу rom, придатного для читання, просто виконайте конкатенацію обох файлів.
cat bottom.rom top.rom > full_backup.bin
Створивши резервну копію rom постачальника, ви можете використати lbmk для автоматичного вилучення потрібних блобів. Сценарій вилучення блобів приймає ім'я плати в якості першого аргумента та шлях до rom в якості другого аргумента. Наприклад, ось те, як би ви вилучили блоби з резервної копії rom x230.
./blobutil extract x230_12mb full_backup.bin
Майте на увазі, що команда зверху має бути виконана з кореня директорії lbmk. Дивіться інструкції побудови для більших подробиць.
Введення блобів в існуючий образ
Образи випусків не можуть включати конкртні блоби з юридичних причин. Тому ви не можете напряму прошити образ випуску на свою плату. Ви маєте виправити rom випуску необхідними блобами і потім прошити їх на свою плату.
Lbmk включає сценарій, який автоматично введе необхідні блоби в файл rom.
Сценарій може визначити плату в автоматичному режимі, якщо ви не змінили ім'я, але ви можете також встановити
ім'я плати самостійно з використанням флага -b
.
В порядку для введення необхідних блобів в образ rom, виконайте сценарій з кореня lbmk та вкажіть на образ rom. Наприклад:
./blobutil inject -r x230_libreboot.rom -b x230_12mb
Опціонально, ви можете використовувати цей сценарій для модифікації mac-адреси rom з флагом -m
.
Наприклад:
./blobutil inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
ПРИМІТКА: Машини Haswell ідуть з mrc.bin
або без, залежно від
конфігурації образа ROM. Ці конфігураційні файли ROM мають mrc.bin
: t440pmrc_12mb
та w541mrc_12mb
. Ці конфігураційні файли ROM мають вільний MRC: t440p_12mb
та w541_12mb
- критичним є те, щоб вибрати правильний, коли використовуєте
флаг -b
в команді blobutil inject
. Наприклад, якщо ви
використали -b t440p_12mb
на образі ROM, який насправді відповідає
t440pmrc_12mb
, тоді затребуваний файл mrc.bin
не буде додано
і той ROM не завантажиться після прошивання.
ПРИМІТКА: В архіві src Libreboot 20230319 або git tag, метод blobutil
зламано на конфігураційних файлах Haswell, які вимагають mrc.bin
, тому він
не введе mrc.bin
на правильному офсеті. Це було виправлено в ревізіях після
випуску, і буде доступно в наступному випуску після цього. Прочитайте
оголошення оновлення Libreboot
20230319 для більшої інформації.
ПРИМІТКА: редактор MAC використовує nvmutil
, про який ви можете прочитати більше в
документації nvmutil.
**УВАГА: Це поламано в архіві src Libreboot 20221214. Він виходить з ладу при спробі використання cbfstool, в зв'язку з проблемною перевіркою в сценарії. Це виправлено в нещодавніх випусках Libreboot або ревізіях. Виправлення наступне:
Відредагуйте рядок 137 в resources/scripts/blobs/inject
. Рядок в 20221214 каже
це:
make -C cd coreboot/default/util/cbfstool || Fail 'could not build ifdtool'
Модифікуйте його казати це:
make -C coreboot/default/util/cbfstool || Fail 'could not build cbfstool'
ТАКОЖ:
Коли створюєте MAC-адресу, той самий сценарій намагається побудувати nvmutil
з /util/nvmutil
, в Libreboot 20221214. Це було знайдено 10 січня
2023 року, засновуючий на звітах користувачів на IRC. Виправіть це подібним чином (вже виправлено, в останньому
Libreboot з Git):
Рядок 30, він каже:
make -C /util/nvmutil || Fail 'failed to build nvmutil'
Змініть його казати:
make -C util/nvmutil || Fail 'failed to build nvmutil'
До того часу, поки це не буде відредаговано відповідним чином, сценарій введення вийде з не-нульовим статусом, та блоби не буде введено.
Це було виправлено, в наступних після Libreboot 20221214 випусках, але ви маєте застосувати виправлення самостійно, якщо використовуєте той випуск.
Розділення Rom
Ви можете використовувати dd
для легкого розділення вашого rom на дві окремі порції для
зовнішнього прошивання.
Наприклад, таким чином ви би поділили rom 12Мб для встановлення:
dd if=libreboot.rom of=top.rom bs=1M skip=8
dd if=libreboot.rom of=bottom.rom bs=1M count=8
Ви би потім прошили чип 4Мб з top.rom
та чип 8Мб з bottom.rom
.
Для більшого образа rom, та ж сама логіка була би застосована.
В dd skip
означає, що ви бажаєте, щоб програма проігнорувала перші n блоків, де
count
означає, що ви хочете, щоб вона зупинила запис після n блоків.
Коли ваш образ rom поділено, ви можете перейти до прошивання.