读写二进制FRU文件
项目描述
FRU工具是一个命令行实用程序,用于生成和转换IPMI FRU二进制数据文件。
描述
计算机或电子设备的每个现代组件,通常称为现场可更换单元或FRU,都包含一个存储该组件库存信息的内存块。这包括制造商的名称、产品名称、制造日期、序列号和其他有助于识别组件的详细信息。
英特尔FRU信息存储定义了IPMI规范中设备应在其FRU区域遵守的标准格式。每个组件供应商在其制造过程中填充FRU区域,并且所有FRU区域都可以通过IPMI轻松访问。
戴尔EMC PowerEdge服务器的OEM FRU存储功能是一个额外的FRU区域,允许使用戴尔EMC服务器作为其解决方案组件的OEM客户,在FRU存储区域中包含自己的跟踪信息。这些信息可以在工厂部署期间加载到服务器中,并在需要故障排除或支持时访问。这允许OEM客户在服务器中存储自己的零件编号和库存信息,使其能够在其内部管理系统内跟踪其解决方案。这与戴尔EMC服务器使用标准FRU区域存储跟踪信息(如服务标签和制造日期)的方式类似,并在现场识别和支持这些系统时使用这些信息。
考虑到FRU区域是二进制有效载荷,手动构建内容结构并非易事。为了简化OEM客户的努力,提供了这个Python工具以加快创建有效载荷的过程。
虽然FRU工具专门编写来支持这个OEM用例,但它符合英特尔规范,可以用于为任何设备构建FRU结构。
先决条件
FRU工具经过测试,与Python 3.8及以上版本兼容。
为了在目标服务器上写入、读取或编辑OEM FRU存储区域,需要开源的IPMItool工具或等效工具。此工具可以通过使用内置的包管理器(如yum或apt-get)安装到Linux发行版上。戴尔EMC提供Windows版本,可在戴尔EMC支持下的系统管理部分的任何PowerEdge服务器上的驱动程序和下载部分找到。它包含在名为Dell OpenManage BMC Utility的软件包中,您也可以通过在Google上搜索该软件包名称来找到它。有关IPMItool的文档,请通过Google搜索“man ipmitool”。
安装
安装很简单,只需运行python -m pip install fru即可。
使用说明
FRU工具包含一个名为frutool的命令行界面。您可以使用以下任一方法运行,具体取决于您的路径配置
frutool
python -m fru
这些命令是等效的。为了方便,以下命令以frutool运行。
生成示例文本文件
要创建一个完整但为空的文本文件,请运行frutool sample命令
frutool sample EDITABLE.txt
(将EDITABLE.txt更改为符合您需求的任何文件名。)
然后您可以在任何编辑器中打开文本文件并编辑其内容。请注意,文件格式是TOML;基本格式说明包含在示例文件的顶部作为注释。
将二进制FRU文件转换为文本
要将二进制FRU文件转换为可编辑的文本文件,请运行frutool dump命令
frutool dump FRU.bin EDITABLE.txt
(将FRU.bin和EDITABLE.txt更改为符合您需求的任何文件名。)
然后您可以审查和编辑文本文件。
将文本文件转换为二进制FRU文件
要将文本文件转换为二进制FRU文件,请运行frutool generate命令
frutool generate EDITABLE.txt FRU.bin
(将EDITABLE.txt和FRU.bin更改为符合您需求的任何文件名。)
然后您可以使用ipmitool将二进制FRU文件写入硬件系统。
ipmitool -I lanplus -H $IP_ADDRESS -U root -P password fru write FRU.bin
有关OEM FRU功能的详细使用信息和用例,请参阅戴尔OEM FRU白皮书。
贡献
为了贡献,请随意分支项目,并提交包含所有更改及其描述的拉取请求,说明添加或删除了什么以及原因。如果获得批准,项目所有者将合并它。
许可
FRU工具在MIT许可下免费分发。
支持
请在此项目的GitHub问题页面上提交错误和问题。代码和文档发布时没有保证或SLA,并旨在通过社区驱动的过程获得支持。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。