双路920X08在UBMC下无法开机

问题描述

从iBMC更新到openUBMC后,双路920开不了机
单颗920是可以正常开机的

配置信息

BCU用的社区的sr文件/BCU/14100513_00000001020302024339.sr
网页上UBMC是可以识别到2颗920的信息的,可以获取温度

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

:white_check_mark: 结论

当前无法开机的最可能原因是:

openUBMC 固件未正确配置电源控制逻辑(如 btn_lock 锁定、fructl 缺失配置),导致 CPLD 未接收到上电信号,CPU 侧根本没有加电

即使 BMC 能识别 CPU 温度(通过 IPMI 或 I2C 读取传感器),也不代表 CPU 子系统已供电或启动。

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

双路 Kunpeng 920 模块在 openUBMC 下无法开机问题分析与解决

根据您提供的信息,系统从 iBMC 升级至 openUBMC 后,尽管 BMC 能够正确识别两颗 HiSilicon HUAWEI Kunpeng 920 5220 CPU(包括型号、主频、核数及温度等),但无法完成 CPU 侧开机启动。该问题常见于 openUBMC 迁移场景中,尤其在使用社区版 SR 文件和非官方适配固件时。


:magnifying_glass_tilted_left: 问题现象总结

  • :white_check_mark: BMC 系统运行正常:openUBMC 成功启动,Web 界面可访问。
  • :white_check_mark: CPU 信息被识别:BMC 可通过传感器检测并显示双 CPU 的基本信息(型号为 Kunpeng 920 5220,32 核/32 线程)及温度。
  • :cross_mark: CPU 侧无输出:连接串口无任何打印信息,操作系统未启动。
  • :link: 升级路径:由 iBMC 升级至 openUBMC,可能未经过完整迁移包处理。
  • :gear: BCU 配置:使用了社区提供的 .sr 文件(14100513_00000001020302024339.sr)用于 BCU 配置。

:puzzle_piece: 根本原因分析

结合知识库中的案例和技术文档,以下是可能导致此问题的几个关键因素:

1. 电源控制信号未释放(CPLD/BMC 控制锁死)

在类似问题中(参考文档 #1),用户反馈 CPU 侧“没有上电”,导致无法启动。

  • BMC 控制上电逻辑:服务器上电通常由 BMC 通过发送控制信号(如 SEL_GPIOBTN_LOCK)给 CPLD 来触发。
  • openUBMC 默认逻辑差异:部分 openUBMC 版本默认将电源按钮锁定(btn lock),或未正确初始化上电流程。
  • 关键命令缺失:若未配置 fructl 组件中的 poweron() 流程,或未调用 push_button_short(),将无法模拟短按开机。
2. BCU SR 文件不匹配或不完整
  • 使用社区提供的 .sr 文件可能存在以下风险:
    • 缺少必要的 AccessorScannerPower Button 配置;
    • 未正确映射 BCUIndex,导致 BMC 不知道如何控制对应硬件;
    • 未启用 电源相关对象(FruCtrl),导致无法触发上下电流程。
3. 缺少 Transition Package 或迁移包支持
  • iBMC 到 openUBMC 的升级需使用 Transition Package(过渡固件包) 进行桥接。
  • 若直接刷写 openUBMC 固件而跳过过渡步骤,可能导致:
    • BIOS 启动流程被阻断;
    • BMC 和 CPU 板之间的通信异常;
    • 无法解锁上电条件。
4. BIOS Flash 选择信号受控于 BMC
  • 如知识库所述,某些硬件平台中 BIOS Flash 的选择由 BMC 控制(如 SEL_GPIO0 信号)。
  • openUBMC 固件可能默认将该信号切换至 BMC 自身侧,导致 CPU 无法读取 BIOS 固件,进而无法启动。

:white_check_mark: 解决方案与建议步骤

请按顺序执行以下排查与修复操作:


:white_check_mark: 步骤 1:确认是否真正执行了上电动作

检查 openUBMC 是否具备上下电功能:

# 查看 fructl 日志,确认是否有上电请求
journalctl -u fructl.service | grep -i poweron

# 尝试手动触发开机(若有 CLI 工具)
ipmitool chassis power on

如果返回成功但无反应,说明命令已被接收,但底层未执行。


:white_check_mark: 步骤 2:检查并配置 VPD 中的电源控制对象

确保 VPD 配置中包含完整的电源控制对象,例如:

{
  "FruCtrl": {
    "PowerButton": {
      "Accessor": "cpld_accessor",
      "Scanner": "button_scanner"
    },
    "PgSignal": {
      "Scanner": "pg_scanner"
    }
  }
}
  • 确保 .sr 文件中定义了 power_button 和对应的 Accessor
  • 若未定义,请替换为官方支持版本或适配当前平台的 SR 文件。

:white_check_mark: 步骤 3:检查并修改 BTN_LOCK 状态

问题定位:某些 openUBMC 固件中,开机按钮被逻辑锁定(btn lock),除非明确设置为非 lock 状态。

解决方法

  • 联系您的硬件团队或 CBU 开发人员,确认是否有 BTN_LOCK 寄存器;
  • 修改相关逻辑,默认设置为 非锁定状态
  • 或通过命令临时解锁:
# 示例:通过 SMC 命令与 CPLD 通信(需具体命令字)
smc_tool --cmd unlock_power_button

参考知识库中的回复:“改逻辑命令字默认值改成非lock状态,就可以按键上电”。


:white_check_mark: 步骤 4:验证是否因 SEL_GPIO 导致 CPU 未获权访问 BIOS
  • 咨询硬件工程师:
    • 确认 BIOS Flash 的 SEL_GPIO0 是否由 BMC 控制;
    • 若是,请确认 openUBMC 是否修改了该 GPIO 的方向;
  • 临时测试方案:在 iBMC 下升级 BIOS 后,再升级 openUBMC,避免 BMC 在升级过程中修改 Flash 选择信号。

:white_check_mark: 步骤 5:使用正确的 Transition Package 进行迁移

强烈建议:不要直接刷 openUBMC,而应先刷 Transition Package

  • 获取适配 S920X20 / Kunpeng 920 Module 的 Transition Package;
  • 先通过 iBMC 界面刷入 Transition 固件;
  • 再刷入目标 openUBMC 版本(如 25.09);
  • 此过程可确保签名、分区、兼容性层正确加载。

:white_check_mark: 步骤 6:检查 SR 文件是否适配当前硬件

您使用的 SR 文件为社区提供,建议核对以下内容:

检查项 是否存在
board_name 是否为 S920X20 :white_check_mark:(应在 manifest.yml 中设置)
是否包含 FruCtrl 对象配置 :red_question_mark:
是否定义了 power_button 的 Accessor 和 Scanner :red_question_mark:
BCUIndex 是否正确定义 :red_question_mark:

推荐使用 openUBMC 官方支持的 SR 文件模板:
https://repo.openubmc.cn/AtomGit | GitCode - 全球开发者的开源社区,开源代码托管平台


:books: 相关参考资料


:white_check_mark: 结论

当前无法开机的最可能原因是:

openUBMC 固件未正确配置电源控制逻辑(如 btn_lock 锁定、fructl 缺失配置),导致 CPLD 未接收到上电信号,CPU 侧根本没有加电

即使 BMC 能识别 CPU 温度(通过 IPMI 或 I2C 读取传感器),也不代表 CPU 子系统已供电或启动。


:white_check_mark: 推荐操作顺序

  1. 回退至 iBMC 验证硬件可正常开机;
  2. 获取官方支持的 Transition Package;
  3. 使用适配的 .sr 文件(含完整电源控制配置);
  4. 刷入 Transition → 再刷 openUBMC;
  5. 检查并解除 btn_lockSEL_GPIO 锁定;
  6. 执行 ipmitool chassis power on 测试开机。

如仍有问题,建议提交日志至 openUBMC 社区论坛,并附上:

  • journalctl -u fructl 日志
  • vpd show 输出
  • 使用的 .sr 文件内容摘要

如有更多硬件细节(如 CPLD 型号、板本号),可进一步精准定位。

现在是可以上电的,问题是上电后从BIOS端看是CPU卡建链,原因出在哪

这个原因大概率是相关丝印文件不对,不满足OS/BIOS要求导致的启动失败,要咨询下对应的BIOS同学,到底缺了什么。
另外,附一下BMC环境中的silkconfig.json文件,看看是怎么样的。