158 lines
12 KiB
Markdown
158 lines
12 KiB
Markdown
---
|
||
title: Спільне Sandybridge/Ivybridge/Haswell
|
||
x-toc-enable: true
|
||
...
|
||
|
||
Для як використовувати зовнішній програматор дивіться [керівництво прошивання 25xx NOR](/docs/install/spi.html)
|
||
|
||
Intel Flash Descriptor означує, що перші 5Мб з 12Мб завантажувальної флеш-пам'яті складається з
|
||
регіонів Intel Flash Descriptor, GbE та Intel ME. Фінальні 7Мб тої
|
||
12Мб флеш-пам'яті є регіоном BIOS. Однак, ця 12Мб флеш-пам'ять є фізично розділеною
|
||
на флеш-пам'ять 8Мб NOR та флеш-пам'ять 4Мб NOR flash; операційна система бачить продовжувані 12Mб флеш-
|
||
пам'яті, з нижчою частиною, яка є вмістом флеш-пам'яті 8Мб NOR та вищим
|
||
вмістом, що є флеш-пам'ять 4Мб NOR.
|
||
|
||
Не хвилюйтесь надто багато про те, до якого флеш-чіпа ваш програматор під'єднано.
|
||
Flashrom вийде з ладу, якщо ви спробуєте прошити образ з неправильним розміром для чіпа, до якого ви
|
||
під`єднані.
|
||
|
||
Образи libreboot, випущені або побудовані для плат haswell або ivybridge ідуть як образи 12/16Мб.
|
||
Розмір образа в питанні посилається на загальний розмір *обох* чипів.
|
||
В порядку для того, щоб прошити повний образ зовнішньо, ви маєте поділити образ на дві секції для вміщення в розмір двох чипів, які ви бажаєте прошити.
|
||
Це керівництво покаже приклади для Thinkpad X230, але вся інформація буде застосована для інших плат.
|
||
|
||
Плати Ivybridge вимагають *хоча би* intel management engine в порядку для завантаження.
|
||
Плати Haswell додатково вимагають блоб mrc.
|
||
Ні один з цих блобів не є перерозповсюджуваним, тому образи для цих плат має бути побудовано з джерельного коду або виправлені з затребуваними блобами.
|
||
|
||
Якщо ви плануєте прошити rom випуску для вашої плати, тоді ви потребуєте лише виправити існуючий rom.
|
||
Альтернативно, ви можете спробувати побудувати rom з джерельного коду для вашої плати.
|
||
|
||
Внутрішнє прошивання
|
||
-----------------
|
||
|
||
Для ivybridge конкретно (тобто, thinkpad X230, T430) на Lenovo ThinkPad,
|
||
можливо прошитись з мікропрограмного забезпечення постачальника до Libreboot, без використання
|
||
кліпси, але деякий розбір досі потрібен. Це може бути вигідно, якщо ви
|
||
хочете заощадити кошти за допомогою некупівлі обладнання для зовнішньої прошивки. Все, що вам потрібно,
|
||
це металевий пінцет або щось подібне, за допомогою якого можна створити коротке
|
||
замикання між двома провідниками.
|
||
|
||
Дивіться: [внутрішнє прошивання ivybridge](ivy_internal.md)
|
||
|
||
Отримання бінарних блобів
|
||
----------------------
|
||
|
||
Якщо ви побудували ваш 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.
|
||
Дивіться [інструкції побудови](/docs/build/index.uk.html) для більших подробиць.
|
||
|
||
Введення блобів в існуючий образ
|
||
------------------------------------
|
||
|
||
Образи випусків не можуть включати конкртні блоби з юридичних причин.
|
||
Тому ви **не можете** напряму прошити образ випуску на свою плату.
|
||
Ви маєте виправити 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](../../news/libreboot20230319_update.md) для більшої інформації.**
|
||
|
||
ПРИМІТКА: редактор MAC використовує `nvmutil`, про який ви можете прочитати більше в
|
||
[документації nvmutil](nvmutil.md).
|
||
|
||
**УВАГА: Це поламано в архіві 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 поділено, ви можете перейти до [прошивання.](/docs/install/spi.html)
|