SF200HT网卡温度获取不到问题分析
更新时间: 2026/06/01
在Gitcode上查看源码

问题背景

  • 单板类型:S920S20
  • 软件版本:openUBMC 25.12
  • 涉及功能:SF200HT网卡温度获取,MCTP over SMBus,南向驱动组件,endpoint上树
  • 触发条件:25.12 版本中 SF200HT 网卡迁移到南向驱动组件后,SMBus 主从切换存在时序问题。
  • 业务表现:预期通过 MCTP over SMBus 正常获取网卡温度;实际 MCTP endpoint 没有上树,获取温度失败。

问题复现步骤

  1. 使用 openUBMC 25.12 版本固件。
  2. SF200HT网卡迁移到南向驱动组件,使用 MCTP over SMBus 获取温度。
  3. 启动后查看网卡温度信息,显示为空或获取失败。

关键日志信息

endpoint创建失败日志报错:

定位过程

  1. 确认SF200HT网卡迁移到南向驱动组件后,目标是通过MCTP over SMBus获取温度数据,但endpoint没有上树。
  2. 排查endpoint创建失败原因,怀疑VPD配置或南向设备树配置有误,确认代码配置,结果代码层面配置正常。
  3. 确认网卡硬件上是否支持smbus,确认结果,是支持smbus。
  4. 进一步排查发现网卡温度获取涉及到SMBus主从切换,这个与具体的板卡有关,与硬件确认扩展板是否支持smbus主备切换,如果支持,则考虑主从时序问题。
  5. 尝试使用网卡厂商提供的定制固件版本,在BMC侧增加延时处理以适配主从切换时序。

问题原因

SMBus主从切换时序问题,导致MCTP endpoint无法正常创建和上树,温度数据获取失败。

解决方案

  1. 临时方案:联系网卡厂商获取支持SMBus主从切换的定制固件版本,在BMC侧增加10s的延时处理,保证主从切换时序正常,不会出现问题。
  2. 如果不用南向设备树方式,需要去掉相关组件或检查加载的配置文件版本(版本 5.00 为设备树配置文件)。