frugy - FRU Generator YAML
This is a tool which generates EEPROM images according to the IPMI FRU standard from YAML configuration files. It can also parse a FRU EEPROM image and write its contents to a YAML file, or dump them to stdout.
Installation
From PyPI:
pip3 install frugy
From GitHub:
pip3 install git+https://github.com/MicroTCA-Tech-Lab/frugy
Usage
$ frugy --help
usage: frugy [-h] [--version] [-o OUTPUT] [-w] [-r] [-d]
[-e EEPROM_SIZE] [-s SET] [-t] [-b] [-c]
[--vadatech-fmc-bit-order] [-l [LIST]]
[-v VERBOSITY] [--internal-area-size SIZE]
[srcfile]
FRU Generator YAML
positional arguments:
srcfile Source file for reading
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
-o OUTPUT, --output OUTPUT
output file (derived from input file if not set)
-w, --write FRU write mode (convert YAML to FRU image), default
-r, --read FRU read mode (convert FRU image to YAML)
-d, --dump dump FRU information to stdout (same as -r -o -)
-e EEPROM_SIZE, --eeprom-size EEPROM_SIZE
pad FRU image to match EEPROM size in bytes (only
valid in write mode)
-s SET, --set SET set FRU record field to a value (only valid in write
mode)
-t, --timestamp set BoardInfo.mfg_date_time timestamp to current UTC
time (only valid in write mode)
-b, --broken enable workaround to parse Opal Kelly EEPROMs
-c, --ignore-checksum-errors
ignore checksum errors when parsing a FRU image
--vadatech-fmc-bit-order
read or write FMC base definitions using VadaTech
legacy connector bit ordering
-l [LIST], --list [LIST]
list supported FRU records or schema of specified
record
-v VERBOSITY, --verbosity VERBOSITY
set verbosity (0=quiet, 1=info, 2=debug)
Examples
frugy damc-fmc2zup.yml
Read damc-fmc2zup.yml configuration, generate FRU image damc-fmc2zup.bin.
frugy damc-fmc2zup.yml -o fmc2zup_fru_eeprom.bin -e 2048
Read damc-fmc2zup.yml configuration, generate fmc2zup_fru_eeprom.bin, make it 2048 bytes (pad with 0xff).
frugy mumble_fmc.yml -o mumble_fmc_vadatech.bin --vadatech-fmc-bit-order
Generate a non-standard FMC FRU using the legacy connector bit ordering
expected by VadaTech carriers. Without --vadatech-fmc-bit-order, frugy
uses the ANSI/VITA 57.1 field ordering.
frugy mumble_fmc_vadatech.bin -r --vadatech-fmc-bit-order
Decode a VadaTech-compatible FRU back into its semantic FMC connector definition.
frugy damc-fmc2zup.bin -r
Read and parse FRU image damc-fmc2zup.bin, generate YAML file damc-fmc2zup.yml.
frugy dmmc-stamp.yml -s BoardInfo.serial_number=1234 -s ProductInfo.version=1.0 -t
Read dmmc-stamp.yml, generate FRU with BoardInfo.serial_number set to 1234, ProductInfo.version to 1.0 and BoardInfo.mfg_date_time to current UTC time.
frugy dmmc-stamp.yml -s serial_number=1234 -t
Read dmmc-stamp.yml, generate FRU with BoardInfo.serial_number and ProductInfo.serial_number set to 1234 and BoardInfo.mfg_date_time to current UTC time.
frugy -l
Show list of all supported FRU records.
frugy -l PointToPointConnectivity
Show layout of the FRU record called 'PointToPointConnectivity'.
Supported FRU records
YAML keywords for supported FRU records
- Detailed list of supported IPMI records
- Detailed list of supported PICMG records
- Detailed list of supported FMC records
Example configuration file
BoardInfo:
manufacturer: DESY
product_name: DMMC-STAMP Rev.A
serial_number: '0000'
part_number: '0000'
fru_file_id: none
ProductInfo:
manufacturer: DESY
product_name: DMMC-STAMP Rev.A
part_number: '0000'
version: '0000'
serial_number: '0000'
asset_tag: none
fru_file_id: none
MultirecordArea:
- type: ModuleCurrentRequirements
current_draw: 6.5
More example configurations are stored in the examples
folder.
Metadata
Release files for frugy 0.5.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| frugy-0.5.4.tar.gz | 32.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| frugy-0.5.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.2 kB
Release files / frugy-0.5.4.tar.gz
| Download URL | frugy-0.5.4.tar.gz |
|---|---|
| Size | 32.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8037248f2a0b3084c46d74329597c0db12bf8ff2f45bacd9fcd7f9bbbb509405
|
|
BLAKE2b-256 checksum How to use checksums |
02f174e18a962ed70c4aaeddaa85c7c1688e286cecf036baf64b77c7238550e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / frugy-0.5.4-py3-none-any.whl
| Download URL | frugy-0.5.4-py3-none-any.whl |
|---|---|
| Size | 34.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
92ca2db77aee88630f225417a9d518830b5db951392287aad1f47ebb22926f42
|
|
BLAKE2b-256 checksum How to use checksums |
5fce7d86734f4f1658ece5883948e24fcb4ac01a78b34fd6e55dfdd4d8bbd7f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|