基于2509的openubmc版本
前置条件:我们关闭了SP681网卡的SMBUS通道,因为在SMC的环境下,会造成其所在的那条smbus堵塞,具体请见 SP681网卡插上后,该卡所在板卡的I2C链路频繁报错 - Hardware SIG - openUBMC 论坛
初始情况下,BMC通过NCSI over MCTP正常获取网卡温度
此时重启OS,网卡温度无法获取,产生温度获取失败告警:
从日志看重启OS之后NCSI链路检查失败:
log中还看到一个空值错误:
请问这个是否是ncsi通信建立阶段的问题?是否已知?
答案内容由AI生成,仅供参考:
三、总结
| 问题 |
状态 |
参考来源 |
| 重启OS后SP681网卡NCSI通信断开,温度获取为0 |
已知问题,已修复 |
Topic 6873(document chunk reference_id: 1) |
| 根本原因 |
NCSI通信建立阶段异常或温度读取逻辑缺陷 |
同上 |
| 修复方式 |
更新组件驱动,TemperatureStatus默认值设置为4 |
同上 |
| 关闭SMBUS通道的影响 |
不直接导致本问题(SP681主通信走PCIe) |
驱动适配指南(Search Result 9) |
| 建议操作 |
升级至包含修复的组件版本,并按network_adapter排查步骤验证 |
Search Result 2 |
结论:您的问题确实是NCSI通信建立阶段的问题,并且已在社区被识别和修复。请优先参照社区方案更新相关组件(尤其是 component_drivers),同时可继续排查 mctpd 及链路状态日志以确认闭环。
点击此处查看详细分析解答
根据您提供的信息及知识库内容,您所遇到的“重启OS后SP681网卡NCSI通信断开、温度无法获取”的问题在社区中已有相关讨论并被确认为已知问题。以下为您综合分析及参考方案。
一、问题确认:属于已知且已修复的场景
1. 高度匹配的社区案例
在知识库中,有一篇主题与您的问题几乎完全一致:【参考 topic_id: 6873】
- 问题描述:服务器插SP681、SP670网卡,走南向加载,重启OS后出现“网卡温度获取不到”告警。
- 关键日志:通过NCSI报文分析发现网卡返回的温度值为 0,且链路状态检查失败(类似您日志中的
get ncsi link status failed)。
- 根本分析:南向加载时,NCSI通信在OS重启后异常,导致温度读取返回0;反复过温日志与调速策略相关,但最终确认是 NCSI通信建立或温度读取逻辑存在缺陷。
原文摘录:
“分析ncsi报文,收到的温度是0”
“重启os后网卡会返回温度为0”
“南向加载代码是不是需要对传入做异常处理”
2. 官方修复方案
在同一个主题中,社区维护者 xushuo25 回复:
“该问题已在近期解决,尝试用最新 component_drivers 组件代码出包看一下问题是否解决?最新代码中 TemperatureStatus 默认值参照 Scanner详解及数据更新机制设置为 4。”
- 该修复已在 OpenUBMC 26.03 版本及后续版本中合入。
- 解决核心:调整 NCSI 温度读取失败时的默认状态,避免误报。
3. 与您环境的关联
- 您使用的 2509 版本 可能未包含该修复,因此现象与已知问题一致。
- 您关闭了 SP681 网卡的 SMBUS 通道,但 SP681(Hi182x系列)的主要NCSI通信走 PCIe 通道(SMBus仅用于带外辅助信息),因此关闭SMBus 不直接影响核心NCSI链路,但可能导致部分辅助数据获取失败。问题现象(温度读为0、链路检查失败)与已知案例完全吻合,核心问题仍在NCSI通信建立阶段。
二、排查建议(基于知识库的官方指南)
1. 按 network_adapter 组件排查NCSI通信状态
参考【Search Result 2】:
- 确认
network_adapter 已正确识别网卡NCSI能力并注册NCSI网口。
- 确认OS重启后
bmc_network 是否触发了NCSI通道使能(Tx enable)。
- 检查 mctpd(MCTP)或 hwproxy(SMBus/I2C)通信日志中是否存在读写失败或超时。
- 常见错误日志:
get ncsi link status failed、ncsi cmd ctrl get link status failed、ncsi_comm.lua 报告无效端口ID等。
2. 对比已知修复尝试更新组件
- 关键组件:
component_drivers、devmon、libmcpp
- 社区修复版本:
component_drivers/1.2.274@openubmc/stable
devmon/1.2.65@openubmc/stable
libmcpp/1.2.169@openubmc/stable
- 若您尚未更新至上述版本,建议升级后重试。
3. 其他相关已知问题(供交叉验证)
- Intel E810 网卡 因 openUBMC NCSI payload length 计算错误导致温度获取失败(已确认并在Q2版本修复)【参考 topic_id: 1316】。
- 反复切换port口后NCSI概率性不通 也是社区已知问题,与OS重启场景类似【参考 Entity “反复切换port口后NCSI概率性不通问题分析”】。
三、总结
| 问题 |
状态 |
参考来源 |
| 重启OS后SP681网卡NCSI通信断开,温度获取为0 |
已知问题,已修复 |
Topic 6873(document chunk reference_id: 1) |
| 根本原因 |
NCSI通信建立阶段异常或温度读取逻辑缺陷 |
同上 |
| 修复方式 |
更新组件驱动,TemperatureStatus默认值设置为4 |
同上 |
| 关闭SMBUS通道的影响 |
不直接导致本问题(SP681主通信走PCIe) |
驱动适配指南(Search Result 9) |
| 建议操作 |
升级至包含修复的组件版本,并按network_adapter排查步骤验证 |
Search Result 2 |
结论:您的问题确实是NCSI通信建立阶段的问题,并且已在社区被识别和修复。请优先参照社区方案更新相关组件(尤其是 component_drivers),同时可继续排查 mctpd 及链路状态日志以确认闭环。
xushuo25
(xushuo)
6