99% BIOS工程师都不知道的方法

ME 对于大多数BIOS工程师来说都是非常神秘的黑盒子,出现问题时,唯一的方法只能去 Intel 寻求帮助。这样的好处是不用工程师一行行检查代码和设定,如何催Intel 解决问题更多是老板和 PM 的事情;缺点是老板和 PM 觉得你能更快的解决问题。
印象中十年前还有公开的ME 启动设置选项,但是随着Chipset的升级,ME成为必选项,没有办法直接关闭,我也不止一次直接拒绝要求“关闭 ME 试试”的要求。最近我在网上搜到了这样的介绍文章《如何通过未公开模式禁用Intel ME 11》【参考1】,就是说现在有人找到了Disable ME 的方法。
文章首先介绍了基本原理,以及无法关闭的主要原因“因为这项技术负责初始化、管理电源以及启动主处理器。另一个复杂原因在于,某些数据被集成在PCH芯片内部,而PCH正是现代主板上的南桥。某些爱好者尝试在维持计算机可操作性的前提下,移除了ME镜像中的所有“冗余”部分,实现对ME的禁用,这也是之前采用的主要方法。但这种方法没有那么简单,因为如果内置的PCH代码没有在闪存中找到ME模块,或者检测到相关模块处于损坏状态,那么系统将无法启动。” 就是说,从理论上说 Intel 完全可以让你无法关闭 ME,或者说关闭 ME 系统就重启。 但是,Positive Technologies研究团队使用工具解压了 ME 的Binary,在XML文件中发现了一个隐藏的BIT, 他在注释中写着是为了U.S. government's High Assurance Platform (HAP) program 预留的。然后经过团队研究,发现这个位置可以用来设置 ME Disable。理论上 FITC 也可以完成这样的操作,只是没有开放。为此,研究团队放出了他们自己的工具me_cleaner 【参考2】。
我尝试在 Kabylake-R 平台上实验:

1.用工具生成新的 BIOS

2.比较前后的差别

3.刷写到板子上,ME 果真不见了

在刷写修改之前的BIOS,ME在设备管理器中是存在的

然后让系统运行>30分钟,一切正常。

参考:
1. https://www.anquanke.com/post/id/86740
2. https://github.com/corna/me_cleaner

《99% BIOS工程师都不知道的方法》有4个想法

  1. 請問在什麼狀況下才會有關閉ME的需求? 有些客戶也會提出關閉ME這種看似無理的需求, 現在始終不得其解,關閉可以有什麼應用或是達到什麼用途

    1. 有保密要求的单位。还有就是有兼容性问题,比如S5之后,Gbe会降速成10Mb,结果整个局域网都会被拉成10Mb (其实是交换机的问题)。其他情况下 ME 都是静静的存在没有问题。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注