FruDevice/Entity Manager vs hwmon

Mahesh Kurapati mahesh.kurapati at
Fri Jun 4 00:47:16 AEST 2021

Hello Andrei, 

Thank you for the explanation. I understood that I need to describe sensors in the json EM configuration file of the FRU, not in the FruDevice.  


-----Original Message-----
From: Andrei Kartashev <a.kartashev at> 
Sent: Saturday, May 29, 2021 4:17 PM
To: Mahesh Kurapati <mahesh.kurapati at>; openbmc at
Subject: Re: FruDevice/Entity Manager vs hwmon

CAUTION: This message originates from an external sender.

Hi Mahesh,

You right that using EM+dbus-sensors you can dynamically add sensors when they are detected. But it seems you have kind of misunderstanding about FruDevice. Let me explain a bit:

EM is kind of "configuration manager". Main function of EM is to listen dbus and match appearing of some resources. In reaction of this matches EM exposes to dbus some other resources with configuration which used by other daemons. Additionally to this, EM can instantiate devices (send new_device command to kernel driver).
EM itself can only detect dbus entities and there are "detection daemons" to tell EM that there is some hardware available. FruDevice is one of this "detection  daemons" which scans I2C bus looking for EEPROMs with IPMI FRU data. That is how you detect baseboard, PSUs and units, but is you sensors don't have FRU, you need to implement other detection mechanism.
Typically you have y sensors mounted on baseboard, so you need to describe them in EM config, not in FruDevice.
Note that using EM doesn't exclude defining sensors in device tree - you still can do this if you want.
For list of supported devices, that can be instantiated by EM, see*L48__;Iw!!I5pVk4LIGAfnvw!0W9qs8gwqwRyjBfcUeIC-Vg_gsK6dtPqW0Wpcwi7cQS4MKayMzu9oliojaXhTsVvJdbROw$

On Sat, 2021-05-29 at 19:13 +0000, Mahesh Kurapati wrote:
> Hello,
> I want to define temperature sensors, fans and PSUs for our new 
> platform.  Going through the documentation and sources,  I understand 
> that there are two approaches.  One is to define them with the same 
> i2c path as mentioned in the device tree as part of the hwmon 
> configuration, and the other approach is to define a json file with 
> appropriate probe in the entity-manager/configurations folder so that 
> the FruDevice and Entity Manager apps detect the devices as per the 
> probe and create the matching dbus objects, while the dbus-sensors do 
> the instrumentation.  With entity manager approach I understand that 
> the i2c devices are created/probed when they are detected.  My 
> questions is we don’t need the device defined in the device tree file 
> if I go by this approach? I understand that this helps the dynamic 
> detection of the FRU.  Also we have LM73, and other temp sensor 
> TMP431c that is not defined in the FruDevice record map.  Next 
> question is do I need to add support for the LM73 tmp75MP431C and 
> other one in the FruDevice so that it gets created properly? Can I use 
> any existing strings/mapping for these sensors?  This is not needed if 
> I define the entries in the device tree, and integrate with hwmon I 
> have everything needed.  I see that hwmon and FruDevice/Entity 
> Manager/dbus-sensors provide similar functionality.  Can I have both 
> of these services running at the same time on the BMC? Will it cause any conflicts?
>  Please help me understand.
> Thank you,
> Mahesh

Best regards,
Andrei Kartashev

More information about the openbmc mailing list