两个电源,一个正常插着电源线,另一个在位,但是不插电源线,此时会产生The AC/DC input of PSU 2 is lost or out-of-range(0x0300000D)告警,把未插线的电源拔掉后,告警取消,重新插入未产生该告警
查看日志打印,看着像是没有打开monitor,缺少了如图这样的打印流程。
两个电源,一个正常插着电源线,另一个在位,但是不插电源线,此时会产生The AC/DC input of PSU 2 is lost or out-of-range(0x0300000D)告警,把未插线的电源拔掉后,告警取消,重新插入未产生该告警
查看日志打印,看着像是没有打开monitor,缺少了如图这样的打印流程。
答案内容由AI生成,仅供参考:
| 项目 | 内容 |
|---|---|
| 问题本质 | PSU 重新插入后,监控任务未启动,导致未能检测 AC 输入丢失 |
| 关键依赖 | PsuSlot 模块必须在插拔后正确执行 register_psu_slot 并启动 power_monitor_start |
| 根本原因 | PSU 插入事件未触发完整的初始化和监控启动流程 |
| 解决方案 | 1. 确保 PsuSlot 正确响应插拔事件2. 添加缺失的日志验证流程执行 3. 检查协议加载与 self.PsuChip 初始化 |
根据您提供的问题描述及日志信息,当前现象为:
0x0300000D(AC/DC 输入丢失或超出范围);0x0300000D 告警;power monitor start 等关键监控启动流程的打印。此问题表明:电源模块重新插入后,其监控任务未能正常启动,导致无法检测到无输入电源的异常状态。
结合知识图谱(KG)与文档内容,可得出以下结论:
0x0300000D 的触发机制"entity": "0x0300000D", "type": "data", "description": "0x0300000D is an event code indicating loss or out-of-range AC/DC input on PSU 2."
该事件由 PSU 的 AC/DC 输入异常触发,属于硬件级告警,通常应由 BMC 通过传感器(如 PS2 IIn、PS2 Status)监测并记录。
PsuSlot 与 monitor 机制"entity": "PsuSlot", "type": "organization", "description": "PsuSlot is a multifaceted entity... enabling uniform interface access... and facilitating communication through protocol drivers."
PsuSlot 是管理 PSU 插槽的核心软件抽象模块。power_monitor_start)。关系:
PsuSlot→register_psu_slot→ 关联 OnePower 与 PSU 插槽。
如果 PsuSlot 在检测到 PSU 插入后 未能正确调用 register_psu_slot 或未启动 monitor 任务,则不会触发后续的电压/电流监测逻辑。
power monitor start 表明监控未启动您提到日志中缺失如下关键打印:
CE: PsuSlot.lua(580): ps2 power monitor start
CE: psu.lua(493): For power supplies, manufacturer mismatch: false, model mismatch: false
CE: psu.lua(84): register PSU2 firmware successfully
而这些日志属于以下流程的一部分:
PsuSlot 的初始化流程;register_psu_slot 注册 PSU;power_monitor_start);结论: 重新插入 PSU 后,系统虽识别其“在位”,但 未完整执行初始化流程,导致监控服务未开启,因此无法检测“无 AC 输入”状态,也不会重新触发 0x0300000D 告警。
| 可能原因 | 依据 |
|---|---|
PsuSlot 未正确重启监控服务 |
PsuSlot 具有 monitor 功能(如 power_monitor_start 和 stop_monitor_tasks),若插拔操作未触发 start_monitor_tasks,则监控不会恢复。 |
文档提示:“第二种写法需要先加载默认协议,由 adapter 读完厂商型号后,再根据厂商、型号重新加载协议文件。” 若协议加载失败,则 fetch_property 失效。 |
|
self.PsuChip 初始化失败 |
KG 中存在报错:The self.PsuChip object was not correctly initialized by the protocol, causing Read to be nil. 若芯片对象未初始化,则无法读取输入状态。 |
首次上报 0x0300000D 后,若状态机未重置,重新插入可能被视为“状态未变”,从而不重复上报告警。但此行为不符合预期,应识别为新设备事件。 |
PsuSlot 是否在 PSU 插入后启动监控PsuSlot.lua 是否在检测到 PSU 插入后调用:power_monitor_start()
PsuSlot 的 probe() 或 insert_handler() 回调中包含注册和监控启动逻辑。register_psu_slot 是否被调用register_psu_slot called for PSU2
OnePower 没有重新绑定 PSU 插槽。在关键位置添加日志输出(开发阶段):
-- 在 PsuSlot.lua 中
function PsuSlot:on_psu_insert()
log("PSU inserted, starting monitor...")
self:start_monitor_tasks() -- 应有对应日志输出
end
Scanner_PS1Pres 等在位信号扫描周期合理(如 2000ms);尝试手动触发刷新:
ipmitool sensor readings "PS2 Status"
ipmitool sel list
或通过 OnePower:fetch_property('OutputVoltage') 强制读取一次电压。
| 项目 | 内容 |
|---|---|
| 问题本质 | PSU 重新插入后,监控任务未启动,导致未能检测 AC 输入丢失 |
| 关键依赖 | PsuSlot 模块必须在插拔后正确执行 register_psu_slot 并启动 power_monitor_start |
| 根本原因 | PSU 插入事件未触发完整的初始化和监控启动流程 |
| 解决方案 | 1. 确保 PsuSlot 正确响应插拔事件2. 添加缺失的日志验证流程执行 3. 检查协议加载与 self.PsuChip 初始化 |
最终建议:检查
PsuSlot模块的插拔处理逻辑,确保每次 PSU 插入都触发完整的 注册 + 协议加载 + 监控启动 流程。
相关链接:
使用的power_mgmt组件版本是多少
power_mgmt/1.70.162@openubmc版本
该版本存在电源拔插问题,最新版本已经修复,可以使用最新的组件版本进行验证下