Skip to main content

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

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)

Source distribution for frugy 0.5.4
File Size Uploaded
frugy-0.5.4.tar.gz 32.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for frugy 0.5.4
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.5.4 This release

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page