在安装 Linux 的情况下,如何升级联想 T440s 的管理引擎/AMT 固件?

在安装 Linux 的情况下,如何升级联想 T440s 的管理引擎/AMT 固件?

我有一台 T440s。CVE-2017-5689 / INTEL-SA-00075 即将出现。联想发布了更新:

https://support.lenovo.com/us/en/product_security/LEN-14963

他们的主板 BIOS 更新通常既有 Windows 必需的选项,也有实时 USB 更新选项。但是,据我现在检查,这个只有 Windows 必需的选项。他们甚至还没有发布所有硬件型号的更新,所以也许事情还在筹备中,但他们没有在我所看到的任何内容中表明这一点。

同时,我在一些 wiki 上找到了这些说明:

http://www.thinkwiki.org/wiki/Intel_Active_Management_Technology_(AMT)#Firmware_update

但它们似乎很复杂,有点令人困惑,而且我想知道它是否已经过时了。作为 wiki,它可能会改变,但目前似乎说我需要:

  • 在 USB 上安装 Windows PE
  • 从中提取 2 个文件其他固件文件从 IBM 网站使用 Wine 进行访问:
    • 我将运行 CMD 来进行更新
    • 我需要弄清楚如何加载驱动程序。

我觉得这不太靠谱。有人能证实这一点吗?还有其他方法吗?

顺便提一下,联想难道不应该更负责任一点,来处理其产品中的缺陷吗?还是我在合同中同意只运行 Windows?对于他们产品中如此严重的缺陷,缺乏支持、透明度和准备对我来说是完全不可接受的。

答案1

我找到了一种使用原生 Linux(甚至是 DOS/EFI:只需使用系统工具下载中的相应工具,而不是 Linux 工具)的方法。

联想为我们提供了两样东西:管理引擎接口(MEI)或管理引擎软件和管理引擎固件(ME)。前者需要提供驱动程序(HECI)来访问和刷新 ME,后者是刷新实用程序加上刷新映像。由于我们使用 Linux,我们只需要闪存工具和固件。在我的例子中,它被称为“ ”,从现在起r0dmu01w.exe我将使用“ ”。FWPkg.exe

  1. $ innoextract FWPkg.exe使用 innoextract或 wine提取固件$ wine FWPkg.exe
  2. app这将在当前目录 (innoextract) 中创建文件夹“ ”,或在需要时ME在 wine 根目录 (wine) 中创建文件夹“ ” 。我们只对文件 (固件映像) 和调用“ ”的“ ”闪存脚本C:\DRIVERS\感兴趣。ME_<version>_[Consumer/Corporate]_*_Production.binMEUpdate.CMDFWUpdLcl(64).exe

英特尔确实向分销商提供了该工具的 Linux 版本,但是我们可以下载它这里METools.rar(非官方!)。这些是英特尔 ME 系统工具,我有一个 ME v11,所以我下载了“英特尔 CSME 系统工具 v11”,从现在起我将称之为“ ”。

  1. 提取文件$ unrar x METools.rar
  2. 在解压的目录中,会有一个“ FWUpdate/LINUX(64)/Portable/FWUpdLcl”文件。
  3. 进入该文件的路径并添加执行权限:$ chmod +x FWUpdLcl
  4. 看一下“ MEUpdate.CMD”脚本,其中有一行看起来有点像这样:

    %~dp0FWUpdLcl64.exe -F %~dp0ME_<version>_[Consumer/Corporate]_*_Production.BIN -OEMID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -generic -allowsv
    

    我们只对 OEMID 标志感兴趣,我将其称为$OEMID。或者,您可以使用“ MEInfo”实用程序,但这需要iomem=relaxed在内核加载命令行中进行设置。

  5. 现在使用 Linux 工具作为管理员并更新你的固件,如果你的设备确实不是支持英特尔 AMT(支持 AMT 的 CPU 上有“vPro”标志):

    # FWUpdLcl -F <path/to/binfile> -OEMID $OEMID -allowsv
    

    通用标志在 Linux 上不可用,我能找到的唯一文档是“无需凭证即可通过 MEI 执行更新”——但我们似乎不需要它。AllowSV 允许同版本更新。

就这样,您现在应该有一个更新的 ME 固件。


编辑:我刚刚发现某人已经找到了相同的解决方案(德语),链接完整。

答案2

配方(每次修改的确切时间是这个)适用于我的 Thinkpad X2X0(原始操作系统升级到 GNU/Linux 和 OpenBSD),略有改动。

准备工作winpe3_x86.iso相对简单。我启动了它,并且必要的固件升级和驱动程序“包”以两个文件的形式保存在 USB 闪存驱动器上.exe

  • 我将运行 CMD 来进行更新

通过在 WinPE 环境中启动 exe 文件提取后,您会在每个固件升级“包”中找到 CMD 文件。对于 T440,修复漏洞所需的版本最有可能是https://pcsupport.lenovo.com/downloads/DS038194

  • 我需要弄清楚如何加载驱动程序。

菜谱里提到:...您需要使用“drvload HECI.inf”加载 HECI 驱动程序以及链接至适用于 Windows 的 Intel AMT 管理引擎接口。链接(重定向)已损坏,但用户应该能够使用以下搜索字段找到适合自己平台的链接:https://support.lenovo.com

驱动程序已成功使用drvload命令加载(它已被提取到C:\DRIVERS\WIN\AMT\MEI\MEI\HECI.inf;C:是我的 USB 闪存驱动器),但是它对我来说不起作用,MEUpdate.CMD失败了。

我使用不同的“包”成功了:Intel 管理引擎接口 7.1 和 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% 确定这是否有必要 - 我不想重复该实验。

顺便说一句,不要忘记在固件升级之前在 BIOS 设置中启用 Intel AMT,然后在升级之后将其禁用;)

相关内容