M.2转接板下硬盘信息无显示问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:天池服务器;
- 软件版本:openUBMC 25.09;
- 涉及功能:硬件信息;
- 触发条件:iBMA返回的信息里SilkScreen是空的。
- 业务表现:预期正常显示硬盘在位及具体信息;实际显示两个硬盘在位,但是没有硬盘信息。
问题复现步骤
天池服务器,硬件使用华为 BC83MSMA M.2转接板,接了两个紫光企业级SATA硬盘,BMC使用share/source/vpd/vendor/openUBMC/14100665_00000001030302023954.sr ,前置链路配置:I2c6-Pca9545_i2c6_chip-I2cMux_Pca9545_i2c6_chip_1-Connector_M2_1
WEB有显示M.2转接板组件在位及信息,有显示M.2上的FRU信息、温度传感器值,存储管理界面显示两个硬盘在位,但是没有硬盘信息。使用V2固件交叉验证,当iBMA启动完的时候,即刻有两个硬盘信息。V3尝试更新storage组件到1.80.36也还是没有硬盘信息。
V3情况: V2情况:
关键日志信息
一键日志收集的app.log中寻找关键字get_pcie_silk_config:
text
2025-06-20 02:19:40.307062 storage NOTICE: handler_pass_through_drive.lua(83): drive silk is userdata: NULL
2025-06-20 02:20:51.264906 bios NOTICE: bios_service.lua(941): Disk PCIeAddrInfo: socket_id=0, control_id=1. phy_id=1. slot=50, root_bdf=0000:38:05.0
2025-06-20 02:20:51.265303 bios NOTICE: bios_service.lua(941): Disk PCIeAddrInfo: socket_id=0, control_id=1. phy_id=0, slot=51. root_bdf=0000:38:05.0
2025-06-20 02:20:51.354189 bios NOTICE: bios_service.lua(881): get_pcie_silk_config: PCIeAddrInfo count=25, system id(1)定位过程
- 在V3环境上确认bma启动了,性能监控页面有数据的,ibma管理也显示bma状态正常。
- 查询host_agent组件资源树,/bmc/kepler/Systems/1/Sms/1/ComputerSystem/Systems/1/Storage/1/Drives下面M.2硬盘信息,看序列号、厂商、固件版本等和V2上显示的信息一致。
- 确认host_agent组件的silkscreen属性一直为null,一直为null表示没有获取到硬盘丝印信息。
- 定位到是带内的直通盘的BDF是74:03.0,bmc丝印生成的BDF是38:05.0 与带内丝印不一致,导致没有匹配上硬盘槽位。
- 环境当前有很多高速线缆告警:
问题原因
iBMA返回的信息里SilkScreen是空的,bmc没有接收到硬盘信息。定位到是带内的直通盘的BDF是74:03.0,bmc丝印生成的BDF是38:05.0 与带内丝印不一致,导致没有匹配上硬盘槽位。
解决方案
修改PcieAddrInfo_SAS_1对象下的RootBDF三个相关属性Bus、Device、Function,改成OS下lspci查到的硬盘的RootBDF,匹配上就能获取到丝印,从而获取到硬盘信息。