点击此处查看详细分析解答
iBMA获取网卡光模块信息失败问题分析与解决方案
根据您提供的问题描述和环境信息,以下是关于 iBMA 无法成功获取 10Ge 网卡(RP1000P2SFP-A03)光模块信息 的全面分析。本报告基于 OpenUBMC 系统架构、BMA 工作机制以及相关文档和知识图谱内容进行综合判断。
问题概述
- 现象:在鲲鹏920服务器上,使用 iBMA 获取两张网迅网卡(25Ge 和 10Ge)的光模块信息时,仅 25Ge 网卡成功,10Ge 网卡未在
host_agent 和 Redfish 接口中更新数据。
- BMA版本:2.16.0(带内代理服务)
- 固件环境:
openUBMC 26.06.00.01
- 目标:两张网卡均应能正常上报并显示完整的光模块信息(如厂商、序列号、波长、温度等)。
根本原因分析
1. iBMA 获取光模块信息的触发条件
根据知识库中的问答(搜索结果 ID: 9)及文档描述,iBMA 获取光模块信息的逻辑如下:
iBMA 获取光模块信息的前置判断条件为:
- 网口处于
LinkUp 状态;
- 或通过
ethtool 命令查询到支持端口类型为非电口(不为 TP)。
如果满足以上任一条件,iBMA 将执行以下操作:
ethtool -m <interface>
尝试读取 SFP EEPROM 数据。
应用到本案例:
- 25Ge 网卡成功 → 表明其物理链路正常(LinkUp),且 iBMA 识别为光口,触发了
-m 查询;
- 10Ge 网卡失败 → 可能原因包括:
- 接口未 LinkUp;
ethtool 识别端口类型为电口(TP);
- 网卡固件未正确设置接口类型(SFP);
- EEPROM/SFP 模块未被 OS 正确识别或驱动不兼容。
文档 [ID: 2] 明确指出:若网卡是从光口卡“改造”为电口卡,但 BIOS 中 Interface Type 仍显示为 SFP,则可能导致 iBMA 错误尝试获取光模块信息而失败,并产生 rnp-err:rnp_mbx_sfp_module_eeprom_info 类似日志。
2. 10Ge 网卡模型适配问题
RP1000P2SFP-A03 是一款 SFP+ 接口的万兆光口卡,理论上支持光模块信息读取。但其芯片可能不属于标准网卡类型(例如不基于 Intel/XL710/Mellanox),而是定制设计。
结合 network_adapter 组件说明(搜索结果 ID: 2):
network_adapter 组件从 BMA 获取光模块信息依赖于:
handler_optical_diag.lua —— 专门处理 BMA 上报的光模块诊断信息;
- BMA 使用
ethtool 调用内核驱动;
- 若无对应厂商支持或内核模块未正确加载 → 驱动层无法响应
ethtool -m 请求。
因此,即使网卡插上 SFP 模块,若其驱动没有实现标准 SFP/SFP+ EEPROM 接口查询功能,iBMA 就无法获取数据。
3. 系统层面行为验证缺失
BMA 获取的信息会经历以下流程:
[OS 层 ethtool -m]
→ [网卡驱动调用]
→ [返回 SFP EEPROM 数据]
→ [BMA 上报]
→ [host_agent 资源树更新]
→ [Redfish / BMC WEB 显示]
当前 host_agent 和 Redfish 无数据 → 推断问题出在前几步,即:BMA 没有从 OS 层成功获取到数据。
解决方案建议
步骤一:确认 10Ge 网卡链路状态和接口类型
登录服务器 OS,运行以下命令查看实际状态:
# 查看网口是否 link up
ip link show
# 使用 ethtool 检查具体网卡(替换 enpXsYfZ)
ethtool enp4s0f0
观察输出中以下字段:
Supported ports: [ TP ] ← 若为 TP 表示电口,iBMA 不会主动查光模块
Port: Twisted Pair ← 同上,表示电口
Transceiver: internal ← 可能表示无外部光模块管理能力
Speed: 10000Mb/s / Unknown
关键点:即使物理插了光模块,如果显示 Port: Twisted Pair 或 Supported ports: [ TP ],iBMA 将视为电口,不会尝试读取光模块信息。
步骤二:强制测试 ethtool -m 是否可获取光模块信息
执行命令:
ethtool -m enp4s0f0
预期结果:
若失败,请检查以下项:
- 是否加载网卡专用驱动?运行
modinfo <driver_name>;
- 是否有专用工具命令(如厂商提供 CLI)可读取光模块?
- 网卡固件是否为最新版本?是否需要升级 SR 文件?
步骤三:排查 BMA 是否收到 BDF 映射信息
BMA 需要将 PCIe 设备信息(BDF: Bus/Device/Function)与网络适配器关联才能正确匹配 Port 和 SFP。
运行:
lspci | grep -i ethernet
确认 10Ge 网卡的 BDF 编号,并验证在以下路径是否存在关联数据:
# BMC 侧资源树中是否创建了该端口?
busctl tree bmc.kepler.network_adapter
若对应的 Port ID 未出现在资源树中,说明 BMA 未正确发现网卡设备,需检查:
- iBMA 白名单中是否包含该网卡 Vendor ID 和 Device ID;
/opt/huawei/config/ 下是否有对应的设备配置文件;
- 是否需要在
hardware_config/ 中添加定制 .lua 配置。
步骤四:启用调试日志追踪流程
启用 iBMA 日志增强模式:
- 登录 BMA Web 界面 → BMA日志 → 日志记录至syslog 启用;
- 在 OS 上查看实时日志:
journalctl -f | grep -i "ibma\|bma\|ethtool"
观察是否有下列输出:
try to get sfp info for port enpXsYfZ
call ethtool -m failed
rnp_mbx_sfp_module_eeprom_info
这有助于定位是 iBMA 跳过了该端口,还是调用失败。
步骤五:对比已成功的 25Ge 网卡特性
25Ge 卡(FF5025-DDATACXX)能成功,说明系统整体机制正常。
请收集并对比以下信息:
| 项目 |
25Ge 网卡 |
10Ge 网卡 |
是否一致 |
ethtool Port Type |
Optical |
? |
|
ethtool -m 输出 |
有数据 |
? |
|
| 驱动名称 |
? |
? |
|
| 内核模块是否加载 |
? |
? |
|
| BMA 是否上报该接口 |
是 |
? |
|
使用 diff 分析差异点,定位根本差异。
补充建议
1. 更新 BMA 版本或应用补丁
- BMA v2.16.0 存在对部分非标准网卡 EEPROM 访问失败的问题;
- 建议升级至
v2.17+ 或咨询厂商是否有专用适配补丁。
2. 添加网卡至 BMA 白名单
确保 10Ge 网卡的 PCI ID 被加入:
-- 示例:/opt/huawei/config/device_whitelist.lua
{
vendor_id = "0xXXXX",
device_id = "0xYYYY",
model_name = "RP1000P2SFP-A03"
}
3. 更新 SR 文件与设备描述
确认该网卡对应的 .sr 文件中正确配置了 OpticalTransceiver 和相关传感器对象。
否则 devmon 组件不会为该端口创建光模块资源节点。
总结结论
| 项目 |
分析结论 |
| 根本原因 |
iBMA 未识别 10Ge 网卡为光口,或操作系统无法通过 ethtool -m 读取 EEPROM 数据,导致 BMA 不触发光模块信息采集。 |
| 可能诱因 |
- 网卡驱动未实现标准 SFP 查询接口 - ethtool 返回端口类型为 TP(电口) - 网卡固件不完整、BIOS 识别错误 - 缺少 BMA 白名单支持或 SR 配置错误 |
| 验证要点 |
执行 ethtool -m <iface> 是否成功是关键判断依据 |
| 修复方向 |
驱动适配、固件升级、SR 文件修复、BMA 白名单配置 |
最终建议操作清单
登录 OS,检查 10Ge 网卡 ethtool 输出;
尝试执行 ethtool -m,确认是否可获取光模块信息;
检查 lspci 及驱动加载情况;
启用 BMA 日志,查找 rnp_mbx_sfp_module_eeprom_info 错误;
核对 PCI ID 是否在 BMA 白名单中;
确认 SR 文件是否配置 OpticalTransceiver;
若仍失败,联系网迅技术支持确认驱动兼容性与 ethtool -m 支持情况。
相关参考资料:
如需进一步深入分析,请提供 ethtool 命令输出和 journalctl 中相关日志片段。