S920 X20 S20带内升级BMC等固件方法指导

// 此模板仅供参考,如果不适用可以修改

问题描述

S920 X20 S20带内升级BMC等固件方法指导

期望结果

带内刷新固件接口

答案内容由AI生成,仅供参考:

:white_check_mark: 总结

方法 优势 推荐指数
uREST 操作简单、流程完整 :star::star::star::star::star:
ipmitool 通用性强、兼容性好 :star::star::star::star:

对于 S920X20 平台,建议优先使用 uREST 工具完成带内 BMC 固件升级。若无该工具,则严格按照 ipmitool 分步流程操作,并确保每一步成功后再进入下一阶段。

:light_bulb: 提示:如需获取完整命令模板或脚本自动化支持,可在 openUBMC 社区请求协助。

点击此处查看详细分析解答

S920X20 带内升级 BMC 固件方法指导

本文基于 S920X20 硬件平台,结合知识库与相关技术文档,提供在该设备上执行 带内(In-Band)升级 BMC 及其他固件 的详细方法指导。适用于测试、开发或产线环境下的固件更新需求。


:pushpin: 背景说明

  • S920X20 是基于 Kunpeng 920 架构 的服务器平台,广泛用于华为 TaiShan 系列及 openUBMC/iBMC 测试环境。
  • 通常情况下,推荐使用 带外(Out-of-Band)方式(如 WebUI、Redfish、IPMI-over-LAN)进行固件升级。
  • 在部分特殊场景(如生产测试、自动化部署),需通过 操作系统内部(带内) 执行升级操作,本文重点介绍此类方法。

:warning: 风险提示:带内升级过程中若发生断电或中断连接,可能导致 BMC 变砖,请确保操作环境稳定。


:white_check_mark: 支持的固件类型

固件类型 是否支持带内升级 备注
BMC :white_check_mark: 主要目标
BIOS :white_check_mark: 是(需注意模式) 支持普通/无感升级
CPLD :white_check_mark: 依赖 JTAG/IPMB 链路
RAID卡/NPU等扩展卡 :white_check_mark: 是(部分) 需适配驱动与协议

:puzzle_piece: 升级前准备

1. 环境要求

项目 推荐配置
操作系统 CentOS/RHEL 7+/Ubuntu 20.04+,麒麟 V10
工具包 ipmitooluRESTredfish-client
网络 BMC 已配置 IPv4/IPv6 地址,可通信
权限 当前用户具有 root 或管理员权限
固件包 准备适用于 S920X20 的 .hpm 格式固件包(如:S920X20-S920X21-GBMC_5.05.12.25.hpm

2. 安装依赖工具

# 安装 ipmitool(以 Ubuntu 为例)
sudo apt-get install ipmitool

# 加载 veth 驱动(用于 IPv6 带内通信)
modprobe host_veth_drv
ifconfig veth up

:hammer_and_wrench: 方法一:使用 uREST 工具(推荐)

uREST 是华为提供的统一 RESTful 接口客户端,支持通过 Redfish 协议执行带内固件升级,操作简洁且自动化程度高。

:inbox_tray: 使用步骤

# 命令格式
./urest -H [BMC_IPv6] -U Administrator upgradefw -i /path/to/firmware.hpm -PRO [scp/sftp] -U [access_user]

# 示例:通过 IPv6 地址执行升级
./urest -H [fe80::9e7d:a3ff:fe28:6ffa%veth] -U Administrator upgradefw -i ~/image.hpm -PRO scp -U root

:locked: 参数说明

参数 说明
-H BMC 的 IPv6 地址(可从 ipmitool lan6 print 获取)
-U BMC 登录用户名
-i 固件文件路径
-PRO 传输协议(scp/sftp/nfs)
-U 文件传输账户

:white_check_mark: 优势:一键完成上传+升级+校验,无需手动控制流程。


:hammer_and_wrench: 方法二:使用 ipmitool 命令执行(标准流程)

适用于未安装 uREST 的环境,需手动分步执行。

Step 1:使能 DFT 命令(必要)

部分系统默认禁用私有命令,需先开启:

ipmitool raw 0x30 0x90 0x20 0xdb 0x07 0x00 0x01

其中 0xdb 0x07 0x00 为华为 IANA 标识的小端序。

Step 2:上传固件文件

通过 SCP 上传至 BMC 的 /tmp 目录:

scp -6 image.hpm root@[fe80::9e7d:a3ff:fe28:6ffa%veth]:/tmp/image.hpm

:warning: 必须上传至 /tmp 路径,否则后续命令无法识别。

Step 3:启动固件升级

ipmitool raw 0x30 0x91 0xdb 0x07 0x00 0x06 0xAA 0x00 0x01 0x00 0x0E 0x2F 0x74 0x6D 0x70 0x2F 0x69 0x6D 0x61 0x67 0x65 0x2E 0x68 0x70 0x6D
  • 最后部分 0x2F.../tmp/image.hpm 的 ASCII 编码。

Step 4:查询升级进度

ipmitool raw 0x30 0x91 0xdb 0x07 0x00 0x06 0x00

返回值解释:

  • 00:准备中
  • 01~FF:升级百分比(如 64 表示 100%)
  • CD:完成

Step 5:结束升级并重启

# 设置自动重启标志
ipmitool raw 0x30 0x91 0xdb 0x07 0x00 0x06 0xCD

# 或手动重启 BMC
ipmicmd -k "0f 00 06 02" smi 0

:counterclockwise_arrows_button: 升级后验证

  1. 等待 BMC 自动重启(约 3–5 分钟)
  2. 重新登录 Web 界面或执行:
ipmitool mc info

检查输出中 Firmware Revision 是否已更新为新版本。

:memo: 示例输出:

Device ID              : 1
Device Revision        : 1
Firmware Revision      : 5.05.12.25
IPMI Version           : 2.0
Manufacturer ID        : 2011

:red_exclamation_mark: 常见问题与处理

问题 可能原因 解决方案
上传失败 /tmp 权限不足 检查路径是否正确,用户是否有写权限
升级卡在 0% DFT 未使能 执行 raw 0x30 0x90... 开启私有命令
Web页面空白 固件损坏或签名不匹配 尝试刷回旧版本或使用过渡包
风扇满转 BMC 重启未完成 按电源键启动主机主系统,风扇将恢复正常
Invalid data 错误 厂商 ID 错误 确认小端序正确(华为为 DB 07 00

:locked_with_key: 安全建议

  1. 升级前备份当前配置:
    ipmitool fru print > fru_backup.txt
    
  2. 使用官方签名固件包,避免使用自编译未签名版本(可能导致失败或安全漏洞)。
  3. 对于 openUBMC 系统,确保已正确配置 VPDboard_nameS920X20

:books: 参考资料

厂商 ID(十六进制) 小端序(3字节)
华为 0x0007DB DB 07 00
戴尔 0x0002A2 A2 02 00
惠普 0x00103C 3C 10 00

:white_check_mark: 总结

方法 优势 推荐指数
uREST 操作简单、流程完整 :star::star::star::star::star:
ipmitool 通用性强、兼容性好 :star::star::star::star:

对于 S920X20 平台,建议优先使用 uREST 工具完成带内 BMC 固件升级。若无该工具,则严格按照 ipmitool 分步流程操作,并确保每一步成功后再进入下一阶段。

:light_bulb: 提示:如需获取完整命令模板或脚本自动化支持,可在 openUBMC 社区请求协助。

文档里面有提供ipmitool 升级方法