Сервисный центр Мастер

Прошивка, обновление и восстановление BIOS и UEFI

Как, зачем, сложность и стоимость
Что такое BIOS и пришедший ему на смену UEFI.
BIOS (от англ. basic input/output system — «базовая система ввода-вывода)— набор микропрограмм, реализующих низкоуровневые API для работы с аппаратным обеспечением компьютера, а также создающих необходимую программную среду для запуска операционной системы у IBM PC-совместимых компьютеров. BIOS относится к системному программному обеспечению.

C начала XXI в. BIOS стал постепенно заменяться UEFI. Однако многие производители материнских плат компьютеров, учитывая инертность основной массы потребителей, используют объединённый термин UEFI/BIOS, неверный с технической точки зрения, но дающий возможность понять потребителям, что речь идёт о подсистеме, аналогичной BIOS. До сих пор, на страницах поддержки производителем материнских плат указаны для скачивания файлы BIOS, хоть они и давно уже являются микропрограммами UEFI.

Современная материнская плата LGA1700. Производитель указывает BIOS, хоть это и UEFI
Unified Extensible Firmware Interface (UEFI) - интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, его основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику или непосредственно ядру операционной системы. Проще говоря, это мини-операционная система, которая работает между прошивкой материнской платы и операционной системой. UEFI работает намного быстрее, позволяет работать с дисками больше размера, использовать графический интерфейс, мышь, сетевое подключение для обновления и восстановления и пр.

С основами разобрались, а теперь копнём чуть глубже.
Intel, с момента выпуска процессоров линейки Core i , перенесли часть функций северного моста в сами процессоры, а оставшуюся часть в южный мост. И, таким образом, вместо южного и северного моста остался только один - Intel Express Chipset, он же PCH - Platform Controller Hub, он же «Хаб». Но, так же для удобства и понимания клиентами, часто используется старое и доброе «мост», но уже без привязки к северному и южному расположению.

Новые чипсеты стали намного сложнее, нежнее и появилось много новых технологий, в частности в сфере безопасности и тонкой настройки чипов.

Одной из такой технологий стала Intel ME. Если не сильно углубляться в суть, то объяснить, что это такое можно так – это микропрограмма, которая используется для настройки и инициализации чипсета Intel, обрабатывается эта программа микропроцессором, который встроен в чипсет.
Точно, как он работает, информации не найти, это засекреченные данные, так как данная микропрограмма работает всегда, даже на выключенном ПК, позволяет администрировать, включать, выключать и всячески управлять настройками чипсета и устройства в целом. И для настройки Intel ME есть отдельный region(область) в прошивке UEFI.
Region – часть прошивки UEFI, отвечающая за определённую функцию.
Если разобрать образ UEFI, то мы увидим несколько таких Region'ов. Основные это BIOSRegion, собственно, сама прошивка для материнской платы, MERegion, отвечающая за Intel ME, EC Region отвечает за работу мультиконтроллера и т.д.
Извлеченные области с помощью FITC
И здесь назревает вопрос. А зачем, собственно, разбирать эти прошивки, копаться в коде и другие манипуляции, если BIOS просто можно скачать с сайта производителя и прошить?

Вот здесь мы и подходим к главной теме статьи.

Производители ноутбуков, за очень редким исключением, сейчас не публикуют на сайтах поддержки полные образы прошивок UEFI. Нельзя просто взять и прошить его во Flash память устройства. Выкладывают только обновления определенных регионов, которые завёрнуты в «капсулу», которую могут интерпретировать, расшифровать и обновить прошивку только встроенные программные средства материнской платы (либо из под ОС, либо из оболочки UEFI).

Теперь, давайте рассмотрим основные ситуации, когда нужна прошивка, и что для этого нужно сделать.

1) При ручном обновлении BIOS ноутбук завис\перебои с электричеством\дети выключили и другие вмешательства, из-за которых ноутбук выключился аварийно и больше не включается.

В 99% процентах случаев прошивка будет испорчена, хоть и не полностью. И здесь есть несколько вариантов.
Самый простой – ищем и скачиваем дамп прошивки, снятый кем-нибудь с такого же ноутбука. Если такой нашелся, то можно работать с ним. Если мы просто зальём эту прошивку на ноутбук, то результат может быть непредсказуемым из-за настроек MERegion'a, из-за неправильной DMI-информации производителя и т.п. Ноутбук может просто не включиться, может включаться очень долго, выключаться после определенного времени, могут не видится устройства SATA, не работать звук, сетевая карта, выдавать множество ошибок при включении, всегда работать вентиляторами на полную мощность и множество других проблем.

Нужно взять прошивку с такого же ноутбука, открыть его в специальном инструментарии Flash Image Tool (ПО, созданное Intel для производителей материнских плат), и уже в нём извлечь «старый» сконфигурированный MERegion и заменить его на новый «чистый».
Считанная прошивка с ноутбука DELL G7-7590 открытая в Flash Image Tool (FITC)
Но, на этом работа не закончена.

Теперь нам нужно перенести всю DMI область из старого дампа в новый.

В DMI области хранятся серийные номера, названия моделей, ключи Windows и прочее.
Это необходимо, потому что практически все линейки ноутбуков тоже не работают стабильно без этой информации, будут выдавать ошибки при включении, не будет активироваться система, проблемы могут быть с сетевым подключением и другие неприятные вещи.
Чаще всего, перенос информации делается в HEX-редакторах. Они позволяют увидеть и покопаться внутри кода прошивки.
Считанная прошивка с ноутбука DELL G7-7590 открытая HEX-редакторе. Выделены серийный номер ноутбука, модель, ключ активации Windows
Открываем файл изначальной прошивки в редакторе, ищем данные по серийному номеру с корпуса ноутбука, либо по модели ноутбука, определяем границы области DMI и копируем эту область с заменой в новую прошивку с чистым ME.
И вот сейчас мы можем заливать прошивку на флешку и запаивать её обратно на плату и проверять работу устройства.

2) Прошивка BIOS при замене процессоров и хабов Intel. Очень частая работа, так как современные чипы очень нежные, а многие производители, особенно на бюджетных ноутбуках, не реализуют никакой защиты от статики и короткого замыкания на тех же разъёмах USB, линии данных которых идут напрямую в хаб. Так же часто выходят из строя вследствие залития жидкостями.
HUB Intel H110
Core i5-7200 со встроенным HUB'ом на подложке
N3540 со встроенным HUB'ом
В таких случая прошивка, скорее всего, будет исправна, и нам только нужно заменить ME Region на чистый, но только его, остальную конфигурацию, например SATA, нужно сохранить, иначе могут быть проблемы с периферийными устройствами.
Для этого, на этапе работы в FITC, нам нужно сначала сохранить изначальную конфигурацию прошивки в файл XML, потом подбросить чистый ME Region, сохранить снова конфигурацию в файл XML, затем, открыв оба в программе для сравнения, перенести только строчку где указан новый путь к ME, сохранить, и уже компилировать прошивку. Таким образом мы подкинем новый ME, но сохраним все остальные важные настройки. Прошиваем и радуемся.

Сравнение конфигураций с помощью CompareIt
3) И третья ситуация, самая сложная и неоднозначная в работе. Когда у нас нет изначального дампа, или он есть не целиком. Такое возможно, если флешка прошивки неисправна, не считывается, не считывается полностью, с ошибками, либо ноутбук пришёл из другого сервиса вообще без флешки, и так же негде скачать прошивку с такого же устройства.

В таком случае работа будет вестись с файлом обновления, доступный на сайте производителя, с прошивками с похожих устройств, и собираться по крупицам с помощью HEX-редактора. Сложность в том, что обновления имеют чаще всего нелинейную структуру, куски кода могут быть разбросаны так, как только придёт в голову разработчикам, и нужно будет вручную это всё анализировать. Не считая того, что придётся вручную искать и вбивать всю DMI-информацию, для чего нередко (например, на HP и DELL) приходится полностью разбирать ноутбук, так как вся информация находится на стикерах на корпусных частях внутри ноутбука.


Итак, вот основные работы, под которыми подразумевается «Прошивка BIOS ноутбука».



В конце, хочется вкратце перечислить ещё нюансы связанные с прошивкой, которые тоже добавляют определенные работы

А) Нередко нужно считать прошивку не с одной основной флешки, а с двух, либо с основной флешки и из мультиконтроллера, склеить их вместе и только после этого работать, иначе программы будут отказываться открывать её.
B) Сброс паролей UEFI простой прошивкой не всегда возможен. Например, на линейке ноутбуков Lenovo Thinkpad T, после 6-ого поколения процессоров Intel, линейке Dell Latitude и некоторых HP это невозможно, из-за присутствия специального криптованного модуля, который отвечает за безопасность. Способы есть, но это не связано с простой прошивкой ноутбука.

C) В современных ноутбуках, оснащенными контроллерами USB Type-C, в прошивке так же содержится микрокод для данного типа контроллеров.И он не всегда автоматически обновляется при прошивке UEFI.

Теперь, вы знаете чуть больше о прошивке, с чем она связана и из чего формируется стоимость таких работ.

Сервисный Центр «Мастер».

г.Екатеринбург, ул.Щорса 112
+7-922-60-87-157 WhatsApp, Telegram,Viber