如何获取ipmi fru原始数据?
how to obtain ipmi fru raw data?
有API获取ipmi fru原始字节吗?
我需要使用自定义 FRU 数据。我试过使用 freeipmi 库 - 但它似乎只有 API 来访问自定义字段并且没有公开 API 来读取整个 fru 缓冲区。
我不确定是否有库提供特殊的 API 函数来读取原始 FRU 数据。正如您所注意到的,freeipmi 和 openipmi 提供了提供 'cooked' 数据的便捷功能。
但是 openipmi(我认为是 freeipmi)也提供 API 发送原始命令和 IPMI 命令以获取原始 FRU 数据的功能。 Openipmi 具有函数 ipmi_send_command_addr()
和 ipmi_mc_send_command()
,它们向指定的目标发送 IPMI 命令。
要获取原始 fru 数据,您需要发出 IPMI 命令 "Get FRU Inventory Area Info" 以获取 FRU 长度,然后发出 IPMI 命令 "Read FRU data"。
在 FreeIPMI 1.5.2 中,bmc-device 中有一个新的 --read-fru 和 --write-fru 选项,允许您将 FRU 读出到文件中并将 FRU 原始文件写回特定的设备 ID。如果您查看 bmc-device 中的代码,也许该代码足以满足您的需求。
它特定于 read/write 特定的设备 ID。但是循环和一些错误处理应该能让您获得整个 FRU 缓冲区。
完全披露:我是 FreeIPMI 的维护者。
有API获取ipmi fru原始字节吗? 我需要使用自定义 FRU 数据。我试过使用 freeipmi 库 - 但它似乎只有 API 来访问自定义字段并且没有公开 API 来读取整个 fru 缓冲区。
我不确定是否有库提供特殊的 API 函数来读取原始 FRU 数据。正如您所注意到的,freeipmi 和 openipmi 提供了提供 'cooked' 数据的便捷功能。
但是 openipmi(我认为是 freeipmi)也提供 API 发送原始命令和 IPMI 命令以获取原始 FRU 数据的功能。 Openipmi 具有函数 ipmi_send_command_addr()
和 ipmi_mc_send_command()
,它们向指定的目标发送 IPMI 命令。
要获取原始 fru 数据,您需要发出 IPMI 命令 "Get FRU Inventory Area Info" 以获取 FRU 长度,然后发出 IPMI 命令 "Read FRU data"。
在 FreeIPMI 1.5.2 中,bmc-device 中有一个新的 --read-fru 和 --write-fru 选项,允许您将 FRU 读出到文件中并将 FRU 原始文件写回特定的设备 ID。如果您查看 bmc-device 中的代码,也许该代码足以满足您的需求。
它特定于 read/write 特定的设备 ID。但是循环和一些错误处理应该能让您获得整个 FRU 缓冲区。
完全披露:我是 FreeIPMI 的维护者。