【SP】在BIOS启动SP之后,但是BMC web界面显示未启动

问题描述

在BIOS启动SP之后,且进入SP,但是BMC显示SP未启动

环境信息

软件:OpenUBMC 2509

重现步骤

1、在BIOS中选择,Boot → SP Enable
2、启动时按F6进入SP

3、查看SP启动状态

期望结果

web显示SP启动

实际结果

bmc web界面显示状态不对

尝试过的解决方案

重启OS,重新进入SP

期望给出结论时间

2026/1/16之前

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

SP 启动后 BMC Web 界面显示未启动问题分析

:pushpin: 问题概述

在使用 BIOS 启动 Smart Provisioning(SP)并成功进入 SP 界面的情况下,BMC Web 界面的 “SP运行状态” 显示为“下电”,与实际运行状态不符。

:white_check_mark: 环境信息:

  • 系统平台:OpenUBMC 25.09
  • SP版本:1.9.0.23
  • 操作流程
    1. BIOS中设置 Boot → SP Enable
    2. 启动时按 F6 进入 SP
    3. 成功进入 Smart Provisioning 欢迎界面
    4. 查看 BMC Web 页面 → SP 状态仍显示“下电”

:magnifying_glass_tilted_left: 可能原因分析

根据知识库内容和系统架构逻辑,该问题可能由以下原因导致:

1. BMC未正确识别 SP 运行状态

  • 虽然用户通过按键进入了 SP,但 BMC 缺乏有效的状态同步机制来感知 SP 的实际运行。
  • SP 的启动可能是由 BIOS 直接控制的本地流程,未通过标准接口通知 BMC。

2. Redfish/IPMI 接口通信异常

  • 日志中曾出现 Redfish 连接失败问题(failed to establish a new connection to the host),可能影响 BMC 对主机状态的获取。
  • SSL/TLS 版本不兼容也可能阻断通信,导致 BMC 无法从 SP 获取心跳或状态上报。

相关日志示例:

[2026-01-07 12:14:13,435 ERROR] (redfish_client.py:211)- Failure: failed to establish a new connection to the host, message:HTTPSConnectionPool(...): tlsv1 alert protocol version

3. SP 状态上报机制未触发

  • SP 正常运行后应主动向 BMC 上报其运行状态。
  • 若此上报流程(如通过 IPMI、Redfish 或专用命令)未执行或失败,则 BMC 无法更新状态。

4. SP 管理服务未启用相关功能

  • “任务自动使能”或“设备信息收集使能”等功能未开启,可能导致 BMC 不主动监听 SP 状态变化。
  • 这些功能可能是触发 BMC 激活 SP 检测逻辑的前提条件。

:hammer_and_wrench: 建议解决方案

:white_check_mark: 方案一:确认 SP 主动状态上报是否生效

确保 SP 在启动完成后执行以下操作之一:

  • 调用 BMC 提供的 Redfish 接口更新自身状态。
  • 使用 IPMI 命令发送自定义事件或设置特定标志位。

建议接口

POST /redfish/v1/Systems/{SystemId}/Actions/SP.StatusUpdate
{
    "Status": "Running"
}

:white_check_mark: 方案二:启用 SP 自动任务功能

在 BMC Web 界面中,尝试启用以下选项以激活状态监控逻辑:

  • 设备信息收集使能:开启
  • 任务自动使能:开启

:magnifying_glass_tilted_right: 说明:部分系统仅在启用“自动任务”后才启动对 SP 的状态轮询或监听机制。

:white_check_mark: 方案三:检查 Redfish/IPMI 通信状态

  1. 登录 BMC CLI,测试与本地 Redfish 服务的连通性:
    curl -k https://localhost:8090/redfish/v1/Managers/
    
  2. 检查是否有证书或协议版本错误。
  3. 如存在 TLS 协议问题,请升级客户端或调整 BMC SSL 配置支持旧版协议(临时方案)。

:white_check_mark: 方案四:手动触发状态刷新或重启 SP 服务

尝试以下操作强制 BMC 重新检测 SP 状态:

  • 在 BMC Web 中点击“恢复出厂设置”后再重新配置 SP。
  • 执行 BMC 重启或 SP 服务重启命令:
    systemctl restart sp-for-bmc.service
    

:paperclip: 技术背景补充

Smart Provisioning(SP)工作原理

  • SP 是一个预操作系统环境,用于服务器部署、诊断和配置。
  • 支持通过 BIOS 快捷键(如 F6)直接启动。
  • 具备独立网络功能(如 DHCP、IP 分配),可与 BMC 并行运行。

BMC 如何感知 SP 状态?

BMC 通常通过以下方式之一检测 SP 是否运行:

方法 说明
Redfish 状态查询 BMC 定期查询 Redfish 接口 /Managers/Systems 获取运行状态
IPMI Event 上报 SP 启动时发送 OEM Event 到 BMC
专用 D-Bus 信号 SP 启动后触发 bmc.kepler.Systems.SPService.Status=Running

:white_check_mark: 总结与建议

项目 建议
根本原因 BMC 缺少 SP 实时状态感知机制或通信中断
短期解决 启用“任务自动使能”,重启 SP 服务
长期改进 SP 应在启动完成时主动调用 BMC 接口上报状态
验证方法 抓包观察是否发送 IPMI event 或 Redfish 请求

:triangular_flag: 建议提交反馈至 openUBMC 社区
该现象可能属于 UI 状态刷新 Bug,建议在社区提交 Issue,推动完善 SP 状态同步机制,特别是在 OpenUBMC 25.09 版本中增强可观测性支持。


如有更多日志(如 AppDump 中的 spforbmc.log),可进一步分析 SP 与 BMC 之间的交互过程。

相关链接:

  1. 选择SP启动时,报‘Send mount SP command… timeout’
  2. 通过Smart Provisioning安装OpenEuler失败
  3. web界面无法正常显示上下电状态
  4. 【工具分享】资源树调试工具ibusctl分享
  5. bios | 文档中心 | openUBMC

首先这里两个redfish接口:

1、获取manage-id:

[GET] https://{{IP}}/redfish/v1/Managers,查询结果中最后一位为manage-id

2、查看SP状态(manage-id为上个接口中查出来的结果):

[GET] https://{{IP}}/redfish/v1/Managers/{{manage-id}},查询结果中搜索SPStatus为SP当前状态

image

基于上面两个接口,请麻烦收集一下以下信息方便定位:

1、在SP未运行的状态,发送查看SP状态的接口,看下SPStatus的值

2、在F6进入SP后,发送查看SP状态的接口,看下SPStatus的值

3、分别在1、2的状态下,在BMC界面一键收集下BMC日志

我问下,这个SP版本是不是不能单独升级?每个社区的发布版本都是对应的一个SP版本?如25.09对应的SP版本就是1.9.0?

SP版本和openUBMC的版本没有强绑定关系的,可以单独升级

提供一下sp的版本呢,较低版本是sp可能没有适配bmc,无法和bmc交互,会导致bmc无法正确查询该状态。

另外提供一下sp启动后的一键收集日志吧,方便查询sp交互相关的内容。

目前看是sp版本太低,通信失败,升级sp版本试试呢