Збираємо образ bios з efi-капсули або - як вийняти з интеловского файлу бінарник для прошивки на

Останнім часом шибко почастішали прохання зробити з того, що лежить на сайті Intel під виглядом прошивки - то, придатне для перешивки на программаторе, чи то пак образ BIOS (точніше - образ EFI).


EFI - НЕ BIOS. Навіть букв в назвах різну кількість. А якщо це ще й на платі від Intel (знову відмінне кількість букв в назві) - виходить зовсім тяжко. Спробуємо таки розібратися, при цьому без поглиблення в дуже тонкі матерії, а більше з прагматичним ухилом а-ля "зробити-прошити-забути".

Полуспособ номер один - пожвавлюємо через BootBlock

Спосіб номер два - збираємо прошивку


Якщо попередній полуспособ з якоїсь причини не підходить, доведеться розбиратися щільніше. Отже, робимо знижку на те, що альфа Патчер є альфою і що всі варіанти відразу описати не зможу.

CapsuleToImage

А поясніть, будь ласка наступну річ.
Користуюся зазначеним альфа патчером.
Роблю, як і написано. Зберігаю бутблок.
Але! Що бентежить!


По-перше не працює
По-друге ось картинка того, що збереглося (початок)

Хлопців, як взагалі ця програма працює? Як можна вставити вихід з неї в заготовку?
Я, хоч убий, не збагну як перша виконувана інструкція при такому виході повинна потрапити в FFFF: FFF0. Або потрібно писати програму, щоб вона по 16 байт переписувала. або що. Поясніть будь ласка.

1. Необов'язково це має бути jmp (тобто можна перекрутити купою інших способів для передачі управління в потрібну точку), хоча зазвичай виробники не страждають збоченнями.
2. Необов'язково jmp буде першою ж інструкцією по 0xFFFF: 0xFFF0.
3. Необов'язково код операції jmp буде дорівнює 0xEA.
4. Тобто bootblock у вас цілком адекватний.

-= Материнська Intel DZ68DB = -
"Навчити" виробником запаривает себе саму при перепрошивки БІОС штатними засобами (з мого досвіду з двома материнськими - F7 точно, з Win може просто нічого не оновитися або збитися налаштування БІОС, материнська залишається працездатною). Треба обов'язково включати параметр в Біосе (за замовчуванням Disabled) "Flash Update Sleep Delay" (якась відстрочка при оновленні).

"Розтин" показало, що биос потер область FFS (первісної ініціалізації, з SecCore) і не встиг нічого записати замість (тому що він сам же при перепрошивки зробив reset або power cycle).

-= Апаратна частина = -
Intel на матерях використовує мікросхеми для зберігання БІОС з інтерфейсом SPI. У мережі має ходіння програма і схема програматора spipgm, створеного чехом (потрібно 4 резистора і барарейку). Підключатися треба безпосередньо до контактів самої мікросхеми ПРЯМО НА ПЛАТИ. Використовується спеціальна колодочка або ж підручні засоби. У моєму випадку використовував шматочки з IDE-шлейфа на 40 пін. Відокремити від нього дві групи по 4 проводка в кожній. Акуратно знімається ізоляція з одного боку провідників довгою 4-5 мм, необхідно зачищати саме відступивши від краю (обрізи) кабелю щоб залишилася його незачищену частина ізоляції фіксувала провідники, не давала їм розпушує. Ці зачищені частини потрібно поєднати з ніжками мікросхеми і надійно зафіксувати. Попередньо необхідно припаяти ці шматочки шлейфу до резисторам, LPT-роз'єму і відсіку для батарейок (деякі через кілька діодів підключають до +5, у мене живиться від двох акумуляторів типу AA; запітиванія від батарейки, знятої з материнської плати швидко садить цю батарейку і, можливо , батарека повинна бути обов'язково на платі).

Вона присвячена процедурі прошивки плати як програмно (коли плата функціонує), так і з апаратним стороннім программатором. Нас цікавить другий варіант і особливо стор. 25 документа ( "Step 5. Prepare the Target PC").

Процедура ПІДГОТОВКИ по пунктам (чого я не робив і тому не отримував потрібного результату):

CAUTION: To avoid damaging the motherboard and / or other components, AUX power to the machine must be OFF, and the power cord unplugged from AC power.

CAUTION: To avoid damaging the motherboard and / or other components, make sure you follow standard anti-static precautions, including the use of ground straps.

Процедура після прошивки описана на стор. 40 ( "Step 10. Exit Dediprog and reassemble the target PC").

Для тих, хто не володіє англійською приведу СВІЙ переклад. Зрозуміло, ніякої відповідальності за якість і правильність перекладу. Робіть все на свій страх, ризик і гаманець.

ПОПЕРЕДЖЕННЯ: Щоб уникнути пошкодження материнської плати та / або інших компонентів, харчування комп'ютера повинно бути відключено і вилка 220 В фізично _витащена_ з розетки.
ПОПЕРЕДЖЕННЯ: Щоб уникнути пошкодження материнської плати та / або інших компонентів, переконайтеся, що Ви приймаєте всіх належних заходів щодо захисту від статичної електрики, включаючи заземлюючі браслети.
ПОПЕРЕДЖЕННЯ: Тільки для материнських плат з технологією управління (intel Management Engine). Наприклад, на чіпсетах Q-серій. Запис в БІОС нового образу може бути утруднена при активному "движку" технології ME, тому що він також використовує шину SPI і може передавати по ній дані при прошивці БІОС.

1. Вимкніть прошиваного комп'ютера (пацієнта).
2. Фізично _витащіте_ вилку 220 В з розетки прошиваного комп'ютера (пацієнта).
3. Вимкніть кабелі від монітор, якщо від був підключений (в ряді випадків з монітора приходить харчування на материнську плату) + відключіть ще й всі інші периферійні пристрої (принтери та ін.). Залиште тільки клавіатуру.
4. На платі є зелений світлодіод чергового живлення. Дочекайтеся, що він ПОВНІСТЮ згасне (розрядиться блок живлення і не надходить харчування від інших пристроїв, наприклад, по USB).
5. Встановити перемичку на платі-пацієнта в режим конфігурації БІОС ( "BIOS CFG", положення уточнюйте в інструкції від материнської плати).
>>>
6. На другому (робочому) комп'ютері підключити програматор до USB.
7. На платі-пацієнта підключити колодку-кліпсу програматора до флеш-мікросхеми. При установці переконатися, що мітки контакту 1 на мікросхемі і на колодці збігаються. Контакт 1 на материнській платі позначений білою крапкою або стрілочкою.
<<<
=== ВІД МЕНЕ по пунктам 6 і 7: в моєму випадку я спочатку готував плату-пацієнта (прикріплював "шлейфікі") і вже після цього підключав до робочого комп'ютера роз'єм LPT. Більш того, після закріплення шлейфів переконувався, що є контакт всіх провідників з усіма відповідними ніжками flash-мікросхеми (мультиметром, однак, спосіб перевірки придумуйте самі, не буду нічого радити, не спец). В закінчення процедури підключав / вставляв батарейки харчування "прошівальщіка", тобто за фактом мікросхеми БІОС.
----
8. Перемичку конфігурації БІОС на платі-пацієнта ( "BIOS CFG") Забрати, тобто так встановити режим відновлення БІОСа.
ПОПЕРЕДЖЕННЯ: Будь-які операції з перемичкою конфігурації БІОС виробляти при вимкненому комп'ютері з погаслим светодиодом чергового живлення _на_плате_. В іншому випадку може спостерігатися нестабільна робота комп'ютера!
9. Підключіть живлення комп'ютера-пацієнта щоб загорівся світлодіод чергового живлення НА ПЛАТИ (включити вилку в 220 В і вимикач на САМОМУ БЛОЦІ ХАРЧУВАННЯ).
10. Натиснути і ТРИМАТИ кнопку живлення на передній панелі комп'ютера-пацієнта до тих пір, поки комп'ютер не запуститься і не відключиться знову.
11. Якщо у Вас плата-пацієнт з технологією iAMT (Management Engine, наприклад, на Q-чіпсеті), то на ній поруч із зеленим світлодіодом харчування розташований червоний світлодіод "движка" ME. Переконатися, що зелений світлодіод горить, ЧЕРВОНИЙ ЗАВЖДИ вимкнений. Якщо червоний блимає - прошивати не можна: вимкнути комп'ютер, дочекатися згасання зеленого світлодіода і повторити пункти 9 і 10.

12. Йдемо в програму-програматор і виконуємо програмування (прошивку) мікросхеми SPI. Після закінчення запису рекомендують прочитати образ з мікросхеми і порівняти його з файлом, використаним для прошивки.

13. Вимкнути живлення комп'ютера-пацієнта, витягнути вилку з розетки 220 В комп'ютера-пацієнта. Відключити батарейку харчування "прошівальщіка". Відключити LPT-роз'єм з робочого комп'ютера.
14. Дочекатися згасання зеленого світлодіода НА ПЛАТИ-пацієнта.
15. Зняти кліпсу програматора / дроти підключення до flash-мікросхемі плати-пацієнта.
16. Підключити монітор і клавіатуру.

* Далі робимо перепрошивку БІОСа засобами відновлення БІОСа самої плати *
17. Взяти USB-flash'ку, отформатированную в форматі FAT / FAT32. Скопіювати файл профівкі з розширенням BIO (їм вже користувалися при виправленні пошкодженого образу з мікросхеми; або взяти на сайті Intel в розділі поддержка-> драйвери-> BIOS). Скопіювати на usb-флешку ту ж версію БІОС, що була на платі до невдалої спроби прошити її!
18. USB-flash'ку вставити в плату-пацієнт.
19. Підключіть живлення комп'ютера-пацієнта щоб загорівся світлодіод чергового живлення НА ПЛАТИ (включити вилку в 220 В і вимикач на САМОМУ БЛОЦІ ХАРЧУВАННЯ).
20. Натиснути кнопку живлення на передній панелі комп'ютера-пацієнта. Він може сам же тут же зробити цикл "перевключення". Якщо все піде ОК: USB-флешка на певному моменті почне показувати звернення до неї (якщо на ній є такий світлодіод) і на моніторі буде відображатися хід операцій прошивання. Після закінчення на моніторі буде фраза, що оновлення БІОС успішно закінчено і необхідно відключити комп'ютер і встановити перемичку режиму БІОСа в інше положення.

21. Вимкнути живлення комп'ютера-пацієнта, витягнути вилку з розетки 220 В комп'ютера-пацієнта.
22. Відключити кабель монітора від комп'ютера.
23. Дочекатися ПОВНОГО згасання зеленого світлодіода НА ПЛАТИ-пацієнта.
24. Установити перемичку на платі-пацієнта в режим конфігурації БІОС ( "BIOS CFG", положення уточнюйте в інструкції від материнської плати).

25. Підключити монітор, подати і включити харчування, ЗРОБИТИ скидання НАСТРОЕК БІОС за замовчуванням (BIOS defaults).

26. Вимкнути живлення комп'ютера-пацієнта, витягнути вилку з розетки 220 В комп'ютера-пацієнта.
27. Відключити кабель монітора від комп'ютера.
28. Дочекатися ПОВНОГО згасання зеленого світлодіода НА ПЛАТИ-пацієнта.
29. Установити перемичку на платі-пацієнта в "нормальний" (Normal / default) режим БІОС ( "BIOS CFG", положення уточнюйте в інструкції від материнської плати).

ГОТОВИЙ
Тепер можна запаривает БІОС з чистого аркуша)