diff options
Diffstat (limited to 'meta-google/recipes-google/networking/gbmc-mac-config.bb')
-rw-r--r-- | meta-google/recipes-google/networking/gbmc-mac-config.bb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/meta-google/recipes-google/networking/gbmc-mac-config.bb b/meta-google/recipes-google/networking/gbmc-mac-config.bb new file mode 100644 index 000000000..6ca4c798b --- /dev/null +++ b/meta-google/recipes-google/networking/gbmc-mac-config.bb @@ -0,0 +1,50 @@ +SUMMARY = "Configures MAC addresses on a gBMC system" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit systemd + +SRC_URI += " \ + file://gbmc-mac-config.service \ + file://gbmc-mac-config.sh.in \ + " + +S = "${WORKDIR}" + +RDEPENDS_${PN} += " \ + bash \ + ipmi-fru-sh \ + " + +FILES_${PN} += "${systemd_unitdir}" + +SYSTEMD_SERVICE_${PN} += "gbmc-mac-config.service" + +GBMC_MAC_EEPROM_OF_NAME ?= "" + +# Maps the MAC address offset from the base address to an interface name +# in bash associative array syntax. +# Ex. "[0]=eth0 [2]=eth2" +GBMC_MAC_IF_MAP ?= "" + +do_install_append() { + if [ -z '${GBMC_MAC_EEPROM_OF_NAME}' ]; then + echo 'Missing GBMC_MAC_EEPROM_OF_NAME' >&2 + exit 1 + fi + + # Build time dictionary sanity check + bash -c 'declare -A dict=(${GBMC_MAC_IF_MAP})' + + sed gbmc-mac-config.sh.in \ + -e 's#@EEPROM@#${GBMC_MAC_EEPROM_OF_NAME}#' \ + -e 's#@NUM_TO_IF@#${GBMC_MAC_IF_MAP}#' \ + >gbmc-mac-config.sh + + install -d -m0755 ${D}${libexecdir} + install -m0755 gbmc-mac-config.sh ${D}${libexecdir}/ + + install -d -m0755 ${D}${systemd_system_unitdir} + install -m0644 gbmc-mac-config.service ${D}${systemd_system_unitdir}/ +} |