FruDevice/Entity Manager vs hwmon

Andrei Kartashev a.kartashev at
Sun May 30 07:16:30 AEST 2021

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

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