问题描述
真机刷openUBMC 2512LTS后 识别不到网卡和raid卡
环境信息
-
操作系统:[如 Ubuntu 24.04]
-
软件版本:[如 OpenUBMC2512LTS]
-
硬件配置:S920X20机型
重现步骤
- 下载OpenUBMC 仓库源码
- 添加自签名相关内容
- 编译构建
- 刷机
期望结果
openubmc vpd 目录产品支持的硬件都能是被
实际结果
网卡和raid卡没有识别
日志
app.txt (513.2 KB)
真机刷openUBMC 2512LTS后 识别不到网卡和raid卡
操作系统:[如 Ubuntu 24.04]
软件版本:[如 OpenUBMC2512LTS]
硬件配置:S920X20机型
openubmc vpd 目录产品支持的硬件都能是被
网卡和raid卡没有识别
app.txt (513.2 KB)
答案内容由AI生成,仅供参考:
| 问题环节 | 检查点 | 推荐操作 |
|---|---|---|
| SR 文件 | 文件是否存在、命名是否正确 | 从 vpd.git 拉取最新 SR |
| IdentifyMode | 是否为 2 |
修改 Riser SR 配置 |
| manifest.yml | storelib_enable 是否开启 |
添加配置并重新构建 |
| 日志分析 | 是否有 Load PCIeCard 打印 |
检查 app.log 和 framework.log |
| 通信协议 | I²C/MCTP 是否建立 | 使用 i2cdetect、mctpd 检查 |
用户在 S920X20 机型上刷入基于 OpenUBMC 2512LTS 版本的固件后,系统无法识别 网卡 和 RAID 卡 等 PCIe 设备。尽管环境搭建、编译构建及刷机流程已完成,但预期的硬件自发现功能未能正常工作,导致关键组件未被 BMC 正确加载与管理。
vpd 模块能正确加载并识别所有支持的硬件设备pcie_device 未触发相关设备加载根据 OpenUBMC 的硬件自发现机制和文档内容,该问题涉及 VPD → PCIe Device → Storage/NIC 的多模块协同流程,失败原因可归结为以下几个关键环节:
vpd 模块中的 SR 文件(Self-Description Resource),文件命名规则为 BOM_ID_AUXID.sr。
验证建议:检查
/opt/bmc/sr/目录下是否存在以下文件(以常见 RAID 卡为例):
14140130_100010e2_10004010.sr(Broadcom 9560-8i)- 对应网卡的 SR 文件(如
14xxxxxx_xxxxxxxx_xxxxxxxx.sr)
WritePcieCardBdfToBmc 上报 PCIe 卡的 BDFpcie_device 模块加载设备并设置 Id 和 AuxId
若此流程中断,则日志中会缺少如下关键打印:
[BizTopoLoader] Load PCIeCard, Slot=3, path=/bmc/kepler/Connector/Connector_PCIE_SLOT3_01010103, Id-AuxId=100010e2-10004010
WritePcieCardBdfToBmc 等命令,并确保通信链路正常。Connector_PCIE_SLOTx 的 IdentifyMode 必须配置为 2,表示“由 BIOS 上报 BDF 信息”。0, 1, 3),会导致 BMC 无法进入动态识别模式。
检查项:
"Connector_PCIE_SLOT3": {
"Bom": "14140130",
"Slot": 3,
"IdentifyMode": 2,
"Type": "PCIe"
}
IdentifyMode = 2 是 S920X20 等天池架构设备的标准配置。pcie_device 是负责 PCIe 设备管理的核心模块,属于 openUBMC.release 包的一部分。libmgmt_protocol)配置错误,将导致无法加载 PCIe 卡。
已知问题(参考 RAID 适配文档):
- 缺少
storelib_enable: true配置会导致libsml_lsi.so等存储库无法加载,进而导致 RAID 卡注册失败。
manifest.yml):- conan: libmgmt_protocol
options:
storelib_enable: true
0x02
若固件中未启用相应驱动或协议栈,则无法与设备通信。
i2cdetect -y <bus> 检查 I²C 总线是否检测到设备busctl --user tree bmc.kepler.mctpd | cat 是否存在 MCTP 绑定信息/opt/bmc/sr/.sr 文件:ls /opt/bmc/sr/*.sr
openUBMC/vpd.git)获取并部署Connector_PCIE_SLOTx 的 IdentifyMode 是否为 2Buses 引脚配置正确(如使用 Pca9545 多路 I²C 扩展)在构建配置文件中添加:
- conan: libmgmt_protocol
options:
storelib_enable: true
并重新编译整个镜像。
busctl --user tree bmc.kepler.hwdiscovery
Connector_PCIE_SLOTx 节点,确认其是否存在且 Presence=1Id 和 AuxId 是否非空且符合设备 IDapp.log 或 framework.log 关键信息:
成功识别的日志特征:
[BizTopoLoader] Load PCIeCard, Slot=3, path=/bmc/kepler/Connector/..., Id-AuxId=100010e2-10004010
[hwdiscovery] get csr data from /opt/bmc/sr/14140130_100010e2_10004010.sr
[storage] controller init obj.Id = 255, object_id = 1
失败常见错误:
ERROR: adapter.c(603): Failed to load lsi sml library /usr/lib64/libsml_lsi.so: No such file or directory
ERROR: task [Controller.register_controller.0] error: ...ret: 4357
pcie_device 详细日志openubmc-bingo 工具验证 SR 加载路径| 版本 | RAID 卡支持 | 网卡支持 | PCIe 动态加载 |
|---|---|---|---|
| 25.06 | |||
| 25.09 |
提示:OpenUBMC 2512LTS 应基于 25.09 功能集进行裁剪,理论上支持 S920X20 所有 PCIe 设备。
| 问题环节 | 检查点 | 推荐操作 |
|---|---|---|
| SR 文件 | 文件是否存在、命名是否正确 | 从 vpd.git 拉取最新 SR |
| IdentifyMode | 是否为 2 |
修改 Riser SR 配置 |
| manifest.yml | storelib_enable 是否开启 |
添加配置并重新构建 |
| 日志分析 | 是否有 Load PCIeCard 打印 |
检查 app.log 和 framework.log |
| 通信协议 | I²C/MCTP 是否建立 | 使用 i2cdetect、mctpd 检查 |
最终结论:当前问题极可能是 SR 文件缺失 + storelib_enable 未开启 导致 libsml_lsi.so 无法加载,进而引发 RAID 卡注册失败、网卡无法通信。建议优先修复 manifest.yml 配置并确认 SR 文件完整,即可恢复 PCIe 设备识别功能。
参考文档:
相关链接: