AC 测试,出现 Disk_BP_Temp 传感器不显示读值的问题

// 此模板仅供参考,如果不适用可以修改

问题描述

AC 测试,出现 Disk_BP_Temp 传感器不显示读值的问题

环境信息

  • 操作系统:不涉及

  • 软件版本:OpenUBMC2606

  • 硬件配置:不涉及

重现步骤

  1. AC测试,获取Disk_BP_Temp传感器温度

  2. 温度获取显示No Reading,

期望结果

AC测试不影响Disk_BP_Temp传感器温度获取

实际结果

AC测试不影响Disk_BP_Temp传感器温度获取失败

尝试过的解决方案

分析结论

目前通过对问题机器的后台数据的抓取的数据,Readingstatus =4 (未开始扫描),通过日志截图,确实有Readingstatus 值更新为4,但是后续,Scanner_HDDBPTemp的status 更新为0后传感器的Readingstatus并没有跟着更改。

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

:pushpin: 总结

您遇到的 Disk_BP_Temp 传感器不显示读值问题,核心原因很可能源于 AC 操作导致的 BMC 初始化时序 + Entity 电源状态变化 + 传感器状态同步延迟 三者的共同作用。Context 中多个 AC 相关温度传感器异常案例(CPU、Memory、BCU1、NPU)均呈现类似的特征——传感器本身硬件正常,但软件层面的状态机未能及时恢复到正常扫描状态。通过检查配置、调整时序、加固状态同步机制,应能解决该问题。

如果需要进一步分析,请提供上述日志(snapshot.csv、hw_stream.log、传感器属性快照)以便获得更精确的结论。

点击此处查看详细分析解答

问题分析:AC 测试导致 Disk_BP_Temp 传感器读值不显示

根据您描述的现象(ReadingStatus = 4,且后续 Scanner_HDDBPTemp 的 Status 更新为 0 后传感器的 ReadingStatus 未同步更新),结合提供的 Context 信息,可以从以下几个维度进行分析。

:blue_book: 相关基础定义

  • Scanner 状态定义(来源:SEU CSR配置指导书传感器管理常见问题指南):
    • 0:正常获取值
    • 1:获取值失败
    • 2:获取值预失败,正在防抖
    • 3:无效状态,未使能
    • 4:初始未扫描状态(SCAN_NOT_SCANNED)
  • 传感器读值状态 (ReadingStatus) 定义(来源:传感器管理常见问题指南):
    • 与 Scanner 的状态取值一一对应:0 正常、1 失败、2 预失败、3 不可访问、4 初始未扫描。
    • 状态转换条件明确:例如从 4 初始未扫描 → 0 通常需要一个完整的扫描周期开始并成功读取。

:magnifying_glass_tilted_left: 结合 Context 中的同类案例

  1. AC 循环导致传感器数据获取失败

    • 知识图谱中多次提到 AC循环 会导致 CPU TemperatureMemory Temperature 的检索失败(如 AC循环 -> CPU Temperature 表示“系统无法检索 CPU 温度数据”)。
    • 同样,ACBCU1 Temp 的关系描述为“AC 在初始成功后无法一致地读取 BCU1 Temp 值”。
    • 这些记录表明 AC 操作是引发温度传感器异常的一个已知诱因
  2. Scanner.Status 为 2(预失败)导致传感器值丢失

    • 话题6420(NVMe硬盘在位数量问题) 中,Scanner 的 Status 为 2 时读取失败,日志显示 Scanner_HddBP_LM75_Status_010102 等 Scanner 的状态也出现过 2,导致信息无法正常获取。
    • 话题6761(AC概率获取不到BCU1 12V0_2 Pwr) 同样描述了 Scanner.Status 变为 2,且在日志中看到 I2C 访问失败(Smc_CpuBrdSMC_0101 读取失败),随后 Scanner 周期被调整(从 2000ms 延长到 4000ms),这反映了硬件通信异常时的防抖与重试机制。
  3. Entity 状态变化导致传感器禁用

    • NPU卡 Chip 1 温度传感器显示异常分析 明确指出:Entity 的下电和不在位都会导致传感器禁用;而在上电后传感器重新使能时若未正确检测在位状态,会导致读值变为无效(No Reading)。
    • 该案例中传感器的 ReadingDisplay-1,实际 Reading 值存在但无法显示在 Web 界面,类似于您提到的 Disk_BP_Temp 显示“No Reading”。
    • 关键结论:AC 掉电再上电操作后,硬盘背板相关的 Entity 可能经历了下电和上电,若传感器状态未能同步更新,即使 Scanner 本身恢复正常,传感器仍可能停留在初始或禁用状态。
  4. BMC 启动时序问题

    • 话题3159(AC后与BIOS交互信息概率性获取不到) 分析指出:AC 断电后 BMC 启动慢于 BIOS,导致 BIOS 信息未能及时上报。同样的原理适用于传感器:BMC 启动过程中部分 Scanner 可能尚未完成初始化,导致读取状态为 4(初始未扫描)
    • 该问题在调整延迟上电时间和优化 BMC 启动顺序后得到缓解;传感器场景下也可能需要通过固定延迟或优化组件启动顺序来保证 Scanner 在 BIOS 或其他依赖之前完成初始化。

:puzzle_piece: 针对您问题的具体分析

观察点 可能原因(基于 Context)
ReadingStatus = 4(初始未扫描) BMC 初始化阶段该 Scanner 尚未启动扫描,或扫描周期尚未开始。AC 后 BMC 启动过程中,硬盘背板对应的 Scanner 可能因为时序、电源锁定或依赖未就绪而停留在未扫描状态。
Scanner_HDDBPTemp 的 Status 更新为 0 后传感器的 ReadingStatus 未跟随变更为 0 传感器的 ReadingStatus 通常通过表达式引用 Scanner 的 Status 属性(如 "Scanner_HDDBPTemp.Status")。若该表达式在扫描周期内未能正确传递值,或传感器因 Entity 状态被临时禁用而不接受新状态,则会出现不同步。此外,传感器可能存在防抖计数器,需要连续成功多次才会切换状态(从 4 → 2 → 0 或 4 → 0)。
为何发生在 AC 测试中 AC 操作会切断并恢复系统供电,导致 BMC 硬件复位。复位过程中传感器硬件(如硬盘背板的 LM75 温度芯片)可能暂时不可达,复位后虽然 Scanner 恢复了通信,但传感器的使能状态未被正确重置(参考 NPU 案例中的 Entity 上下电问题)。

:hammer_and_wrench: 建议排查方向(基于 Context 中类似问题的解决经验)

  1. 检查传感器与 Scanner 的关联配置
    查看 CSR 中 ThresholdSensor_DiskBPTempReadingStatus 属性表达式是否直接引用 Scanner_HDDBPTemp.Status。确保在 AC 后该引用能实时同步,而不是仅通过事件驱动更新。

  2. 验证硬盘背板 Entity 的 PowerState 与 Presence 状态
    AC 后确认硬盘背板对应的 Entity 对象是否处于正确的电源状态(PowerState)和在位状态(Presence)。若 Entity 状态为“下电”或“不在位”,即使 Scanner 正常,传感器也可能被禁用(参考 NPU 案例)。必要时在 AC 稳定后手动触发一次 Entity 状态刷新。

  3. 调整扫描周期与防抖参数
    话题6761 曾通过将扫描周期从 2000ms 延长至 4000ms 来应对异常,您的场景可以尝试适当增加 Scanner_HDDBPTempPeriodSuccessDebounceCount,确保从初始状态(4)切换到正常状态(0)有足够的成功读值次数。

  4. 优化 BMC 启动时间与组件依赖
    参考 BIOS 信息丢失问题的解决方案,在 fructrl 组件中为 AC 后的传感器扫描增加固定延迟(如 8~15s),让硬盘背板硬件准备好后再开始扫描。或者调整组件启动顺序,优先初始化硬盘背板相关的 Scanner 和芯片驱动。

  5. 收集特定日志定位根因
    采集 snapshot.csv(包含 Scanner_HddBP_LM75_Status_010102 的状态变化)、hw_stream.log(记录 I2C 通信错误)、以及传感器对象的完整属性(通过 mdbctl lsprop Scanner_HDDBPTemp 查看 StatusValue 的历史变化)。这些日志可以确认:

    • 是否有 I2C 读取错误(如 completion code: 4ret: 5)导致 Scanner 状态从 0->2->0 的序列;
    • 传感器 ReadingStatus 实际引用的源是什么,以及它是否在 Scanner 状态变化后正确更新。

:pushpin: 总结

您遇到的 Disk_BP_Temp 传感器不显示读值问题,核心原因很可能源于 AC 操作导致的 BMC 初始化时序 + Entity 电源状态变化 + 传感器状态同步延迟 三者的共同作用。Context 中多个 AC 相关温度传感器异常案例(CPU、Memory、BCU1、NPU)均呈现类似的特征——传感器本身硬件正常,但软件层面的状态机未能及时恢复到正常扫描状态。通过检查配置、调整时序、加固状态同步机制,应能解决该问题。

如果需要进一步分析,请提供上述日志(snapshot.csv、hw_stream.log、传感器属性快照)以便获得更精确的结论。

能否再提供一些信息 比如是什么接口显示的No Reading

还有日志信息麻烦也发一下