数码管告警码“进风口温度超过服务器工作温度范围”触发时 数码管不会报“A00”

数码管以正确配置,其他告警数码管可以正常显示,只有温度告警 “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生成,仅供参考:

:white_check_mark: 总结与建议(基于上下文)

检查项 说明
事件定义唯一性 合并重复定义的 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(进风口温度严重告警),说明事件已触发但数码管未点亮。以下基于上下文中的知识图谱和文档记录进行分析。


:magnifying_glass_tilted_left: 配置分析

从您贴出的SR配置看,Event_InletTempUpperMinor、Event_InletTempUpperMajor、Event_InletTempFail 均配置了 "LedFaultCode": "A00"(部分定义中重复出现)。根据知识图谱中 A00 实体的描述:

A00 是故障码,表示“进风口温度超过服务器工作温度范围”。
关联关系:A00 → Inlet Temperature、ALM-0x12000001(轻微)、ALM-0x12000003(严重)
参考来源:《TaiShan 机架服务器 iBMC 告警处理 17》

因此 LedFaultCode = "A00" 与进风口温度告警的对应关系是正确的。


:red_question_mark: 可能的原因(基于上下文推断)

在 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 事件已正确触发,说明问题不限于此。


:white_check_mark: 总结与建议(基于上下文)

检查项 说明
事件定义唯一性 合并重复定义的 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 帖)来进一步排查。

系统健康灯会变吗

系统健康会亮 系统也有0x12000003过问告警,就是数码管没有,并且其他告警数码管都可以正确显示

以上提供的事件定义中,以Event_InletTempUpperMinor为例,你提供了这个事件对象的两份定义。请问这两份定义是保存在同一份CSR中吗?还是分别保存在不带soft和带soft的两个文件中?

在两个不同的文件中

请构造下这几个告警,然后查看event组件下/bmc/kepler/Systems/1/Events这个路径,这个路径下面有个接口bmc.kepler.Systems.Events,其中有属性LedFaultCode,看下这个属性的值是多少呢

另外可以构造出告警后再收集份日志

这个服务下没有 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属性,怀疑是此处重复配置导致的问题。

建议再检查下,删除重复定义的事件再试下。其他几个有问题的事件也建议排查下

配置放到一个文件里面就可以了

奇怪的是代码里面都是配置在两个文件里面的,一个有LedFaultCode,另外一个没有。