前面说过如何添加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 "

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 \ "


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 }


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
