适配一款网卡,光模块基本信息不显示

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

问题描述

适配一款网卡,光模块基本信息不显示

环境信息

  • 软件版本:[如 OpenUBMC2603]

重现步骤

  1. 适配一款网卡,光模块的基本信息不显示(厂商等)

  2. BMA版本

  3. 查看资源树,值均为空

期望结果

光模块信息正常显示

实际结果

尝试过的解决方案

分析结论

如何分析bma侧是否正常上报

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

总结

根据现有证据,最可能的原因是网卡驱动对SFP EEPROM数据读取不完整,导致BMA仅能获取温度等部分信息。建议从OS侧ethtool -m验证驱动能力入手,逐步排查BMA上报和BMC适配配置。若驱动本身无法返回基本信息,则需联系网卡厂商确认驱动支持或调整BMA侧的读取逻辑。

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

问题分析

根据您提供的信息,光模块的**温度(46°C)能够正常显示,但基本信息(如厂商、序列号等)**为空。这表明光模块的某些监控数据(温度)已成功获取,但静态的EEPROM数据(如厂商、序列号、生产日期、波长等)未成功上报或解析。

结合知识库中的相关案例,此类问题的常见原因包括:

  • 网卡驱动不支持完整的光模块信息读取:BMA(或iBMA)依赖ethtool -m命令从网卡驱动获取SFP EEPROM数据。若驱动未实现标准SFP/SFP+ EEPROM查询接口,则只能获取部分数据(如温度),而基本信息可能为空。
  • 端口类型识别错误:若网卡被识别为电口(Twisted Pair),BMA不会主动读取光模块信息。但您的截图显示介质类型为“光口”,且温度有值,说明识别为光口,但可能驱动仅支持温度读取。
  • BMA与网卡型号适配不完整:在network_adapter组件的hardware_config中,针对该网卡的Lua配置文件可能未正确配置光模块信息读取命令或解析逻辑,导致部分属性未获取。
  • BMA侧上报数据不完整:BMA在OS侧读取到光模块信息后,需要将数据上报给BMC。若上报的数据本身缺失(例如驱动返回的EEPROM数据为空),则资源树中的属性值会显示为空。

排查步骤

1. 在OS侧验证驱动是否支持完整读取

登录服务器OS,执行以下命令检查光模块信息是否能完整获取:

ethtool -m <网口名>

例如:ethtool -m enp4s0f0

  • 如果命令返回完整信息(厂商、序列号、生产日期等),则问题可能出在BMA上报或BMC解析环节。
  • 如果命令返回错误(如Cannot get adapter eeprom data或只返回温度),则说明网卡驱动不支持完整读取,需检查驱动版本或固件。

2. 检查端口类型和链路状态

ethtool <网口名>

重点观察:

  • Supported ports 是否包含 [ TP ](电口)。
  • Port 是否为 Twisted Pair。
  • Transceiver 是否为 internal。
    若显示为电口,BMA将不会尝试读取光模块信息,需检查网卡固件或BIOS配置中的“Interface Type”是否设置为SFP。

3. 检查BMA日志和通信状态

  • 查看BMA OS侧日志:/opt/huawei/ibma/log/common.log,搜索与光模块相关的报错(如rnp-err:rnp_mbx_sfp_module_eeprom_info)。
  • 确认BMA服务运行正常,且已上报数据。可在BMC侧通过D-Bus查询资源树,但您已查询,属性值多为空,说明上报数据本身缺失。

4. 检查BMC侧network_adapter组件的适配配置

在network_adapter组件的hardware_config目录下,确认针对该网卡型号的Lua配置文件是否存在且正确。参考知识库中的案例(文档ID: 1),适配新网卡时需要添加对应的.lua文件,其中应包含光模块信息的读取命令和解析逻辑。若配置不完整,可能导致部分属性无法获取。

5. 区分带外协议与BMA的获取优先级

知识库(文档ID: 6)指出:光模块信息可通过带外协议(如NCSI over MCTP)获取,也可通过BMA获取,且BMA显示的优先级更高。可尝试关闭BMA,仅依赖带外协议获取,观察是否能完整显示基本信息:

  • 若带外协议能获取完整信息,则问题定位在BMA侧(驱动支持或BMA上报逻辑)。
  • 若带外协议也无法获取,则可能是网卡硬件或固件本身不支持,或需要调整hardware_config中的带外读取命令。

6. 检查BMA版本与网卡驱动的兼容性

您当前BMA版本为2.20.0。知识库中多个问题案例(如文档ID: 1)表明,BMA的版本差异可能导致光模块信息获取失败。可尝试升级或降级BMA版本验证,但需注意版本依赖(如devmon、component_drivers、libmcpp需配套)。

总结

根据现有证据,最可能的原因是网卡驱动对SFP EEPROM数据读取不完整,导致BMA仅能获取温度等部分信息。建议从OS侧ethtool -m验证驱动能力入手,逐步排查BMA上报和BMC适配配置。若驱动本身无法返回基本信息,则需联系网卡厂商确认驱动支持或调整BMA侧的读取逻辑。

查看网口NetworkPort对象bmc.kepler.Systems.NetworkPort接口下 OSLinkStatus 属性,该属性代表BMA上报的网口连接状态。
形如 OSLinkStatus=“LinkUp” 表示BMA开启,该网口信息显示来自BMA上报

为空,那就表明BMA未上报吧,只能分析BMA日志了吧