OpenBMC - FRU inventory with Entity Manager
Andrei Kartashev
a.kartashev at yadro.com
Thu Aug 27 14:53:55 AEST 2020
Hi,
That is actually depend on which platform you are. E.g. we are derived
from intel-platforms and there are "intel-ipmi-oem" package which
handles ipmi fru commands. This case just everything found by FruDevice
would appear in "ipmitool fru list".
Otherwise I believe you need to add your device found by FruDevice to
inventory which can be done with EntityManager probe rule. Note that
FruDevice and EntityManager are different application and they are not
connected by default. Please check "xyz.openbmc_project.FruDevice"
~# busctl tree --no-pager xyz.openbmc_project.FruDevice
`-/xyz
`-/xyz/openbmc_project
`-/xyz/openbmc_project/FruDevice
|-/xyz/openbmc_project/FruDevice/DPS_2000AB_2_E
`-/xyz/openbmc_project/FruDevice/Motherboard
~# busctl tree --no-pager xyz.openbmc_project.EntityManager
`-/xyz
`-/xyz/openbmc_project
|-/xyz/openbmc_project/EntityManager
`-/xyz/openbmc_project/inventory
`-/xyz/openbmc_project/inventory/system
|-/xyz/openbmc_project/inventory/system/board
| |-/xyz/openbmc_project/inventory/system/board/PCIE_Device_3
| |-/xyz/openbmc_project/inventory/system/board/PCIE_Device_4
| |-/xyz/openbmc_project/inventory/system/board/PCIE_Device_5
| `-/xyz/openbmc_project/inventory/system/board/Baseboard
[.....]
On Thu, 2020-08-27 at 00:47 +0000, Jiandi An wrote:
> Hi,
>
> Have a question related how IPMI fru command is handled when having
> FRU inventory handled by Entity Manager.
> I've enabled Entity Manager and through the config JSONs, got the
> entity manager to probe FRU config information off of EEPROM and
> getting the FruDevice inventory D-Bus object added.
> For example I I have /xyz/openbmc_project/FruDevice/My_FRU show up
> under xyz.openbmc_project.FruDevice. And I can introspect it. But I
> can't get that FRU to be handled and displayed when I ran "ipmitool
> fru"
>
> root at bmc:~# busctl tree --no-pager xyz.openbmc_project.FruDevice
> └/xyz
> └/xyz/openbmc_project
> └/xyz/openbmc_project/FruDevice
> └/xyz/openbmc_project/FruDevice/My_FRU
>
> root at bmc:~# busctl introspect --no-pager
> xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/My_FRU
> NAME TYPE
> SIGNATURE RESULT/VALUE FLAGS
> org.freedesktop.DBus.Introspectable interface -
> - -
> .Introspect method
> - s
> -
> org.freedesktop.DBus.Peer interface -
> -
> -
> .GetMachineId method
> - s
> -
> .Ping met
> hod - -
> -
> org.freedesktop.DBus.Properties interface -
> - -
> .Get met
> hod ss v
> -
> .GetAll meth
> od s a{sv}
> -
> .Set me
> thod ssv -
> -
> .PropertiesChanged signal
> sa{sv}as -
> -
> xyz.openbmc_project.FruDevice interface -
> - -
> .ADDRESS property
> u 84
> emits-change
> .BOARD_INFO_AM1 property
> s "\001" e
> mits-change
> .BOARD_LANGUAGE_CODE property s
> "25" emits-
> change
> .BOARD_MANUFACTURER property s
> "XYZ COMPANY" emits-change
> .BOARD_MANUFACTURE_DATE property s
> "2020-01-01 - 12:00:00" emits-change
> .BOARD_PART_NUMBER property s
> "123.ABCD.1234" emits-change
> .BOARD_PRODUCT_NAME property s
> "My FRU" emits-change
> .BOARD_SERIAL_NUMBER property s
> "123ABC" emits-
> change
> .BUS pro
> perty u 2
> emits-change
> .CHASSIS_PART_NUMBER property s
> "123-12345-1234-000" emits-change
> .CHASSIS_SERIAL_NUMBER property s
> "1234567890123" emits-change
> .CHASSIS_TYPE property
> s "23"
> emits-change
> .Common_Format_Version property s
> "1" em
> its-change
> .PRODUCT_ASSET_TAG property
> s "0000000000000" emits-change
> .PRODUCT_FRU_VERSION_ID property s
> "v0.5" emits-
> change
> .PRODUCT_LANGUAGE_CODE property s
> "25" emits-
> change
> .PRODUCT_MANUFACTURER property s
> "XYZ COMPANY" emits-change
> .PRODUCT_PART_NUMBER property s
> "123-12345-1234-000" emits-change
> .PRODUCT_PRODUCT_NAME property s
> "TBD" emits-
> change
> .PRODUCT_SERIAL_NUMBER property s
> "1234567890123" emits-change
> .PRODUCT_VERSION property
> s "v1.0"
> emits-change
>
> When I ran the standard IPMI fru command, it always defaults to
> getting Builtin FRU Device, and dimm0, dimm1, cpu0, cpu1 FRUs and of
> course they are not there so it fails. Is there anything that I'm
> missing to get the standard IPMI fru command to map to the DBUS
> object xyz.openbmc_project.FruDevice
> /xyz/openbmc_project/FruDevice/My_FRU under Entity Manger?
>
> root at dev-system:~# ipmitool -I lanplus -H $BMC_IP -U root -P 0penBmc
> -C 17 fru
> FRU Device Description : Builtin FRU Device (ID 0)
> Device not present (Unspecified error)
>
> FRU Device Description : dimm0 (ID 1)
> Device not present (Unspecified error)
>
> FRU Device Description : dimm1 (ID 2)
> Device not present (Unspecified error)
>
> FRU Device Description : cpu0 (ID 3)
> Device not present (Unspecified error)
>
> FRU Device Description : cpu1 (ID 4)
> Device not present (Unspecified error)
>
> Thanks
> - Jiandi
More information about the openbmc
mailing list