AC概率出现读取不到 BCU1 12V0_2 Pwr

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

问题描述

AC长时间概现获取不到BCU1 12V0_2 Pwr、BCU1 12V0_4 Pwr、BCU1 12V0_3 Pwr、BCU1 Temp的值。在AC后首次查看获取正常,后再次查看不正常。

查看日志:发现传感器关联的Scanner.Status在运行中存在=2的情况,Scanenr获取预失败处于防抖状态,。

ThresholdSensor ThresholdSensor_CPUBoardTemp_010101 ReadingStatus: 0 [“expr((($1 == 0) && ($2 > 255)) ? 2 : $1)”]

$1: bmc.kepler.hwproxy /bmc/kepler/Scanner/Scanner_CpuBoard_Temp_010101 **bmc.kepler.Scanner Status** \[\["2026-06-19 09:58:36","fetch",0\],\["2026-06-19 **10:03:22","sig_properties_changed",2**\],\["2026-06-19 10:03:25","sig_properties_changed",0\]\]

$2: bmc.kepler.hwproxy /bmc/kepler/Scanner/Scanner_CpuBoard_Temp_010101 bmc.kepler.Scanner Value \[\["2026-06-19 09:58:36","fetch",26\],\["2026-06-19 10:02:46","sig_properties_changed",27\],\["2026-06-19 10:03:25","sig_properties_changed",27\]\]

同时查看hw_stream.log中存在相同时间,出现Smc_CpuBrdSMC_0101访问失败的情况,并且问题中BCU1 12V0_2 Pwr、BCU1 12V0_4 Pwr、BCU1 12V0_3 Pwr、BCU1 Temp的Scanner都是访问该Smc。

2026-06-19 10:03:22.363447 hwproxy ERROR: hw_log.lua(72): chip: Smc_CpuBrdSMC_0101, bus: I2c_1, read failed: i2c.lua:120: response error, i2c read fail, ret: 5, input:{“requestor”:“SmcDfxInfo_BCU_010101”,“name”:“Smc_CpuBrdSMC_0101”,“is_trace”:false,“rw_type”:1,“type”:1,“mask”:4294967295,“offsetWidth”:1,“smc_target”:1,“has_error”:false,“len”:112,“addrWidth”:1,“addr”:96,“offset”:33}

2026-06-19 10:03:22.364574 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_MemPwrSensorStatus_0101011A from 2000 ms to 4000 ms

2026-06-19 10:03:22.365631 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_pwr2_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.367175 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_pwr4_010101, Scanner_MemPower_0101011A from 1000 ms to 2000 ms

2026-06-19 10:03:22.369611 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_CpuMosTempHigh_3_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.370742 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_SensorStatus_1_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.371716 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_CpuMosTempHigh_4_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.373446 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_SystemStatus_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.374774 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_SystemCPUErrorRestart_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.375932 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_CPUStatus_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.377401 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_CpuMosTempHigh_1_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.378573 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_CpuBoard_Temp_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.379746 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_pwr3_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.384469 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_CpuMosTempHigh_2_010101 from 1000 ms to 2000 ms

2026-06-19 10:03:22.385971 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_BCUPwrSigDrop_01010118 from 400 ms to 500 ms

2026-06-19 10:03:22.387517 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_BCUPwrOnTimeOut_01010118 from 400 ms to 500 ms

2026-06-19 10:03:22.389134 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_Cpu1ProcessorHotAccessor_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.390612 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_Cpu1ThermalTripAccessor_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.392569 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_100M5ClockFailMntr_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.394160 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_156M25ClockFailMntr_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.395624 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_100M1ClockFailMntr_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.397531 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_100M3ClockFailMntr_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.398964 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_100M0ClockFailMntr_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.401253 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_100M6ClockFailMntr_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.403988 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_Cpu1CATERRAccessor_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.405259 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_100M4ClockFailMntr_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.406634 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_SysRstDetected_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.409040 hwproxy INFO: scanner.lua(408): chip: Smc_CpuBrdSMC_0101 change scan period of scanner: Scanner_32kClockFailMntr_010101 from 400 ms to 500 ms

2026-06-19 10:03:22.895487 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_pwr4_010101, Scanner_MemPower_0101011A to 1000 ms

2026-06-19 10:03:23.510511 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_BCUPwrSigDrop_01010118 to 400 ms

2026-06-19 10:03:23.512032 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_BCUPwrOnTimeOut_01010118 to 400 ms

2026-06-19 10:03:23.514142 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_Cpu1ProcessorHotAccessor_010101 to 400 ms

2026-06-19 10:03:23.517955 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_Cpu1ThermalTripAccessor_010101 to 400 ms

2026-06-19 10:03:23.519558 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_100M5ClockFailMntr_010101 to 400 ms

2026-06-19 10:03:23.523348 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_156M25ClockFailMntr_010101 to 400 ms

2026-06-19 10:03:23.526733 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_100M1ClockFailMntr_010101 to 400 ms

2026-06-19 10:03:23.531321 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_100M3ClockFailMntr_010101 to 400 ms

2026-06-19 10:03:23.535030 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_100M0ClockFailMntr_010101 to 400 ms

2026-06-19 10:03:23.537385 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_100M6ClockFailMntr_010101 to 400 ms

2026-06-19 10:03:23.539529 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_Cpu1CATERRAccessor_010101 to 400 ms

2026-06-19 10:03:23.543713 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_100M4ClockFailMntr_010101 to 400 ms

2026-06-19 10:03:23.547431 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_SysRstDetected_010101 to 400 ms

2026-06-19 10:03:23.551459 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_32kClockFailMntr_010101 to 400 ms

2026-06-19 10:03:25.240344 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_pwr2_010101 to 1000 ms

2026-06-19 10:03:25.243057 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_CpuMosTempHigh_3_010101 to 1000 ms

2026-06-19 10:03:25.244638 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_SensorStatus_1_010101 to 1000 ms

2026-06-19 10:03:25.246220 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_CpuMosTempHigh_4_010101 to 1000 ms

2026-06-19 10:03:25.248131 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_SystemStatus_010101 to 1000 ms

2026-06-19 10:03:25.249906 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_SystemCPUErrorRestart_010101 to 1000 ms

2026-06-19 10:03:25.252255 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_CPUStatus_010101 to 1000 ms

2026-06-19 10:03:25.253817 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_CpuMosTempHigh_1_010101 to 1000 ms

2026-06-19 10:03:25.255507 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_CpuBoard_Temp_010101 to 1000 ms

2026-06-19 10:03:25.257313 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_pwr3_010101 to 1000 ms

2026-06-19 10:03:25.259254 hwproxy INFO: scanner.lua(415): chip: Smc_CpuBrdSMC_0101 reset scan period of scanner: Scanner_CpuMosTempHigh_2_010101 to 1000 ms

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC2509]

  • 硬件配置:[如 CPU、内存等]

重现步骤

  1. [第一步]

  2. [第二步]

  3. [第三步]

期望结果

[您希望实现什么]

实际结果

[实际发生了什么,包含错误信息]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

分析结论

[详细总结您对此问题的分析结论]

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

解决方案建议

根据知识库中的处理案例(如《升级VRD失败问题分析》中提到的“二值一致防抖策略”),以及《【CSR设计缺陷】Scanner防抖状态触发传感器No Reading和风扇异常调速》中的分析,建议采取以下行动:

  1. 排查和修复MCU固件(根因解决)

    • 优先操作:参考《V3硬件访问错误排查指南》,首先排查 Smc_CpuBrdSMC_0101 MCU 的版本状态。
    • 临时恢复:如果确认是 MCU 问题,可尝试对 MCU 进行 AC 断电重启,观察状态是否恢复。
    • 最终方案:若 AC 重启无效,需要对 MCU 进行重新烧录或升级固件。联系 MCU 固件团队,修复其中概率性通信失败的问题。
  2. 优化 BMC 侧防抖策略(缓解方案)

    • 调整防抖参数:可以考虑增大与 BCU 电压和温度相关的 Scanner 的 FailureDebounceCountSuccessDebounceCount 的默认值(从10次调整到更高,如20或30次),以容忍更长时间的 MCU 短暂失联,避免将“防抖状态(2)”传导至上层传感器。
    • 警惕副作用:但需要注意,过大的防抖参数会延长真实故障的发现时间,需要谨慎评估。特别是《【CSR设计缺陷】》中提到的,MonitoringStatusThresholdSensorReadingStatus 对非0状态敏感,可能会导致风扇异常调速。在调整参数时,务必同步验证风扇控制策略,防止出现风扇转速异常等问题。
点击此处查看详细分析解答

根据您提供的日志和问题描述,结合知识库中的相关信息,以下是针对“AC概率性读取不到BCU1 12V0_2 Pwr、BCU1 Temp等值”问题的分析和结论。

问题重现及根因分析

1. 现象复现与问题逻辑链

根据日志,问题发生的完整逻辑链条如下:

  1. 底层通信失败hw_stream.log 显示在 2026-06-19 10:03:22hwproxySmc_CpuBrdSMC_0101 的 I2C 访问失败。错误信息“i2c read fail, ret: 5”表明 I2C 总线通信出现错误,从设备(SMC)未正确应答。
  2. Scanner防抖机制触发:由于 I2C 读取失败,所有关联到该芯片(Smc_CpuBrdSMC_0101)的 Scanner 开始进入防抖状态。根据知识库文档,Scanner 在首次扫描失败后,其 Status 会变为 2(防抖中),这与您日志中观察到的现象完全吻合。日志中 Scanner_CpuBoard_Temp_010101Status10:03:22 变为 2
  3. 扫描周期调整:在 I2C 失败后,系统自动将大部分 Scanner 的扫描周期延长(例如从 1000ms 调整至 2000ms,从 400ms 调整至 500ms)。这是系统的总线拥塞缓解策略,旨在减少对故障总线的访问压力,但这同时也延长了数据恢复的时间。
  4. 上层传感器读数异常ThresholdSensorReadingStatus 通过表达式 expr((($1 == 0) && ($2 > 255)) ? 2 : $1) 计算。
    • $1Scanner.Status(在故障时为 2,非 0)。
    • $2Scanner.Value(正常值如 27)。
    • 因为 $1 不为 0,条件不成立,ReadingStatus 直接等于 $1 的值,即 2 (防抖状态)。这表明传感器进入了“预失败”或“防抖”状态,导致上层应用认为数据不可用或异常。
  5. 数据恢复:直到 10:03:23 开始,I2C 通信恢复,日志显示 reset scan period,Scanner 的扫描周期逐渐恢复正常。随后 Scanner_CpuBoard_Temp_010101Status10:03:25 恢复为 0(正常)。

2. 根本原因诊断

问题的根本原因在于I2C 总线与 SMC(系统管理控制器)芯片之间的通信存在间歇性故障

  • 协议层面ret: 5 是一个非常典型的 I2C 通信错误码,通常表示“从设备无应答(NACK)”或“仲裁丢失”,指向物理层或链路层问题。
  • 硬件层面:根据知识库文档《V3硬件访问错误排查指南》,Smc_CpuBrdSMC_0101 由 MCU 实现。文档明确指出,此类问题应优先排查 MCU 的固件版本和运行状态。已知的 MCU 概率性问题(如 GD MCU 读数问题)会导致此类访问失败。
  • 机理总结:MCU 在特定条件下(如高负载、时序抖动)未能及时响应 BMC 的 I2C 请求,导致单次或短时通信失败。BMC 的 Scanner 防抖机制虽然能防止短暂波动,但在概率性高频出现时,会导致上层业务(如温度、电压读取)出现间歇性不可用。

解决方案建议

根据知识库中的处理案例(如《升级VRD失败问题分析》中提到的“二值一致防抖策略”),以及《【CSR设计缺陷】Scanner防抖状态触发传感器No Reading和风扇异常调速》中的分析,建议采取以下行动:

  1. 排查和修复MCU固件(根因解决)

    • 优先操作:参考《V3硬件访问错误排查指南》,首先排查 Smc_CpuBrdSMC_0101 MCU 的版本状态。
    • 临时恢复:如果确认是 MCU 问题,可尝试对 MCU 进行 AC 断电重启,观察状态是否恢复。
    • 最终方案:若 AC 重启无效,需要对 MCU 进行重新烧录或升级固件。联系 MCU 固件团队,修复其中概率性通信失败的问题。
  2. 优化 BMC 侧防抖策略(缓解方案)

    • 调整防抖参数:可以考虑增大与 BCU 电压和温度相关的 Scanner 的 FailureDebounceCountSuccessDebounceCount 的默认值(从10次调整到更高,如20或30次),以容忍更长时间的 MCU 短暂失联,避免将“防抖状态(2)”传导至上层传感器。
    • 警惕副作用:但需要注意,过大的防抖参数会延长真实故障的发现时间,需要谨慎评估。特别是《【CSR设计缺陷】》中提到的,MonitoringStatusThresholdSensorReadingStatus 对非0状态敏感,可能会导致风扇异常调速。在调整参数时,务必同步验证风扇控制策略,防止出现风扇转速异常等问题。

hwproxy ERROR : hw_log.lua(72): chip: Smc_CpuBrdSMC_0101, bus: I2c_1, read failed: i2c.lua:120: response error, i2c read fail, ret: 5
返回码为5,需联系硬件排查iic链路