MCX623436AN-CDAB网卡fru信息加载失败

1230基线版本

网卡fru信息显示异常

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

结论

该现象的根本原因是:虽然MCX623436AN-CDAB网卡被系统识别并分配了FRU ID 9,但由于FRU数据无法从目标设备读取或未正确注册,导致ipmitool fru print操作失败

主要方向应聚焦于:

  1. 确认CSR配置中是否正确定义了该网卡的ComponentFruData
  2. 验证frudata服务是否能正常访问该设备的EEPROM;
  3. 排查I²C总线通信或固件兼容性问题。

:pushpin: 建议最终解决方案:升级至支持更完善的openUBMC版本,并确保为该网卡配置专用SR文件,明确绑定FruId=9,并验证EEPROM可读性。

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

MCX623436AN-CDAB网卡FRU信息加载失败问题分析与解决方案

问题概述

用户反馈在使用1230基线版本的系统中,MCX623436AN-CDAB型号网卡在通过IPMI工具(ipmitool)读取FRU信息时出现异常。

具体表现为:

  • 执行 ipmitool fru | grep -i cdab 可识别设备ID为9。
  • 但执行 ipmitool fru print 9 时报错:“Device not present (Destination unavailable)”。
  • 从系统PCIe设备信息可以看出,该设备已正确枚举,所属厂商为Mellanox Technologies(通过华为集成)。

故障定位分析

1. FRU信息读取机制回顾

根据知识库内容,FRU(Field Replaceable Unit,现场可替换单元)的元数据通常存储在EEPROM中,并通过BMC(Baseboard Management Controller)的frudata服务进行统一管理。其核心组件为:

  • frudata服务:负责统一管理所有FRU设备的元数据,提供IPMI接口支持。
  • FruId属性:每个FRU设备的唯一标识符(U8类型),用于定位具体硬件单元。
  • ipmitool fru命令:通过IPMI协议与BMC通信,读取FRU数据区内容。
{"entity": "frudata", "type": "category", "description": "frudata是BMC环境中用于处理FRU数据的核心子系统,支持读写电子标签并提供统一IPMI接口。"}

当出现Device not present错误时,通常表示BMC无法通过IPMI接口访问该FRU设备。


2. 日志与命令行为分析

从用户提供的信息来看:

  • 设备已在系统中被识别(ipmitool fru输出中列出了ID 9)。
  • 却在尝试打印详细信息时报“Destination unavailable”,这说明:
    • FRU设备描述符已注册;
    • 但实际读取数据时目标设备不可达或访问失败。

这与知识图谱中的以下记录一致:

"dump_get_fruinfo failed" 表示 frudata 在尝试获取FRU信息时失败。

同时,知识库指出:

“L Frudata Intf C是处理FRU数据读取的接口模块,当读取失败时会返回错误码211。”

此类错误常见于EEPROM读取失败、I²C通信异常或设备未正确初始化。


3. 可能原因分析

潜在原因 依据
FRU EEPROM未正确加载或数据损坏 MCX623436AN-CDAB为Mellanox ConnectX-6 Dx网卡,其FRU信息依赖I²C对板载EEPROM操作,若BMC未能成功访问,将导致读取失败。
FruId配置异常或映射错误 FruId需唯一标识设备。若CSR配置中未正确绑定ComponentFruData对象,或FruId=255(默认值)未被正确替换,可能导致逻辑识别不全。
IPMI通信路径异常或frudata服务异常 BMC内部frudata服务未能正常响应请求,或目标设备未注册到IPMI FRU Inventory中。
固件版本兼容性问题(1230基线) 特定基线版本可能存在对某些OEM网卡(如Mellanox)的FRU支持缺陷,尤其在非华为原生设计的模块上。

补充说明:文档中提到板载网卡常采用“BOM+ID”命名规则并由CSR动态加载,若SR文件未适配MCX623436AN-CDAB,则无法生成有效FruData。


解决建议

:white_check_mark: 步骤一:确认设备是否被正确发现

# 查看PCIe设备枚举情况
lspci -vvv | grep -A 5 -B 5 "MCX623436AN"

# 验证BDF(Bus/Device/Function)信息是否与PcieAddrInfo匹配

检查OpenUBMC环境中是否存在正确的 PcieAddrInfo 对象和对应 Component 配置。

参考知识库:

“iBMA上报的数据无法正确匹配:检查PcieAddrInfo对象配置是否和硬件信息一致,可在OS下用lspci命令查看。”


:white_check_mark: 步骤二:验证FRU数据是否存在及可读

# 登录BMC后台,检查frudata是否能获取该设备信息
ipmcget -d fru -v 9

如果此命令也失败,则表明BMC层未完成加载。

也可以尝试使用D-Bus工具直接查询:

busctl call org.openbmc.FruData /org/openbmc/FruData org.openbmc.FruData getFruInfo byte 9

注:frudata服务是openUBMC/iBMC中FRU管理的核心,依赖于ipmitool进行标准访问。


:white_check_mark: 步骤三:检查CSR/SR文件配置

确认是否为MCX623436AN-CDAB配置了正确的SR(System Resource)文件。

{
    "Component_NetworkAdapter": {
        "FruId": "Fru_SEU.FruId",  // 或明确设为9
        "Instance": "01",
        "Type": 3,
        "Name": "MCX623436AN-CDAB"
    }
}

应确保:

  • FruId与实际FRU设备ID(9)一致;
  • IdentifyMode设置正确(建议设为2,基于BDF发现);
  • 对应的FruData_Fru9对象存在且路径正确。

参考开发文档:

“板载网卡及普通NIC网卡,一般采用‘BOM+ID’组成对应网卡的文件名,在网卡连接的组件SR中配置网卡的连接器。”


:white_check_mark: 步骤四:排查I²C通信问题

该网卡FRU信息通常位于I²C总线地址0xA0的EEPROM中。

# 在BMC端检查I²C设备是否存在
i2cdetect -y <bus_number>

# 尝试读取前几个字节
i2cget -f -y <bus> 0x50 0x00

若无法读取,可能由于:

  • I²C地址冲突;
  • 上电时序问题导致EEPROM未就绪;
  • 驱动未正确加载。

:white_check_mark: 步骤五:升级/修复建议

  1. 确认是否为已知问题

    • 1230基线是否包含对该型号网卡的完整支持?
    • 可查询华为openUBMC发布说明文档或manifest.yml中的OEM支持列表。
  2. 更新至支持更好的版本

    • 如知识库所述,openUBMC持续优化对第三方网卡的支持。
    • 建议升级至后续稳定版本(如25.09以上)以获得更好的兼容性。
  3. 联系技术支持

    • 提供以下信息给华为技术支持团队:
      • 完整日志(system log, fru list, ipmcget -l
      • mdbctl lsprop FruData_Fru9 输出结果
      • CSR文件片段
    • 技术支持社区链接:discuss.openubmc.cn

结论

该现象的根本原因是:虽然MCX623436AN-CDAB网卡被系统识别并分配了FRU ID 9,但由于FRU数据无法从目标设备读取或未正确注册,导致ipmitool fru print操作失败

主要方向应聚焦于:

  1. 确认CSR配置中是否正确定义了该网卡的ComponentFruData
  2. 验证frudata服务是否能正常访问该设备的EEPROM;
  3. 排查I²C总线通信或固件兼容性问题。

:pushpin: 建议最终解决方案:升级至支持更完善的openUBMC版本,并确保为该网卡配置专用SR文件,明确绑定FruId=9,并验证EEPROM可读性。


参考资料

  • [openUBMC Read FRU Data 命令说明](reference_id: 3)
  • [网卡开发指南 - FruId配置](search_result: 1)
  • [板卡适配指南 - CSR加载机制](search_result: 5)
  • 华为鲲鹏服务器BMC IPMI接口参考

定位发现是eeprom访问失败,请问下是地址不对吗

请问下 CX6网卡支持eeprom访问fru吗

看上面eeprom的Address配置方式,确定这个Address的值是和slot编号有关的吗?

请问下问题有解决吗