openubmc Fru信息修改问题

在使用openubmc写fru信息时,碰到两个问题

使用ipmitool fru命令查看fru信息,有几个器件的fru报Device not present

这几个fru里目前是没有数据的,因此想试试通过ipmitool fru write命令写入数据后问题会不会恢复。但是发现这些fru无法通过ipmittool fru write命令写入数据:

mdbctl查看eeprom对象没发现问题,且eeprom的写保护是关闭的



请问Device not present这个问题是什么原因,要如何恢复?


有一个fru通过ipmitool fru write写入了非法格式和非法字符的数据


之后要再通过ipmitool fru write\edit写入正常数据,发现无法写入,会卡死在Writing new FRU.打印:

像这样的情况要如何把fru数据恢复?

问题2 我通过ClearElabelData命令,把fru恢复了

问题①补充
eeprom的数据可以读到:
image

ipmitool fru print 0,报 Device not present时,后台打印如下:
image

跟踪代码没有找到ipmi_read_frudata函数的C实现,因此还确认不了报错的直接原因
image

通过硬件烧fru.bin进eeprom里,问题就修复了

1 个赞

方便说一下是用什么硬件方法吗?

烧录器烧的

还有一个疑问fru.bin是怎么生成的,有相关文档吗?

可以从fru正常的机器里导一个出来 用ipmitool fru write命令。
也可以在gitcode上下载,不过这个我没用过: 项目首页 - FRUbin文件生成解析工具:本项目提供了一套高效的FRU bin文件生成与解析工具,专为Linux系统设计,包含ipmi-fru-itipmi_fru_parser两个实用程序。ipmi-fru-it能够将配置文件快速转换为FRU bin文件,支持自定义文件大小和附加信息,适用于服务器配置管理。ipmi_fru_parser则能从FRU bin文件中提取配置信息,并模拟ipmitool输出,便于用户查看与调试。这些工具操作简单,功能强大,是服务器维护与管理的得力助手,尤其适合熟悉Linux命令行的用户使用。通过本项目,您可以轻松实现FRU文件的生成与解析,提升服务器管理效率。 - GitCode

fru规范文档也可以直接查到:Platform Management FRU Information Storage Definition v1.0 rev. 1.2

1 个赞

好的,谢谢你,我研究一下怎么用

通过上诉工具,结合规范文档,能够成功修改fru信息

对于上面链接中我提的问题,是因为eeprom中不只有fru信息,还存在其他的信息。根据csr中FruData对象的StorageType值的不同,这些信息的偏移也不同,比如"StorageType": "TianChi"时,EEPROM前128个字节为天池头,从129字节开始为fru信息。因此,如果直接通过烧录器将fru.bin烧录进EEPROM,会导致缺少天池头,进而导致读出的fru信息与烧录的fru.bin信息不一致

1 个赞

你好,想问下“EEPROM前128个字节为天池头”这种情况,是需要烧录的时候跳过128字节吗?

只烧fru的话 是的

好的,3Q