openbmc开发23:添加fru信息到ipmi

openbmc开发23:添加fru信息到ipmi前面说过如何添加 sensor 传感器信息 I2C ADC FAN 到 ipmi 接内容说明如何将 fru 信息添加到 ipmi 中 下面将一一道来 1ipmi 配置文件转换成 cpp 在软件包下有一个 scripts 文件夹 这里边是 python 脚本 模板 示例 yaml 文件以及使用说明 本内容介绍 fru 的 yaml 文件 在 configure 阶段 通过 autoconf 工具 解析 configure ac 以及 Makefile am 生成 Makefile 文件 在编译阶段执行 fru gen py 的 python 脚本 根据 fru confi

前面说过如何添加sensor传感器信息(I2C、ADC、FAN)到ipmi,本文内容说明如何将fru信息添加到ipmi中,下面将详细说明。

1 ipmi配置文件转换成cpp

2 配置ipmi配置文件

SUMMARY = "YAML configuration for xxx" PR = "r1" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit allarch SRC_URI = " file://xxx-ipmi-fru.yaml " S = "${WORKDIR}" do_install() { 
    install -m 0644 -D xxx-ipmi-fru.yaml \ ${D}${datadir}/${BPN}/ipmi-fru-read.yaml } FILES_${PN}-dev = " ${datadir}/${BPN}/ipmi-fru-read.yaml " 

ipmi-fru-read

2、在your-layer/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend文件中添加如下内容:

DEPENDS_append = " xxx-yaml-config" FRU_YAML_GEN=${STAGING_DIR_HOST}${datadir}/xxx-yaml-config/ipmi-fru-read.yaml \ " 

ipmi-host
configuration

PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-merge-config = "ipmi-fru-merge-config-native" 

2、在your-layer/recipes-phosphor/ipmi/下创建xxx-ipmi-fru-map-native文件夹和xxx-ipmi-fru-map-native.bb文件,xxx-ipmi-fru-map-native文件夹下放yaml文件,xxx-ipmi-fru-map-native.bb文件内容如下

SUMMARY = " IPMI to DBus Sensor mapping." PR = "r1" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" inherit native inherit phosphor-ipmi-host PROVIDES += "virtual/phosphor-ipmi-fru-merge-config" SRC_URI += "file://xxx.yaml" S = "${WORKDIR}" do_install_append() { 
    DEST=${D}${config_datadir} install -d ${DEST} install config.yaml ${DEST}/fru_config.yaml } 

ipmi-merge-fru
ipmi-merge-dir

3 yaml文件

ipmi-fru-read.yaml文件内容

1: /system/chassis/motherboard/cpu0: entityID: 3 entityInstance: 1 interfaces: xyz.openbmc_project.Inventory.Decorator.Asset: BuildDate: IPMIFruProperty: Mfg Date IPMIFruSection: Board Manufacturer: IPMIFruProperty: Manufacturer IPMIFruSection: Board PartNumber: IPMIFruProperty: Part Number IPMIFruSection: Board SerialNumber: IPMIFruProperty: Serial Number IPMIFruSection: Board xyz.openbmc_project.Inventory.Decorator.Revision: Version: IPMIFruProperty: Custom Field 2 IPMIFruSection: Board IPMIFruValueDelimiter: 58 xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Name IPMIFruSection: Board 

xyz.openbmc_project.Inventory.Decorator.Revision #版本信息

Version #属性

xyz.openbmc_project.Inventory.Item #库存信息

PrettyName #属性

xyz.openbmc_project.Inventory.Decorator.AssetTag #资产标记

AssetTag

xyz.openbmc_project.Inventory.Decorator.VendorInformation #供应商信息

UUID

xyz.openbmc_project.Inventory.Item.NetworkInterface #网络信息

MACAddress

fruData属性:

IPMIFruSection

board类型:

FRU File ID #

Product类型:

公用:

bmc-ipmi-fru.yaml文件内容见文章最后。

4 编译及结果

bmc-ipmi-fru.yaml文件内容:

1: /system/chassis/motherboard/cpu0: entityID: 3 entityInstance: 1 interfaces: xyz.openbmc_project.Inventory.Decorator.Asset: BuildDate: IPMIFruProperty: Mfg Date IPMIFruSection: Board Manufacturer: IPMIFruProperty: Manufacturer IPMIFruSection: Board PartNumber: IPMIFruProperty: Part Number IPMIFruSection: Board SerialNumber: IPMIFruProperty: Serial Number IPMIFruSection: Board xyz.openbmc_project.Inventory.Decorator.Revision: Version: IPMIFruProperty: Custom Field 2 IPMIFruSection: Board IPMIFruValueDelimiter: 58 xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Name IPMIFruSection: Board 2: /system/chassis/motherboard/cpu1: entityID: 3 entityInstance: 2 interfaces: xyz.openbmc_project.Inventory.Decorator.Asset: BuildDate: IPMIFruProperty: Mfg Date IPMIFruSection: Board Manufacturer: IPMIFruProperty: Manufacturer IPMIFruSection: Board PartNumber: IPMIFruProperty: Part Number IPMIFruSection: Board SerialNumber: IPMIFruProperty: Serial Number IPMIFruSection: Board xyz.openbmc_project.Inventory.Decorator.Revision: Version: IPMIFruProperty: Custom Field 2 IPMIFruSection: Board IPMIFruValueDelimiter: 58 xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Name IPMIFruSection: Board Value: false 3: /system/chassis/motherboard/dimm0: entityID: 32 entityInstance: 1 interfaces: xyz.openbmc_project.Inventory.Decorator.Asset: BuildDate: IPMIFruProperty: Mfg Date IPMIFruSection: Product Manufacturer: IPMIFruProperty: Manufacturer IPMIFruSection: Product Model: IPMIFruProperty: Model Number IPMIFruSection: Product PartNumber: IPMIFruProperty: Part Number IPMIFruSection: Product SerialNumber: IPMIFruProperty: Serial Number IPMIFruSection: Product xyz.openbmc_project.Inventory.Decorator.Revision: Version: IPMIFruProperty: Version xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Name IPMIFruSection: Product 4: /system/chassis/motherboard/dimm1: entityID: 32 entityInstance: 1 interfaces: xyz.openbmc_project.Inventory.Decorator.Asset: BuildDate: IPMIFruProperty: Mfg Date IPMIFruSection: Product Manufacturer: IPMIFruProperty: Manufacturer IPMIFruSection: Product Model: IPMIFruProperty: Model Number IPMIFruSection: Product PartNumber: IPMIFruProperty: Part Number IPMIFruSection: Product SerialNumber: IPMIFruProperty: Serial Number IPMIFruSection: Product xyz.openbmc_project.Inventory.Decorator.Revision: Version: IPMIFruProperty: Version xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Name IPMIFruSection: Product 5: /system: entityID: 7 entityInstance: 1 interfaces: xyz.openbmc_project.Inventory.Decorator.Asset: Model: IPMIFruProperty: Part Number IPMIFruSection: Chassis SerialNumber: IPMIFruProperty: Serial Number IPMIFruSection: Chassis /system/chassis/motherboard: entityID: 7 entityInstance: 1 interfaces: xyz.openbmc_project.Inventory.Decorator.Asset: BuildDate: IPMIFruProperty: Mfg Date IPMIFruSection: Board Manufacturer: IPMIFruProperty: Manufacturer IPMIFruSection: Board PartNumber: IPMIFruProperty: Part Number IPMIFruSection: Board SerialNumber: IPMIFruProperty: Serial Number IPMIFruSection: Board xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Name IPMIFruSection: Board 50: /system/chassis/motherboard/fan0: entityID: 29 entityInstance: 1 interfaces: xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Product Name IPMIFruSection: Product 51: /system/chassis/motherboard/fan1: entityID: 29 entityInstance: 2 interfaces: xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Product Name IPMIFruSection: Product 52: /system/chassis/motherboard/fan2: entityID: 29 entityInstance: 3 interfaces: xyz.openbmc_project.Inventory.Item: PrettyName: IPMIFruProperty: Product Name IPMIFruSection: Product 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209683.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:39
下一篇 2026年3月19日 上午8:40


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号