2. Supermicro固件版本命名与识别

在 Supermicro 服务器生命周期管理中,固件版本是判断系统健康度、兼容性和可升级性的第一手依据。BMC 固件、BIOS 固件、CPLD、电源固件以及各类扩展卡固件各自独立发布,版本号格式并不完全统一。如果只记住“版本越新越好”,很容易在升级时踩坑:新 BIOS 可能要求特定 BMC 版本配合,新 BMC 又可能只支持某个硬件修订版(Revision)的主板。因此,理解版本号的构成、发布日期与兼容性矩阵、以及如何从界面和命令行准确读取版本,是后续所有固件操作的前提。

一、版本号规则:从字符串中读出信息

Supermicro 固件版本通常由“主版本.次版本.修订号”或“主版本.次版本.修订号.构建号”构成,例如 BMC 固件常见的 01.73.12,BIOS 常见的 3.5 或 3.5a。以 BMC 的 01.73.12 为例,第一段 01 表示主版本,通常在架构或功能集发生较大变化时递增;第二段 73 表示功能与安全更新累积的次版本;第三段 12 表示该次版本下的修订或补丁级别。BIOS 的 3.5a 中,字母后缀往往代表针对特定平台或紧急问题的补丁版本,字母越靠后通常表示在同一主次版本上的后续修正。

需要特别注意的是,不同固件组件的版本号不能横向比较。BMC 的 01.73.12 与 BIOS 的 3.5 之间没有大小关系,它们各自遵循自己的发布节奏。真正决定能否搭配使用的是 Supermicro 官方发布的兼容性矩阵,而不是版本号数字本身。

二、发布日期与兼容性矩阵

每个固件包在 Supermicro 官网的下载页面都会标注发布日期(Release Date)和适用的平台、主板型号、硬件修订版。发布日期的作用不只是“知道新旧”,更重要的是判断该版本是否处于官方支持窗口内。例如某 BMC 固件发布于 2023 年,而当前已有 2024 年的安全公告要求修复某个 CVE,那么即使该版本号看起来不低,也可能已经不再被推荐。

兼容性矩阵通常以表格形式给出,行是固件组件(BMC、BIOS、CPLD 等),列是主板型号或平台代号,单元格内是推荐或最低要求的版本。实际使用中要关注三类约束:第一,BIOS 与 BMC 的配套关系,某些 BIOS 版本要求 BMC 不低于某个版本才能正常通信;第二,固件与硬件修订版的对应关系,同一型号主板可能有多个 PCB 修订版,不同修订版可能需要不同固件分支;第三,固件与 CPU 代际的对应关系,例如支持新一代处理器的 BIOS 往往要求先升级到某个 BMC 版本。

建议在升级前先记录当前所有固件版本和主板修订版,再对照官网兼容性矩阵确认目标版本是否匹配,避免“升了 BIOS 却发现 BMC 太旧”的情况。

三、从 BMC/BIOS 界面读取版本

最直观的方式是通过 BMC 的 Web 界面。登录 BMC IP 后,进入 Dashboard 或 System Information 页面,通常可以看到 BMC Firmware Version、BIOS Version、CPLD Version 等字段。部分机型还会在 Maintenance → Firmware Update 页面显示当前已安装的固件列表和对应的构建日期。

BIOS 界面中,开机按 Del 或 F2 进入 Setup,在 Main 或 System Information 页可以看到 BIOS Version、BMC Version 和主板型号。部分平台还会显示 Board Revision,这是判断硬件修订版的关键信息。如果 BIOS 界面没有直接显示修订版,可以查看主板丝印或 BMC 的 FRU 信息。

四、从命令行读取版本

在操作系统内,可以使用 ipmitool 读取 BMC 和 BIOS 版本。以下命令在 Linux 下执行,需要加载 ipmi_devintf 和 ipmi_si 模块:

# 读取 BMC 固件版本
ipmitool mc info

# 读取 FRU 信息,包含主板型号和修订版
ipmitool fru print

# 读取 BIOS 版本(部分平台支持)
ipmitool raw 0x3a 0x01

ipmitool mc info 的输出中,Firmware Revision 即 BMC 固件版本,IPMI Version 表示 IPMI 协议版本。如果 BMC 启用了 Redfish,也可以用 curl 获取更结构化的信息:

curl -k -u ADMIN:PASSWORD https://<BMC_IP>/redfish/v1/Managers/1
curl -k -u ADMIN:PASSWORD https://<BMC_IP>/redfish/v1/Systems/1

返回的 JSON 中,FirmwareVersion 字段对应 BMC 固件版本,BiosVersion 字段对应 BIOS 版本。Redfish 的优势是输出可解析,适合批量巡检脚本。

五、版本信息与硬件修订版的对应关系

硬件修订版(Revision)是主板 PCB 的版本标识,常见形式为 REV 1.01、REV 2.00 等。同一型号主板在不同修订版之间可能更换了 BMC 芯片、CPLD 或电源管理器件,因此固件包通常会注明支持的修订版范围。例如某 BIOS 包标注“for PCB Rev 2.0 and above”,如果误刷到 Rev 1.0 的主板上,可能导致无法启动。

判断方法:先用 ipmitool fru print 查看 Board Mfg、Board Product 和 Board Serial,再结合主板丝印上的 REV 标识确认修订版。然后在官网下载页面核对固件包的适用修订版。如果修订版不在支持范围内,应寻找对应分支的固件,而不是强行升级。

固件版本识别与硬件修订版对应关系 版本读取入口 BMC Web: Dashboard / System Info BIOS Setup: Main / System Info CLI: ipmitool / Redfish 关键版本字段 BMC Firmware: 01.73.12 BIOS Version: 3.5a CPLD Version: 02.03 硬件修订版 Board Product: X12SPi-TF Board Rev: REV 2.00 FRU: ipmitool fru print 兼容性矩阵示例(X12SPi-TF) 组件 REV 1.01 支持 REV 2.00 支持 发布日期 BMC 固件 01.73.12 01.73.12 2024-03-15 BIOS 固件 3.4(仅 REV1) 3.5a 2024-05-20 CPLD 02.03 02.03 2024-01-10 注:表中版本与日期为教学示例,实际请以 Supermicro 官网兼容性矩阵为准

六、实操建议与常见误区

在实际巡检中,建议按以下顺序操作:先通过 ipmitool fru print 记录主板型号和修订版,再通过 ipmitool mc info 和 Redfish 接口记录 BMC、BIOS 版本,最后对照官网兼容性矩阵确认是否存在版本不匹配或已停止支持的组合。如果发现 BIOS 版本低于兼容性矩阵要求的最低版本,应先升级 BMC 再升级 BIOS,因为部分平台的 BIOS 刷新依赖 BMC 的虚拟介质功能。

常见误区有三个:一是只看版本号数字大小,忽略发布日期和兼容性矩阵;二是把不同组件的版本号混在一起比较;三是忽略硬件修订版,直接使用通用固件包。只要在升级前完成“读版本—查矩阵—对修订版”这三步,就能避免绝大多数固件升级事故。