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