Как обновить встроенное программное обеспечение Management Engine/AMT для Lenovo T440s при установке Linux?
У меня есть T440s. CVE-2017-5689 / INTEL-SA-00075 приближается. Lenovo выпустила обновления:
https://support.lenovo.com/us/en/product_security/LEN-14963
Их обновления BIOS материнской платы обычно имеют как обязательную для Windows опцию, так и опцию обновления через USB. Однако у этого есть только обязательная опция Windows, как я проверяю сейчас. Они даже не выпустили обновления для всех моделей оборудования, так что, возможно, все только в работе, но они не указали так ни в одном, что я видел.
В то же время я нашел эти инструкции в некоторых вики:
http://www.thinkwiki.org/wiki/Intel_Active_Management_Technology_(AMT)
Но они кажутся вовлеченными и несколько сбивающими с толку, и мне интересно, если это, кроме того, устарело. Будучи вики, это может измениться, но в настоящее время кажется, что мне нужно:
- Установите Windows PE на USB-накопитель
- Извлеките 2 файла из некоторого другого файла прошивки с веб-сайта IBM, используя Wine:
- CMD я буду запускать, чтобы сделать обновление
- Драйвер мне нужно выяснить, как загрузить.
Это кажется отрывочным для меня. Кто-нибудь может подтвердить это? Есть ли другой способ сделать это?
С другой стороны, разве Lenovo не настолько ответственна, чтобы позаботиться о недостатках своего продукта? Или я договорился где-то в контракте, что я запускаю только Windows? Отсутствие поддержки, прозрачности и готовности кажется совершенно неприемлемым для такого серьезного дефекта в их продукте.
2 ответа
Я нашел способ использовать нативный Linux (или даже DOS/EFI: просто используйте соответствующие инструменты в загрузке System Tools вместо Linux).
Lenovo предоставляет нам две вещи: интерфейс модуля управления (MEI) или программное обеспечение модуля управления и встроенное программное обеспечение модуля управления (ME). Первый нужен для предоставления драйвера (HECI) для доступа и прошивки ME, второй - это утилита флэш-памяти плюс образ флэш-памяти. Поскольку мы используем Linux, нам нужны только флэш-инструменты и прошивки. В моем случае это называлось r0dmu01w.exe
", Я использую " FWPkg.exe
" впредь.
- Распакуйте прошивку с помощью innoextract
$ innoextract FWPkg.exe
или вино$ wine FWPkg.exe
- Это создаст какую-то папку
app
"в вашем текущем каталоге (innoextract) или в папке"ME
"в винном корне"C:\DRIVERS\
"Каталог, который будет создан при необходимости (вино). Нас будет интересовать только"ME_<version>_[Consumer/Corporate]_*_Production.bin
"файл (ы) (образ прошивки) и"MEUpdate.CMD
"Flash-скрипт, который вызывает"FWUpdLcl(64).exe
".
Корпорация Intel предоставляет дистрибьюторам версию этого инструмента для Linux, однако мы можем скачать ее здесь (неофициально!). Это Intel ME System Tools, у меня ME v11, поэтому я скачал "Intel CSME System Tools v11", я назову это " METools.rar
" впредь.
- Распакуйте файлы
$ unrar x METools.rar
- Внутри извлеченного каталога будет "
FWUpdate/LINUX(64)/Portable/FWUpdLcl
" файл. - Перейдите к пути указанного файла и добавьте права на выполнение:
$ chmod +x FWUpdLcl
Посмотрите на "
MEUpdate.CMD
"скрипт со строкой, которая должна выглядеть примерно так:%~dp0FWUpdLcl64.exe -F %~dp0ME_<version>_[Consumer/Corporate]_*_Production.BIN -OEMID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -generic -allowsv
Нас интересует только OEMID-флаг, я буду ссылаться на него как
$OEMID
, В качестве альтернативы вы можете использоватьMEInfo
"Утилита, однако это требуетiomem=relaxed
быть установленным в командной строке загрузки ядра.Теперь используйте инструмент Linux в качестве администратора и обновите микропрограмму, вы используете потребительский вариант, если ваше устройство не поддерживает Intel AMT (ЦП с поддержкой AMT имеют логотип "vPro"):
# FWUpdLcl -F <path/to/binfile> -OEMID $OEMID -allowsv
Общий флаг недоступен в Linux, единственная документация, которую я смог найти, была "Выполнить обновление через MEI без учетных данных" - но нам это, похоже, не нужно. AllowSV позволяет обновления той же версии.
Теперь у вас должна быть обновленная прошивка ME.
Изменить: Я только что обнаружил, что кто-то уже нашел такое же решение (на немецком языке), связанные для полноты.
Рецепт (точная редакция на тот момент была этой) работал для моего Thinkpad X2 x 0 (с оригинальной ОС, обновленной до GNU/Linux и OpenBSD) с небольшими изменениями.
Готовим winpe3_x86.iso
было относительно легко. Я загрузил его, и необходимые упомянутые обновления прошивки и драйвера "пакеты" у меня были на USB-накопителе в виде двух .exe
файлы.
- CMD я буду запускать, чтобы сделать обновление
Вы найдете файл CMD в каждом "пакете" обновления прошивки после извлечения, запустив exe-файл при загрузке в среде WinPE. Для T440 желаемый вариант с исправлением уязвимости, скорее всего, https://pcsupport.lenovo.com/downloads/DS038194
- Драйвер мне нужно выяснить, как загрузить.
В рецепте упоминается: ... вам нужно загрузить драйвер HECI с помощью "drvload HECI.inf" и связать его с интерфейсом Intel AMT Management Engine для Windows. Ссылка (перенаправление) была нарушена, однако ее можно найти для его / ее платформы с полем поиска по адресу https://support.lenovo.com/.
Драйвер успешно загружен drvload
команда (она была извлечена в C:\DRIVERS\WIN\AMT\MEI\MEI\HECI.inf
; C: была моя флешка), но у меня как-то не получилось, MEUpdate.CMD
не удалось.
Мне удалось использовать другой "пакет": Intel Management Engine Interface 7.1 и драйвер Serial Over LAN (SOL). После загрузки HECI.inf (который был извлечен в c:\DRIVERS\WIN\AMT\ME_SW\Drivers\MEI\HECI.inf
) Я тоже загрузил C:\DRIVERS\WIN\AMT\ME_SW\Drivers\SOL\mesrle.inf
, но я не уверен на 100%, что это было необходимо - я не хочу повторять эксперимент.
Кстати, не забудьте включить Intel AMT в настройках BIOS перед обновлением прошивки, а затем отключить ее;)