ipmi-fru-it
(pronounced ipmi-fruit) is a command-line utility for reading and writing IPMI FRU data.
It follows the IPMI Management FRU Information Storage Definition Specification when reading/writing a FRU data file.
NOTE: This tool uses the iniparser
library for parsing the config file. This library was modified for some bug-fixes.
Generating a FRU data file:
$ ipmi-fru-it -w -s 2048 -c fru.conf -o FRU.bin
Reading a FRU data file:
$ ipmi-fru-it -r -i FRU.bin
The FRU data to be written is provided by means of a config file as input to ipmi-fru-it
. The config file follows a simple INI file format and provides data for the various FRU sections.
ipmi-fru-it
understands only the following INI section headers (other sections are simply ignored):
iua
cia
bia
pia
These map directly to the various FRU sections of the FRU Information Storage Definition specifications. ALL sections are optional and can have additional custom keys, which are placed in the custom area of that section (see FRU storage def specs). Each pre-defined field not specified in a section, is stored as an empty type/length value.
iua
(Internal Use Area): If this section is specified, it MUST have a key -bin_file
with a value as the absolute path of a file that you want included in the internal use area. The file is treated as a binary file and it's contents are copied as-is into this FRU section.cia
(Chassis Info Area): If this section is specified, it should have the following pre-defined keys:chassis_type
- A single byte number specifying the type of chassis as defined in SMBIOS Reference Spec, (7.4.1 System Enclosure or Chassis Types).part_number
- ASCII string.serial_number
- ASCII string.bia
(Board Info Area): If this section is specified, it should have the following pre-defined keys:mfg_datetime
- Number of minutes from 0:00 hrs 1/1/96.manufacturer
- ASCII string.product_name
- ASCII string.serial_number
- ASCII string.part_number
- ASCII string.pia
(Platform Info Area): If this section is specified, it should have the following pre-defined keys:manufacturer
- ASCII string.product_name
- ASCII string.part_number
- ASCII string.version
- ASCII string.serial_number
- ASCII string.asset_tag
- ASCII string.
TBD.
- Any ASCII value in the config file MUST be in UPPER case.
- Currently, there's no way to specify binary or BCD data for any of the FRU sections (
ipmi-fru-it
assumes all keys are ASCII text).
- Implement
-r
option - read contents of a FRU data file. - Support for MultiRecord Headers.
- Support for FRU File ID.
- ASCII values should be case-insensitive.
- Find a way to specify BCD values.