SAS/SATA盘信息无法获取问题分析
更新时间: 2026/06/02
在Gitcode上查看源码问题背景
- 单板类型:自研板;
- 软件版本:openUBMC 25.06;
- 涉及功能:硬盘,web页面硬盘信息显示;
- 触发条件:背板上接了两个sata盘,系统侧装了iBMA,BMC的web页面查询硬盘信息。
- 业务表现:预期硬盘信息显示正常;实际因硬盘信息缺失。
问题复现步骤
硬盘背板上接上两个SATA盘,系统侧安装BMA,BMC页面查看硬盘信息。
关键日志信息
web页面硬盘信息: iBMA上报硬件日志信息:
定位过程
- 查看host_agent是否收到了硬盘信息,目前从日志上看iBMA已发送,且属性信息显示有数值,确认已经收到;
- 查看sr中有没有PcieAddrInfo_SAS对象,因此丝印文件中有没有硬盘丝印,发现丝印为空;
- 确认硬盘背板是否配置PCIeAddrInfo,没有配置的话无法上报丝印;sas/sata盘更新是通过silktext来映射到对应的盘的。基本逻辑大概是:hostagent上面silktext=Disk2,那么就会跟硬盘的Name匹配,如果匹配上了,就会把相关数据更新到对应的Drive对象上。
- 配置了PcieAddrInfo_SAS之后,silkconfig.json中硬盘丝印正常生成,但host_agent的.SilkScreen字段依旧是null,还是无法获取硬盘信息;
- 排查槽位号是否能对上;检查Drive对象的NodeId、RelativeSlot等属性,PcieAddrInfo_SAS对象的Location、SlotID、ControllerType、ContainerSlot等属性;
问题原因
硬盘丝印信息不正确,即PcieAddrInfo_SAS对象中的Bus、Device、Function、PortID这几个属性配置不正确,导致BMC无法正确的上报丝印信息,系统侧无法根据正确的根据丝印信息上报SAS/SATA盘信息。
解决方案
PcieAddrInfo_SAS对象中的Bus、Device、Function、PortID这几个属性重新配置到正确值。