答案内容由AI生成,仅供参考:
总结
“硬件存在 ≠ 界面可见”
在 OpenUBMC 架构下,电源是否能在 WEB 页面显示,依赖于 SR 配置 → BMC 探测 → webrest 接口 → 前端渲染 这一完整链条。
当前现象表明,PSU7 和 PSU8 的配置未在 SR 文件中完整声明,导致 BMC 无法建立其模型,最终 Web 页面无法获取和展示。
建议优先 检查并补全 SR 文件中 PSU7 和 PSU8 的配置定义,并验证 webrest 接口输出,即可解决该问题。
点击此处查看详细分析解答
电源板配置4个电源,但WEB页面仅显示2个的原因分析
问题描述
在适配一块电源转接板的场景中,系统物理上配置了8个电源(PSU1-4位于扩展板,PSU5-8位于电源转接板),其中扩展板的PSU1-4可正常显示。然而,在WEB管理界面中,电源转接板上的PSU5-PSU8仅有PSU5和PSU6能被正确识别并显示,PSU7与PSU8未出现在界面中,导致信息展示不完整,影响运维可视性。
环境信息
- 操作系统:OpenUBMC(社区版)
- 软件版本:2509 版本(
25.12.01.01 或类似命名)
- 硬件配置:
- 主控板(BMC)管理多个电源槽位
- 扩展板:支持 PSU1-PSU4
- 电源转接板:支持 PSU5-PSU8(新增部分)
- 每个电源通过 I2C 接口与 BMC 通信
重现步骤
- 将电源转接板连接至系统,插入 PSU5 和 PSU6 电源模块;
- 插入 PSU7 和 PSU8 模块;
- 登录 Web 页面,访问 “电源&功率” 界面;
- 观察电源列表显示情况;
- 使用
GetPowerSupplyInfo 命令或后台日志检查所有电源是否存在。
结果:
- PSU5 和 PSU6 显示正常
- PSU7 和 PSU8 未显示
分析结论
1. 物理存在但界面未展示,说明问题出在“识别链”末端
根据知识库信息,PSU6 的 Presence=1 且已进入 Connector_PowerSupply_6_01010E 对象中,但仍未能在“电源&功率”界面显示,这表明硬件检测已完成,但 UI 层未正确获取或渲染数据,属于 “前端可见性”与“后端探测”之间的断链。
此问题与文档 #4(评审:webrest 需新增 Position 显示电源位置)和 #9(前端裁剪机制)高度相关,说明 webrest 接口及前端逻辑是决定是否显示的关键。
2. Webrest 接口数据缺失或过滤是核心原因
关键机制:webrest 接口控制 UI 渲染
从搜索结果可知:
【已评审】webrest需要新增属性Position显示电源位置
URL:UI/Rest/System/PowerSupply 提供 SupplyList 列表,前端据此渲染电源槽位。
这意味着 WEB 页面不会自动扫描所有 PSU,而是依赖 /UI/Rest/System/PowerSupply 接口返回的 SupplyList 中的条目来决定显示哪些电源。
若 PSU7 和 PSU8 未被包含在该接口的返回列表中,则无论其物理是否存在,都不会显示。
3. SR 文件或 CSR 配置未完整定义 PSU7、PSU8 槽位
Knowledge Graph 数据明确指出:
Connector_PowerSupply_6_01010E 是 BMC 级别的属性,由 SR 文件配置驱动。
SR File Configuration 定义了用于计算 PSU 是否存在的表达式(如结合 scanner status 和 connector value 的条件判断)。
问题可能在于:
- SR 文件或 CSR 配置中仅定义了 PSU5 和 PSU6 的
Connector_PowerSupply_X 实体;
- PSU7 和 PSU8 虽物理连接,但缺少如下配置项:
Connector_PowerSupply_7_01010E
Connector_PowerSupply_8_01010E
- 导致 BMC 的设备树(Device Tree)或扫描器(Scanner)未将这两个槽位注册为有效 PSU 槽。
因此,GetPowerSupplyInfo 命令或 openUBMC 后端无法查询到其信息。
4. Slot 配置未覆盖全部槽位(PsuSlot 定义不全)
Knowledge Graph 提到:
PsuSlot_1 是一个槽位配置对象,包含:
SlotNumber
SlotI2cAddr
Presence 监测寄存器(如 Scanner_PS1Pres.Value)
这些对象通常在 .sr 文件(如 14100513_...sr)中静态定义。
推测:
当前配置文件 只包含了 Slot5 和 Slot6 的 PsuSlot 定义,而 Slot7 和 Slot8 缺失,导致:
- I2C 地址未绑定
- Presence 检测逻辑未配置
- Eeprom_PsuChip 无引用
→ 因此 BMC 不认为它们是“已知”槽位。
5. Power & Power Interface 显示逻辑存在过滤机制
知识图谱中明确指出:
2509 Version 的版本存在 系统电源配置丢失或禁用的问题,导致部分电源数据隐藏。
System Power Configuration 与 UI 显示行为强关联。
此外,文档 #1 提到:
电源设置按钮是否显示,依赖于 DeepSleepSupported、PowerCappingSupported 等能力字段。
这说明:即使 PSU 存在,如果系统未正确声明其功能支持,则前端可能跳过渲染。
结论与根本原因
| 原因类别 |
说明 |
根本原因 |
SR/CSR 配置文件未完整定义 PSU7 和 PSU8 的槽位信息(如 Connector、SlotNumber、I2C 地址、Presence 扫描器等),导致 BMC 无法生成对应的 PowerSupply 实体,进而 webrest 接口未将其纳入 SupplyList 返回,前端无法显示。 |
次要原因 |
2509 版本 BMC 存在电源配置不稳定问题(如 PowerSensor 缺失、配置还原),可能加剧显示异常。 |
次要原因 |
Web 前端依赖 webrest/UI/Rest/System/PowerSupply 接口,若后端未返回 PSU7/8,则即使底层存在也无法显示。 |
解决方案建议
1. 检查并更新 SR/CSR 配置文件
确保以下实体在 .sr 文件中完整定义:
{
"Connector_PowerSupply_7_01010E": {
"Id": "PSU",
"Type": "Psu",
"Position": 7,
"Slot": 7,
"Presence": 1,
"Buses": ["I2c_X_XXXXXX"],
"Bom": "14191046"
},
"Connector_PowerSupply_8_01010E": {
"Id": "PSU",
"Type": "Psu",
"Position": 8,
"Slot": 8,
"Presence": 1,
"Buses": ["I2c_Y_YYYYYY"],
"Bom": "14191046"
}
}
同时确认:
- 对应的
PsuSlot_7、PsuSlot_8 已定义
- 包含
SlotNumber=7/8
- 关联正确的
SlotI2cAddr
- 配置
Presence 所需的 Scanner_PS7Pres.Value 寄存器路径
2. 验证 webrest 接口输出
调用接口:
GET /UI/Rest/System/PowerSupply
检查返回的 SupplyList 是否包含 8 个实体。若仅返回 6 个,则证明后端未加载。
3. 升级或修复至稳定版本
由于 2509 Version 已知存在:
- 电源传感器丢失
- 配置还原问题
尝试升级到更新的版本(如 25.12.01.01 之后版本),避免固件层面 bug。
4. 检查设备树与 I2C 总线映射
确认 PSU7 和 PSU8 连接的 I2C 总线已在 Device Tree 中启用,并且地址无冲突。
总结
“硬件存在 ≠ 界面可见”
在 OpenUBMC 架构下,电源是否能在 WEB 页面显示,依赖于 SR 配置 → BMC 探测 → webrest 接口 → 前端渲染 这一完整链条。
当前现象表明,PSU7 和 PSU8 的配置未在 SR 文件中完整声明,导致 BMC 无法建立其模型,最终 Web 页面无法获取和展示。
建议优先 检查并补全 SR 文件中 PSU7 和 PSU8 的配置定义,并验证 webrest 接口输出,即可解决该问题。