读写二进制 FRU 文件
项目描述
水果工具
fru-tool是用于生成 IPMI FRU 二进制数据文件的命令行实用程序。
描述
计算机或电子设备的每个现代组件,通常称为现场可更换单元或 FRU,都包含一个存储该组件库存信息的内存块。这包括制造商名称、产品名称、制造日期、序列号和其他有助于识别组件的详细信息。
用于 IPMI 的英特尔 FRU 信息存储规范定义了设备在其 FRU 区域内应符合的标准格式。Dell EMC PowerEdge 服务器全面利用这种格式,从 PCIe 控制器到电源再到机箱本身。每个组件供应商都在其制造过程中填充 FRU 区域,并且所有 FRU 区域都可以通过 IPMI 轻松访问。
Dell EMC PowerEdge 服务器的 OEM FRU 存储功能是一个额外的 FRU 区域,允许使用 Dell EMC 服务器作为其解决方案组件的 OEM 客户在 FRU 存储区域中包含他们自己的跟踪信息。这可以在工厂部署期间加载到服务器中,并且可以在故障排除或支持期间需要信息时访问。这允许 OEM 客户在服务器中存储他们自己的零件编号和库存信息,从而使他们能够在其内部管理系统中跟踪他们的解决方案。这类似于 Dell EMC 服务器使用标准 FRU 区域来存储跟踪信息(例如服务标签和制造日期)并在必须在现场识别和支持这些系统时使用该信息的方式。
考虑到 FRU 区域是二进制有效载荷,手动构建内容结构并非易事。为了简化 OEM 客户的工作,提供了这个 Python 工具来加快创建有效负载的过程。
虽然这个fru 工具是专门为支持这个 OEM 用例而设计的,但它符合英特尔的规范,可用于为任何设备构建 FRU 结构。
先决条件
fru-tool已经使用 Python 2.7 和 3.5 版本进行了测试,可以从www.python.org下载和安装。
为了在目标服务器上写入、读取或编辑 OEM FRU 存储区域,需要开源IPMItool实用程序或等效工具。可以使用内置的包管理器(例如 yum 或 apt-get)在 Linux 发行版上安装此实用程序。Dell EMC 提供 Windows 版本,可在Dell EMC 支持上的系统管理部分下的任何 PowerEdge 服务器的驱动程序和下载部分找到。它包含在名为Dell OpenManage BMC Utility的软件包中,也可以通过按名称搜索软件包在 Google 上找到该软件包。有关 IPMItool 的文档,请在 Google 上搜索“man ipmitool”。
安装
安装就像从 GitHub 克隆或下载这个项目一样简单。感兴趣的主要文件是fru.py Python 脚本和定义 FRU 二进制文件内容的fru.ini 。
使用说明
根据解决方案的要求填写 fru.ini 文件后,可以使用fru-tool将其转换为 BIN 格式,然后将其部署到服务器上进行测试。语法是:-
python fru.py INIFILE BINFILE [--force] [--cmd]
INIFILE = input INI file as described above
BINFILE = output BIN file that can be programmed into server
--force = overwrite BIN file if it already exists
--cmd = print sample IPMItool commands as a reference
例如,让我们使用 和 创建一个 INI 文件,common.product = 1
并product.manufacturer = Widgets Inc.
生成带有标志的 BIN 文件--cmd
以显示 IPMItool 命令示例。[common]
在工具将其包含在 BIN 文件中之前,启用该部分中的产品区域非常重要。如果省略此步骤,则该工具假定该部分将被省略。
> python fru.py inifile.ini binfile.bin --cmd
[Product]
; ipmitool -I lanplus -H %IP% -U root -P password fru edit 17 field p 0 123456789012
0: manufacturer = b'Widgets Inc.' (12)
该工具会生成 BIN 文件并显示添加到其中的字段以及字段长度。它还显示 IPMItool 语法(由于--cmd
),一旦在服务器上对 BIN 文件进行编程,就可以使用该语法来编辑每个字段。这很有用,因为典型的用例是创建一个模板 BIN,可以使用 FRU 工具创建一次,然后在每个服务器上进行编程,然后编辑所有服务器唯一字段作为第二步。
OEM FRU 功能的详细使用信息和用例可在OEM FRU 白皮书中找到。
贡献
为了做出贡献,请随时 fork 项目并提交一个拉取请求,其中包含您的所有更改以及添加或删除的内容以及原因的描述。如果获得批准,项目所有者将合并它。
许可
fru-tool在MIT License下免费分发。
支持
请在此项目的 Github 问题页面上提交错误和问题。对于一般性讨论和进一步的支持,您可以加入{code} Community slack 频道。代码和文档是在没有任何保证或 SLA 的情况下发布的,旨在通过社区驱动的流程获得支持。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
fru- 4.0.0a1 -py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eed3933d9c74b17d2d6e86d3be5010185ce6657f5a2d1d0175be91c6bfc406b5 |
|
MD5 | b3c2c17b460c002b505ea9bdc8e4aa89 |
|
布莱克2-256 | 75ddc11ebbd92a705e6539c2feb6d6cc226815c7a06764fbcb557ff3567d7dd9 |