通常更新 BIOS/UEFI 二进制文件需要重新启动,但英特尔正在努力改变这一点,目前至少体现在 Linux 服务器上,英特尔无缝更新目的是在运行时执行系统固件更新,例如 UEFI,无需重新启动,有点像 Canonical 对Ubuntu Livepatch服务所做的,但是在软件堆栈中是处于较低的层级实现。
几天前,英特尔向Linux 内核邮件列表提交了一个“介绍平台固件运行时更新和遥测驱动程序”的补丁,部分描述如下:
高服务水平协议 (SLA) 要求系统在不中断服务的情况下运行。通常情况下,系统固件提供了一系列runtime服务,例如 RAS特性,即可靠性、可用性和可服务性,UEFI runtime服务和 ACPI 服务。目前,如果这些代码区有任何固件代码更改,则需要更新系统固件并重新启动。错误修复的示例可能是寄存器大小或寄存器位置错误。这意味着固件升级期间客户服务不可用,可能需要几分钟,这会导致无法满足 SLA的要求。
英特尔提供了一种名为 Management Mode Runtime Update的机制来帮助用户更新固件而无需重新启动。
更多详细信息可以在名为“英特尔管理模式固件runtime更新 – 操作系统接口”的随附文档中找到,该文档解释了英特尔无缝更新的工作原理。
提交给Linux内核的新代码提供了以下功能:
- 执行runtime固件驱动程序更新并激活。
- 能够在运行时注入固件代码,用于动态检测。
- 从runtime固件更新中检索日志并激活遥测的工具。
正如提交的消息中提到的,英特尔无缝更新主要针对那些由于法律要求需要接近 100% 正常运行时间的 Linux 服务器,因此它可能不一定会在最近的Linux 桌面发行版中默认启用,但如果你有一个基于intel的网关或其他系统,需要在最小中断的情况下运行,Intel至少应该会提供一个选项让你避免在关键固件更新期间宕机。
本文消息来源于Liliputing以及Phoronix。
文章翻译者:Jacob,嵌入式系统测试工程师、RAK高级工程师,物联网行业多年工作经验,熟悉嵌入式开发、测试各个环节,对不同产品有自己专业的分析与评估。