В поисках недорогого железа для HTPC я открыл для себя нишу корпоративных мини-ПК. Попадая на вторичный рынок такие компьютеры сильно теряют в цене. При этом у них есть интересные, но обычно бесполезные для дома, корпоративные фишки.
Из обзоров я узнал про поддержку платформы Intel VPro, в состав которой входит продвинутая технология удаленного администрирования - Intel AMT (Active Management Technology).
Intel AMT позволяет удаленно управлять компьютером, даже если операционная система не загружена или не работает. Причем поддерживается как проводное, так и Wi-Fi подключение. Рулить бивасами по Wi-Fi - ну разве не прелесть?
В моем случае компьютер должен жить на шкафу, подключенный к проектору. Физический доступ к нему будет затруднен, а подключение к сети будет только беспроводным. Расширенные возможности удаленного администрирования были бы как нельзя кстати.
В итоге я приобрел на eBay компьютер HP ProDesk 600 G3 Mini.
По железу он удовлетворял моим потребностям с большим запасом. Но вот получить доступ ко всем функциям Intel AMT мне не удалось. Оказалось что на моем экземпляре можно активировать только урезанный вариант этой технологии - Intel Standard Manageability.
Intel Std Mgt (Standard Manageability) или Intel SMT - это одна из функций, доступных в Intel AMT (Active Management Technology). Она обеспечивает базовый набор возможностей удаленного управления компьютером. Стандартный уровень управляемости Intel AMT (Std Mgt) представляет собой минимальный набор функций удаленного управления и поддерживается на большинстве компьютеров, оснащенных технологией Intel AMT.
Подробнее про отличия между Intel AMT и SMT можно узнать из этого видео.
Если вам нужна поддержка Intel AMT без танцев с бубном, советую при покупке компьютера обращать внимание на интеловский стикер на корпусе. На стикере должна быть отмечена поддержка платформы vPro.
В моем случае из функционала Intel AMT были недоступны KVM и удаленное подключение по беспроводной сети. Первое меня не слишком волновало, но подключение по Wi-Fi было нужно позарез. Теоретически Intel SMT поддерживает беспроводное подключение, но то ли HP приберегла эту фичу для серии EliteDesk, то ли она появилась в более поздних версиях vPro… Поначалу я грешил на комплектный Wi-Fi адаптер Intel 7265NGW, но его замена на Intel 8265NGW, который прописан в Intel ME, ничего не изменила.
Intel ME (Management Engine) - это набор микропрограмм, встроенный в чипсеты Intel, который предоставляет аппаратную и программную инфраструктуру для удаленного управления и мониторинга компьютера. ME работает независимо от основной операционной системы и может использоваться для удаленной установки обновлений, управления безопасностью, мониторинга аппаратных компонентов и т.д.
Тогда я полез за решением в интернет и нашел подходящую тему на форуме Win-Raid.
Там пользователь с ником Ohlamon создал топик, в котором спрашивал как активировать KVM на HP Prodesk 600 G3.
К своему посту он добавил отчет, сформированный программой MEInfoWin64 .
E:SoftIntel CSME System Tools v11 r29MEInfoWIN64>MEInfoWin64.exe
Intel(R) MEInfo Version: 11.8.70.3626
Copyright(C) 2005 - 2019, Intel Corporation. All rights reserved.
Intel(R) Manageability and Security Application code versions:
BIOS Version P07 Ver. 02.31
MEBx Version 11.0.0.0010
GbE Version 0.1
Vendor ID 8086
PCH Version 0
FW Version 11.8.65.3590 H
Security Version (SVN) 3
LMS Version 1927.14.0.1305
MEI Driver Version 1931.14.0.1323
Wireless Hardware Version 2.1.77
Wireless Driver Version 20.70.12.5
FW Capabilities 0x593A1146
Intel(R) Standard Manageability - PRESENT/ENABLED
Intel(R) Capability Licensing Service - PRESENT/ENABLED
Protect Audio Video Path - PRESENT/ENABLED
Intel(R) Dynamic Application Loader - PRESENT/ENABLED
Service Advertisement & Discovery - PRESENT/ENABLED
Re-key needed False
Platform is re-key capable True
Intel(R) AMT State Disabled
AMT Global State Enabled
Intel(R) Standard Manageability State Enabled
TLS Enabled
Last ME reset reason Power up
Local FWUpdate Enabled
BIOS Config Lock Enabled
GbE Config Lock Enabled
Host Read Access to ME Enabled
Host Write Access to ME Disabled
Host Read Access to EC Disabled
Host Write Access to EC Disabled
SPI Flash ID 1 C84018
SPI Flash ID 2 Unknown
BIOS boot State Post Boot
OEM ID 00000000-0000-0000-0000-000000000000
Link Status Link Up
System UUID 0e781479-d74f-14c7-e1f2-d82aa45d135a
MAC Address f4-39-09-1d-f9-9e
IPv4 Address 10.0.16.115
IPv6 Enablement Disabled
IPv6 Address Unknown
Privacy/Security Level Default
Configuration State Completed
Provisioning Mode PKI
Capability Licensing Service Enabled
OEM Tag 0x00000000
Slot 1 Board Manufacturer 0x00000000
Slot 2 System Assembler 0x00000000
Slot 3 Reserved 0x00000000
M3 Autotest Disabled
C-link Status Enabled
Wireless Micro-code Mismatch No
Wireless Micro-code ID in Firmware 0x24FD
Wireless LAN in Firmware Intel(R) Dual Band Wireless-AC 8265
Wireless Hardware ID 0x24FD
Wireless LAN Hardware Intel(R) Dual Band Wireless-AC 8265
Localized Language Russian
Independent Firmware Recovery Disabled
EPID Group ID 0x2055
LSPCON Ports None
5K Ports None
OEM Public Key Hash FPF 0000000000000000000000000000000000000000000000000000000000000000
OEM Public Key Hash ME 0000000000000000000000000000000000000000000000000000000000000000
ACM SVN FPF 0x0
KM SVN FPF 0x0
BSMM SVN FPF 0x0
GuC Encryption Key FPF 0000000000000000000000000000000000000000000000000000000000000000
GuC Encryption Key ME 0000000000000000000000000000000000000000000000000000000000000000
FPF ME
— –
Force Boot Guard ACM Disabled Disabled
Protect BIOS Environment Disabled Disabled
CPU Debugging Enabled Enabled
BSP Initialization Enabled Enabled
Measured Boot Disabled Disabled
Verified Boot Disabled Disabled
Key Manifest ID 0x0 0x0
Enforcement Policy 0x0 0x0
MEInfoWin64 - это утилита для получения информации о настройках и функциях Intel Management Engine на компьютере.
Я скачал эту утилиту и проверил свою систему. Результаты выглядели похожими на те, что были у автора темы.
Вот отчет MEInfoWin64 для моей машины
C:CSME System ToolsMEInfoWIN64>MEInfoWin64
Intel(R) MEInfo Version: 11.8.92.4189
Copyright(C) 2005 - 2020, Intel Corporation. All rights reserved.
Intel(R) Manageability and Security Application code versions:
BIOS Version P22 Ver. 02.45
MEBx Version 11.0.0.0012
GbE Version 0.1
Vendor ID 8086
PCH Version 0
FW Version 11.8.92.4222 H
Security Version (SVN) 3
LMS Version 2227.3.3.2
MEI Driver Version 2229.3.2.0
Wireless Hardware Version 2.1.77
Wireless Driver Version 19.51.40.1
FW Capabilities 0x593A1146
Intel(R) Standard Manageability - PRESENT/ENABLED
Intel(R) Capability Licensing Service - PRESENT/ENABLED
Protect Audio Video Path - PRESENT/ENABLED
Intel(R) Dynamic Application Loader - PRESENT/ENABLED
Service Advertisement & Discovery - PRESENT/ENABLED
Re-key needed False
Platform is re-key capable True
Intel(R) AMT State Disabled
AMT Global State Enabled
Intel(R) Standard Manageability State Enabled
TLS Enabled
Last ME reset reason Global system reset
Local FWUpdate Enabled
BIOS Config Lock Enabled
GbE Config Lock Enabled
Host Read Access to ME Enabled
Host Write Access to ME Disabled
Host Read Access to EC Disabled
Host Write Access to EC Disabled
SPI Flash ID 1 C22018
SPI Flash ID 2 Unknown
BIOS boot State Post Boot
OEM ID 00000000-0000-0000-0000-000000000000
Link Status Link Up
System UUID 2bd82cfb-a82b-2aaa-23a0-c8115c2428e4
MAC Address 10-62-e5-17-07-0c
IPv4 Address 192.168.1.143
IPv6 Enablement Disabled
IPv6 Address Unknown
Privacy/Security Level Default
Configuration State Completed
Provisioning Mode PKI
Capability Licensing Service Enabled
OEM Tag 0x00000000
Slot 1 Board Manufacturer 0x00000000
Slot 2 System Assembler 0x00000000
Slot 3 Reserved 0x00000000
M3 Autotest Disabled
C-link Status Enabled
Wireless Micro-code Mismatch No
Wireless Micro-code ID in Firmware 0x24FD
Wireless LAN in Firmware Intel(R) Dual Band Wireless-AC 8265
Wireless Hardware ID 0x095A
Wireless LAN Hardware Intel(R) Dual Band Wireless-AC 7265
Localized Language Russian
Independent Firmware Recovery Disabled
EPID Group ID 0x2027
LSPCON Ports None
5K Ports None
OEM Public Key Hash FPF 0000000000000000000000000000000000000000000000000000000000000000
OEM Public Key Hash ME 0000000000000000000000000000000000000000000000000000000000000000
ACM SVN FPF 0x0
KM SVN FPF 0x0
BSMM SVN FPF 0x0
GuC Encryption Key FPF 0000000000000000000000000000000000000000000000000000000000000000
GuC Encryption Key ME 0000000000000000000000000000000000000000000000000000000000000000
FPF ME
--- --
Force Boot Guard ACM Disabled Disabled
Protect BIOS Environment Disabled Disabled
CPU Debugging Enabled Enabled
BSP Initialization Enabled Enabled
Measured Boot Disabled Disabled
Verified Boot Disabled Disabled
Key Manifest ID 0x0 0x0
Enforcement Policy 0x0 0x0
На вопрос ответил пользователь с ником plutomaniac:
Standard Manageability включен, что означает, что HP отключила AMT для этой машины/SKU через настройки прошивки CSME. Вы можете проверить это, выгрузив ваш текущий образ SPI (fptw -d spi.bin), загрузив его в Flash Image Tool и проверив состояние настроек, связанных с AMT. Поскольку у вас нет прав на запись, вам нужно будет использовать джампер на плате (если это то, что он делает) или программатор, как объясняется в [Guide] Unlock Intel Flash Descriptor Read/Write Access Permissions for SPI Servicing. После того, как у вас будет доступ на запись, выгрузите ваш образ SPI, следуйте [Guide] Clean Dumped Intel Engine (CS)ME/(CS)TXE Regions with Data Initialization и настройте все связанные с AMT настройки между шагами 10 и 11.
Ниже в теме Ohlamon пишет, что считал образ SPI программатором и изменил биты доступа в Flash Descriptor.
Flash Descriptor - это часть SPI BIOS, которая хранит информацию о конфигурации BIOS, такую как размер, тип и расположение каждой области памяти BIOS, а также определенные настройки системы, включая настройки безопасности и настройки Intel ME (Management Engine).
В результате его компьютер не стартовал с измененным образом.
Больше сообщений в теме не было. Не очень обнадеживающе. Но тогда я мало что понял из этого набора заклинаний и стал экспериментировать с утилитой Flash Image Tool.
Утилита Flash Image Tool (FIT) - это инструмент, который используется для работы с образами SPI BIOS на устройствах с чипсетами Intel. Он позволяет отображать, редактировать, добавлять и удалять различные компоненты BIOS, такие как ME (Management Engine), GbE (Gigabit Ethernet), а также позволяет проверять целостность образа, его подпись и сертификаты. FIT также может использоваться для создания загрузочных USB-накопителей, обновления микрокода процессора и других задач, связанных с обновлением и управлением BIOS.
Для начала я, как и автор топика, с помощью утилиты Flash Programming Tool сделал дамп содержимого всего SPI-флеша BIOS в файл с названием "hp_full.bin":
FPTW64 -d hp_full.bin
Flash Programming Tool (FPT) - это утилита для прошивки SPI Flash, используемой для хранения BIOS на материнской плате. Она позволяет читать и записывать содержимое SPI Flash, а также выполнять другие операции, такие как стирание и блокирование защиты. FPT является частью пакета инструментов Intel Flash Programming Tool (FPT), который используется для прошивки различных компонентов на плате, включая Intel ME и другие системные контроллеры.
Затем я успешно открыл полученный файл с помощью Flash Image Tool и убедился что Intel AMT залочен производителем.
Поскольку часть ответа с разблокировкой FD на тот момент полностью прошла мимо меня, далее я следовал алгоритму, описанному в теме [Guide] Clean Dumped Intel Engine (CS)ME/(CS)TXE Regions with Data Initialization
0. Первым делом узнаем какая версия Intel ME установлена на компьютере. Сделать это можно заглянув в BIOS, либо с помощью утилиты MEInfo.
В моем случае установлена версия 11.8.92.4222
В теме на форуме выбираем подходящий под эту версию гайд из вариантов:
В моем случае это последний вариант D4.
Как видим, начиная с 11 версии Intel стали называть ME немного иначе.
Intel CSME (Converged Security and Manageability Engine) и CSTXE (Converged Security and Trusted Execution) - это два компонента, встроенные в процессоры Intel, которые обеспечивают дополнительный уровень безопасности и управляемости системы.
CSME предназначен для обеспечения безопасности на уровне железа, а также для управления системными функциями, такими как удаленное управление, обновление BIOS и другие. CSTXE, с другой стороны, обеспечивает безопасное выполнение кода на уровне железа и защищает от угроз на уровне процессора, таких как вредоносные программы и атаки на уровне железа.
В чем отличие Intel ME и CSME? Отвечает ChatGPT:
Intel ME (Management Engine) и Intel CSME (Converged Security and Manageability Engine) являются двумя различными компонентами, которые выполняют разные функции, хотя они взаимодействуют между собой.
Intel ME отвечает за удаленное управление и обеспечение безопасности системы. Он обеспечивает функциональность удаленного управления, мониторинга и диагностики системы, в том числе через интерфейс Intel AMT (Active Management Technology).
Intel CSME в свою очередь является частью общей системы безопасности, обеспечивающей безопасную работу Intel ME и других компонентов системы. Он включает в себя такие функции, как контроль доступа, шифрование, аутентификацию и обнаружение вторжений.
Таким образом, Intel CSME отвечает за безопасность системы в целом, а Intel ME - за удаленное управление.
1. Ищем на форуме в теме (Converged Security) Management Engine: Drivers, Firmware and Tools или Intel (Converged Security) Trusted Execution Engine: Drivers, Firmware and Tools подходящую версию System Tools package и распаковываем ее.
Intel ME System Tools - это пакет утилит, разработанных Intel, для работы с подсистемой управления (Management Engine, ME) на компьютерах, основанных на процессорах Intel. Эти утилиты позволяют настраивать, управлять и мониторить различные функции и параметры ME, такие как управление энергопотреблением, защита от вредоносного кода, удаленное управление и многое другое.
Список утилит из пакета CSME System Tools v11:
-
Clock Commander Tool - используется для настройки частоты работы системных компонентов, связанных с Intel ME, таких как CPU, GPU, PCH и т.д.
-
Flash Image Tool (FIT) - утилита для работы с образами BIOS/UEFI и других SPI-устройств
-
Flash Programming Tool (FPT) - утилита для прошивки SPI Flash-памяти материнской платы, включая образы Intel ME.
-
Firmware Update Tool - утилита для обновления программного обеспечения Intel ME и других компонентов, таких как Intel CSME, Intel TXE, Intel AMT и т.д.
-
Manifest Extension Utility (MEU) - утилита для создания, чтения и редактирования файлов манифеста Intel ME для поддержки обновления ME.
-
MEInfo - утилита для получения информации о версии и конфигурации Intel ME.
-
MEManuf - утилита для проверки, включена ли функция Intel ME на компьютере.
2. В теме Intel (CS)ME, (CS)TXE, (CS)SPS, GSC, PMC, PCHC, PHY & OROM Firmware Repositories ищу подходящий для моей версии пак с репозиториями.
Далее качаю архив с файлообменника:
3. Теперь понадобится утилита для анализа образов Intel ME firmware - ME Analyzer.
Кидаю файл “hp_full.bin” с дампом в папку с программой ME Analyzer и открываю его.
В результате получаю отчет
Здесь меня интересуют строки “Version 11.8.92.42222” и “SKU Corporate H”
4. В папке с репозиториями ищу наиболее подходящую версию микропрограммы. В моем случае это файл с именем 11.8.92.4222_COR_H_DA_PRD_RGN.bin
В имени файла “11.8.92.4222” указывает на версию микропрограммы, которая совпадает с версией из отчета Мe Analyzer; “COR_H” соответствует “SKU Corporate H”; “DA” обозначает версию PCH; “PRD” - это Production релиз; “RGN” говорит о том, что это чистый и не сконфигурированный образ, предоставляемый Intel OEM-производителям.
Извлекаю файл из архива и переименовываю его в "ME Region.bin"
5. Возвращаюсь к отчету ME Analyzer. Для проверки наличия инициализационных данных в дампе SPI/BIOS необходимо убедиться что состояние файловой системы отображается как "Initialized".
6. Из папки "CSME System Tools v11 r46" перехожу в подпапку "Flash Image Tool" и из подпапки "WIN32" запускаю fit.exe. Запускается программа Flash Image Tool. В ней открываю файл дампа SPI/BIOS “hp_full.bin”.
Обратите внимание на вот эту строку внизу: “Warning: The ME FW image loaded has been pulled from a previously booted system. Some FW settings will not be allowed to be changed.”
Это предупреждение означает, что ME FW-образ, загруженный в программу Flash Image Tool, был получен из ранее загруженной системы. Это может ограничить возможность изменения некоторых настроек ME FW в программе Flash Image Tool. Обычно это происходит, когда пользователь пытается изменить ME FW-образ, сохраненный из ранее загруженной системы, на другую систему.
Захожу в меню "Build > Build Settings", и выбираю "No" в параметре "Generate Intermediate Files". Оставляю все остальные настройки без изменений.
7. В меню слева выбираю пункт “Intel(R) AMT”. В “Intel(R) AMT Configuration” нахожу параметр “Intel(R) AMT Supported” и меняю его значение на “Yes”
Вот как этот параметр описан в программе: “This setting allows customers to disable Intel(R) AMT on the platform and force the platform into Standard Manageability mode. Note: This setting is only applies to Desktop and Workstation platforms.” (Перевод: "Этот параметр позволяет пользователям отключить Intel(R) AMT на платформе и перевести платформу в режим стандартного управления. Примечание: этот параметр применим только к настольным компьютерам и рабочим станциям.")
8. Перехожу в меню "Файл > Сохранить как" и сохраняю файл конфигурации в формате XML, в данном случае его название будет "config.xml". Закрываю окно программы FIT.
9. Перехожу в папку FIT и там нахожу папку с именем, соответствующим открытому файлу, в данном случае это "hp_full.bin". Захожу в подпапку "Decomp" и заменяю в ней файл “ME Region.bin” на подготовленный в пункте 4 файл с чистым ME регионом.
Если не выполнить эти действия, то изменения внесенные в ME регион не сохранятся после загрузки машины. (Проверено на личном опыте.)
10. Вновь запускаю FIT. Открываю файл "config.xml" сохраненный в пункте 8.
11. Кликаю по иконке "Build Image" (либо "Build > Build Image"). Программа предупреждает меня что “Boot Guard Disabled On Platform” и “Intel(R) PTT Disabled”. Я соглашаюсь и получаю файл с прошивкой SPI/BIOS “outimage.bin”.
12. В папке FIT теперь лежит файл с именем "outimage.bin", который является выгруженным образом SPI/CSME с регионом МЕ, который имеет раздел "Configured DATA" без какой-либо ненужной информации об инициализации.
Если открыть это файл программой FIT, то никаких предупреждений о том, что образ получен из ранее загруженной системы, быть не должно.
13. Открываю файл "outimage.bin" программой ME Analyzer и проверяю что значения в строках “Version”, “Type”, “SKU” и “Chipset” не изменились. Параметр в строке “ File System State” должен измениться на “Configured”.
14. После записи полученного файла "outimage.bin" с модифицированной прошивкой на микросхему SPI Flash и загрузки системы, запускаю с правами администратора программу Flash Programming Tool с командой “-greset”.
Этот шаг нужен для того, чтобы заставить вспомогательный сопроцессор переинициализироваться и правильно принимать любые изменения в соответствующем регионе SPI/BIOS образа.
После всех этих манипуляций стала возможной активация на компьютере Intel AMT и я добился того, чего хотел.
Напоследок расскажу о самой волнующей части процесса - перепрошивке микросхемы SPI Flash. В моем случае это MX25L12873F от Macronix на 128Mb.
Начались приключения с покупки черного программатора CH341а. Оказалось что нельзя просто купить программатор и начать им пользоваться. Сперва нужно сделать вольтмод, чтобы понизить напряжение на DATA пинах с 5В до 3.3В. Ну я человек простой, если в интернетах пишут что нужен вольтмод - делаю вольтмод.
Готовлю пациента к операции и выпаиваю с помощью фена. (Пока я разбирался с программатором - успел спалить роутер. Так что не хотелось рисковать повредить что-нибудь на плате.)
Попался, голубчик!
Не заметили ничего опасного на снимке? Вот и я не заметил что вставил плату-переходник в колодку с рычажком на один ряд выше чем было нужно. Понял я что что-то пошло не так, когда программатор не смог определить чип. Флешка за это время успела сильно нагреться, что говорится “закипела”.
Но я забежал вперед. На снимке не первый мой опыт общения с этой флешкой. Моя первая попытка перепрошивки закончилась тем, что самая свежая на тот момент версия софта для программатора “CH341A Programmer 1.34”, найденная мной в интернетах, некорректно прочла чип, и я работал с поврежденным дампом не зная об этом.
Первые звоночки начались когда после стирания и записи образа на флешку, проверка сообщила что записанный файл не совпадает с файлом в окне программы. Пришлось пробовать другие варианты софта. Хорошо себя показала “SiberiaProg-Ch341a_v1.45” успешно записав (увы некорректный) файл.
Когда я припаял на место флешку, то компьютер, вместо того, чтобы загрузиться, стал жалобно пищать и мигать светодиодом.
Пришлось по новой выпаивать чип и разбираться что к чему. Тогда-то, после многих попыток, я и выяснил что v1.34 программатора некорректно читает эту микросхему. Опробовал также NeoProgrammer 2.2.0.10.
С чтением он справлялся. Но ни одна из программ не могла корректно стереть чип, зависая в бесконечном процессе. Но стирание все-таки происходило. Ориентируясь по активности светодиода “RUN” на плате программатора, я понял что в какой-то момент программа перестает обращаться к флешке. Тогда я просто останавливал процесс стирания и вытаскивал программатор из порта. Затем я читал флешку и проверял чтобы ячейки памяти заполнены "0xFF". Потом записывал образ и запускал проверку. Затем опять читал флешку но уже NeoProgrammer и записывал образ на диск. Затем открывал записанный образ и исходный файл программой WinMerge, и если файлы совпадали, успокаивался. Как говорится: "если один раз обжегся - начинаешь дуть на воду".
Несмотря на все старания, флешку я так и не спалил, и в итоге успешно прошил и припаял на место. Прежде чем паять все ноги я припаивал одну, прижимал чип пальцем к плате, и включал компьютер. Так я смог проверял работоспособность прошитого чипа.
Надеюсь что моя статья вам помогла. Спасибо за внимание!
Автор:
ABy