SF200HT网卡温度获取不到问题分析
更新时间: 2026/06/01
在Gitcode上查看源码问题背景
- 单板类型:S920S20
- 软件版本:openUBMC 25.12
- 涉及功能:SF200HT网卡温度获取,MCTP over SMBus,南向驱动组件,endpoint上树
- 触发条件:25.12 版本中 SF200HT 网卡迁移到南向驱动组件后,SMBus 主从切换存在时序问题。
- 业务表现:预期通过 MCTP over SMBus 正常获取网卡温度;实际 MCTP endpoint 没有上树,获取温度失败。
问题复现步骤
- 使用 openUBMC 25.12 版本固件。
- SF200HT网卡迁移到南向驱动组件,使用 MCTP over SMBus 获取温度。
- 启动后查看网卡温度信息,显示为空或获取失败。
关键日志信息
endpoint创建失败日志报错:
定位过程
- 确认SF200HT网卡迁移到南向驱动组件后,目标是通过MCTP over SMBus获取温度数据,但endpoint没有上树。
- 排查endpoint创建失败原因,怀疑VPD配置或南向设备树配置有误,确认代码配置,结果代码层面配置正常。
- 确认网卡硬件上是否支持smbus,确认结果,是支持smbus。
- 进一步排查发现网卡温度获取涉及到SMBus主从切换,这个与具体的板卡有关,与硬件确认扩展板是否支持smbus主备切换,如果支持,则考虑主从时序问题。
- 尝试使用网卡厂商提供的定制固件版本,在BMC侧增加延时处理以适配主从切换时序。
问题原因
SMBus主从切换时序问题,导致MCTP endpoint无法正常创建和上树,温度数据获取失败。
解决方案
- 临时方案:联系网卡厂商获取支持SMBus主从切换的定制固件版本,在BMC侧增加10s的延时处理,保证主从切换时序正常,不会出现问题。
- 如果不用南向设备树方式,需要去掉相关组件或检查加载的配置文件版本(版本 5.00 为设备树配置文件)。