obmc123
(baode_chunbao)
1
数码管以正确配置,其他告警数码管可以正常显示,只有温度告警 “A00” “A01” “A02” 这三个不会显示
web Alarm&Sel 页面已经有inlet 溫度”0x12000003“告警,但是数码管显示 “—”
sr 配置 如下:
请问是否漏配置什么属性了吗?
"Event_InletTempUpperMinor": {
"EventKeyId": "Chassis.ChassisInletOverTempMinor",
"Reading": "<=/Scanner_Lm75_Inlet.Value |> expr($1 > 255 ? 20 : ($1 >= 128 ? (-(255 - $1 + 1)) : ($1 >= 43 ? 20 : $1 )))",
"@Default": {
"Condition": 41
},
"Condition": "<=/ThresholdSensor_InletTemp.UpperNoncritical",
"OperatorId": 4,
"Hysteresis": 2,
"Enabled": true,
"DescArg1": "#/Event_InletTempUpperMinor.Reading",
"DescArg2": "#/ThresholdSensor_InletTemp.UpperNoncritical",
"Component": "#/Component_Chassis"
},
"Event_InletTempUpperMajor": {
"EventKeyId": "Chassis.ChassisInletOverTempMajor",
"Reading": "<=/Scanner_Lm75_Inlet.Value |> expr($1 > 255 ? 20 : ($1 >= 128 ? (-(255 - $1 + 1)) : $1))",
"@Default": {
"Condition": 43
},
"Condition": "<=/ThresholdSensor_InletTemp.UpperCritical",
"OperatorId": 4,
"Hysteresis": 2,
"Enabled": true,
"DescArg1": "#/Event_InletTempUpperMajor.Reading",
"DescArg2": "#/ThresholdSensor_InletTemp.UpperCritical",
"Component": "#/Component_Chassis"
},
"Event_InletTempFail": {
"EventKeyId": "Chassis.ChassisAccessInletTempFailure",
"Reading": "<=/Scanner_Lm75_Inlet.Status",
"@Default": {
"Reading": 0
},
"Condition": 1,
"OperatorId": 5,
"Enabled": true,
"Component": "#/Component_Chassis"
},
"Event_InletTempUpperMinor": {
"EventKeyId": "Chassis.ChassisInletOverTempMinor",
"Condition": "<=/ThresholdSensor_InletTemp.UpperNoncritical",
"Hysteresis": 2,
"LedFaultCode": "A00"
},
"Event_InletTempUpperMajor": {
"EventKeyId": "Chassis.ChassisInletOverTempMajor",
"Condition": "<=/ThresholdSensor_InletTemp.UpperCritical",
"Hysteresis": 2,
"LedFaultCode": "A00"
},
"Event_InletTempFail": {
"EventKeyId": "Chassis.ChassisAccessInletTempFailure",
"Condition": 1,
"LedFaultCode": "A00"
},
答案内容由AI生成,仅供参考:
总结与建议(基于上下文)
| 检查项 |
说明 |
| 事件定义唯一性 |
合并重复定义的 Event_InletTempUpperMinor 和 Event_InletTempUpperMajor,确保一个对象包含所有必需属性(Reading、Condition、OperatorId、LedFaultCode 等)。 |
| 掩码配置 |
检查 ThresholdSensor_InletTemp 的 AssertMask 是否使能了与 LedFaultCode 对应的位。 |
| 硬件CSR/软件CSR |
部分故障码属性可能分布在 hardware.csr 和 soft.sr 中(Context 中明确提到“Event 属性补补数据存在于 soft.sr 文件”),建议核对软硬件配置文件的一致性。 |
| 参考其他工作告警 |
对比已正常显示数码管的其他告警(如 0x02000015、0x02000019 等)的事件配置,确认其是否包含额外的 Code、FaultCode 或 AssertMask 属性。 |
| 查阅原始需求文档 |
如 Topic 5522 所提,咨询相关开发者(如 yufei)或获取内部 Excel 配置清单,以确定 A00 所需的完整配置项。 |
重要提示:以上建议严格基于已提供的 Context,openUBMC 对于数码管故障码的显示机制目前缺乏公开文档,因此无法 100% 确定具体遗漏的属性。您可以通过在 bmc.kepler.Chassis 相关对象中增加 LedFaultCode 并确认合并后的完整配置,以及跟踪 alarm.log 中关于 A00 的初始注册信息(参考 topic 5084 第 6 帖)来进一步排查。
点击此处查看详细分析解答
根据您提供的配置和问题描述,数码管已正确配置其他故障码但“A00”“A01”“A02”不显示,同时Web界面已存在 0x12000003(进风口温度严重告警),说明事件已触发但数码管未点亮。以下基于上下文中的知识图谱和文档记录进行分析。
配置分析
从您贴出的SR配置看,Event_InletTempUpperMinor、Event_InletTempUpperMajor、Event_InletTempFail 均配置了 "LedFaultCode": "A00"(部分定义中重复出现)。根据知识图谱中 A00 实体的描述:
A00 是故障码,表示“进风口温度超过服务器工作温度范围”。
关联关系:A00 → Inlet Temperature、ALM-0x12000001(轻微)、ALM-0x12000003(严重)
参考来源:《TaiShan 机架服务器 iBMC 告警处理 17》
因此 LedFaultCode = "A00" 与进风口温度告警的对应关系是正确的。
可能的原因(基于上下文推断)
在 Context 中,没有提供具体说明导致数码管不显示“A00”的完整配置清单,但存在以下相关线索和常见问题:
1. 事件定义重复导致属性冲突
您提供了 两次 Event_InletTempUpperMinor 和 Event_InletTempUpperMajor 定义,例如:
- 第一次定义完整(含
Reading、Condition、OperatorId、Hysteresis 等),但缺少 LedFaultCode。
- 第二次定义仅包含
EventKeyId、Condition、Hysteresis、LedFaultCode,缺失 Reading、@Default、OperatorId 等关键字段。
在 openUBMC 的配置合并机制中,同一对象在多次出现时如何覆盖或合并并非透明。若最终生效的是不完整的定义,则事件可能仍能触发告警(因为已有的告警记录来自之前运行),但数码管 LedFaultCode 可能因缺失上下文而无法被正确解析显示。
建议:将事件定义合并为唯一的、完整的对象,同时包含 Reading、Condition、OperatorId、Hysteresis、LedFaultCode 等所有必要属性。
2. 数码管显示可能额外依赖传感器状态或“AssertMask”
在知识图谱中,Inlet_Temp 传感器存在 Upper Non-Recoverable 状态,且 TemperatureAbnormal 为 boolean 标志。部分故障码可能需要传感器进入特定告警级别(如 UpperNonRecoverable)才会激活数码管。
此外,ThresholdSensor_GPUAICore1Temp 实体的 ReadingDisplay 显示为 -1,表明传感器读数异常也可能影响显示逻辑。
虽然您的事件已升级为严重告警(0x12000003),但数码管驱动可能只响应特定断言掩码或状态位。Context 中提到 AssertMask、DeassertMask(见 topic 1437 关于温度传感器负值配置),表明这类掩码属性会影响告警行为的生效范围。
建议:检查对应 ThresholdSensor_InletTemp 的配置中是否正确设置了 AssertMask,以确保 LedFaultCode 所对应的故障码能在告警断言时被点亮。
3. openUBMC 尚无统一的数码管故障码配置文档
在 Topic 5522 的讨论中明确提到:
“目前社区上并没有总结过相关的资料,确实是没有这个文档的。……如果只是希望单点解决当下的问题,可以再描述下当前具体的问题点,需要什么告警的信息。”
以及回复中提及:
“有个excel,你看一下最初的原始需求,或者问一下yufei,可能能找到。”
这说明对于数码管故障码 A00、A01、A02 的具体配置方法,openUBMC 社区并未公开完整指南。因此,您的配置可能缺少了一些硬件 CSR 或软件 CSR 中的非公开属性。
4. 事件 Event_InletTempFail 的配置需与其他事件统一
在您的配置中,Event_InletTempFail 出现两次,一次缺失 LedFaultCode,一次包含 LedFaultCode。且该事件的 Reading 引用 Scanner_Lm75_Inlet.Status(传感器状态),而温度超限事件引用 Scanner_Lm75_Inlet.Value(传感器读数)。
数码管显示可能仅与特定事件类型(如 Fail 事件)绑定,但您的 UpperMinor 和 UpperMajor 事件已正确触发,说明问题不限于此。
总结与建议(基于上下文)
| 检查项 |
说明 |
| 事件定义唯一性 |
合并重复定义的 Event_InletTempUpperMinor 和 Event_InletTempUpperMajor,确保一个对象包含所有必需属性(Reading、Condition、OperatorId、LedFaultCode 等)。 |
| 掩码配置 |
检查 ThresholdSensor_InletTemp 的 AssertMask 是否使能了与 LedFaultCode 对应的位。 |
| 硬件CSR/软件CSR |
部分故障码属性可能分布在 hardware.csr 和 soft.sr 中(Context 中明确提到“Event 属性补补数据存在于 soft.sr 文件”),建议核对软硬件配置文件的一致性。 |
| 参考其他工作告警 |
对比已正常显示数码管的其他告警(如 0x02000015、0x02000019 等)的事件配置,确认其是否包含额外的 Code、FaultCode 或 AssertMask 属性。 |
| 查阅原始需求文档 |
如 Topic 5522 所提,咨询相关开发者(如 yufei)或获取内部 Excel 配置清单,以确定 A00 所需的完整配置项。 |
重要提示:以上建议严格基于已提供的 Context,openUBMC 对于数码管故障码的显示机制目前缺乏公开文档,因此无法 100% 确定具体遗漏的属性。您可以通过在 bmc.kepler.Chassis 相关对象中增加 LedFaultCode 并确认合并后的完整配置,以及跟踪 alarm.log 中关于 A00 的初始注册信息(参考 topic 5084 第 6 帖)来进一步排查。
obmc123
(baode_chunbao)
4
系统健康会亮 系统也有0x12000003过问告警,就是数码管没有,并且其他告警数码管都可以正确显示
以上提供的事件定义中,以Event_InletTempUpperMinor为例,你提供了这个事件对象的两份定义。请问这两份定义是保存在同一份CSR中吗?还是分别保存在不带soft和带soft的两个文件中?
请构造下这几个告警,然后查看event组件下/bmc/kepler/Systems/1/Events这个路径,这个路径下面有个接口bmc.kepler.Systems.Events,其中有属性LedFaultCode,看下这个属性的值是多少呢
另外可以构造出告警后再收集份日志
obmc123
(baode_chunbao)
8
这个服务下没有 LedFaultCode 这个属性,但是其他告警数码管可以显示
附件是bmc 日志
dump_info.7z.txt (17.6 MB)
检查了一下日志中收集到的csr,发现Connector_EXU_1_01.sr和Connector_PSR_EEP_0101.sr这两个文件中都配了Event_InletTempUpperMinor这个事件,并且Connector_PSR_EEP_0101.sr中配置的事件没带LedFaultCode属性,怀疑是此处重复配置导致的问题。
建议再检查下,删除重复定义的事件再试下。其他几个有问题的事件也建议排查下
obmc123
(baode_chunbao)
10
配置放到一个文件里面就可以了
奇怪的是代码里面都是配置在两个文件里面的,一个有LedFaultCode,另外一个没有。