在openbmc开发23:添加fru信息到ipmi中说明了如何将fru信息添加到ipmi中,本文将讲述如何生成fru以及fru信息获取展示以及修改等。
1 yaml配置文件转换成cpp
2 配置fru配置文件
DEPENDS_append_${MACHINE} = " yaml-config" EXTRA_OECONF_${MACHINE} = " \ YAML_GEN=${STAGING_DIR_HOST}${datadir}/yaml-config/ipmi-fru-read.yaml \ PROP_YAML=${STAGING_DIR_HOST}${datadir}/yaml-config/ipmi-extra-properties.yaml \ "
IPMI_FRU_SRC=${datadir}/phosphor-ipmi-fru/config IPMI_HOST_DEST=${D}${datadir}/phosphor-ipmi-host/config install -d ${IPMI_HOST_DEST} cat ${IPMI_FRU_SRC}/config.yaml > ${IPMI_HOST_DEST}/fru_config.yaml
这里依赖于openbmc开发23:添加fru信息到ipmi中配置,在之前的配置上增加配置,另外,不要两种方法混用以免导致报错。
3 yaml文件
yaml文件和openbmc开发23:添加fru信息到ipmi中一样,不需要进行修改,这里不做赘述。
4 指定fru的eeprom设备
4.1 创配置文件
创建phosphor-ipmi-fru文件夹,创建obmc/eeproms/system/motherboard文件内容如下:
SYSFS_PATH=/sys/bus/i2c/devices/3-0058/eeprom FRUID=1
dts中配置eeprom:
&i2c3 {
status = "okay"; /* FRU */ eeprom@58 {
compatible = "atmel,24c256"; reg = <0x58>; }; };
4.1 打包配置文件到镜像
在ipmi/phosphor-ipmi-fru_%.bbappend文件中添加
inherit obmc-phosphor-systemd systemd FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" EEPROM_NAMES = "motherboard" EEPROMFMT = "system/{0}" EEPROM_ESCAPEDFMT = "system-chassis-{0}" EEPROMS = "${@compose_list(d, 'EEPROMFMT', 'EEPROM_NAMES')}" EEPROMS_ESCAPED = "${@compose_list(d, 'EEPROM_ESCAPEDFMT', 'EEPROM_NAMES')}" ENVFMT = "obmc/eeproms/{0}" SYSTEMD_ENVIRONMENT_FILE_${PN} := " ${@compose_list(d, 'ENVFMT', 'EEPROMS')}" TMPL = "obmc-read-eeprom@.service" TGT = "${SYSTEMD_DEFAULT_TARGET}" INSTFMT = "obmc-read-eeprom@{0}.service" FMT = "../${TMPL}:${TGT}.wants/${INSTFMT}" SYSTEMD_LINK_${PN}_append := " ${@compose_list(d, 'FMT', 'EEPROMS_ESCAPED')}" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
5 fru二进制文件生成
github上ipmitool下有开源工具frugen来生成fru.bin文件。网址:https://github.com/ipmitool/frugen。
6 fru二进制写入eeprom
7 实际测试
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213893.html原文链接:https://javaforall.net
