openbmc
openbmc copied to clipboard
Selecting Fan Control Packages
Unexpected behavior you saw
I have a system using phosphor-pid-control for fan control, when trying to run ipmitool chassis power on
the system would briefly start booting, then turn off. After investigation I found that phosphor-fan-monitor@0
was starting, failing to detect fans, and shutting down the host.
Expected behavior That phosphor-fan-presence packages are not even installed in my machine image.
To Reproduce
- Set up a machine.conf file with
PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-company"
. - Set up packagegroup-company.bb with:
PROVIDES += "virtual/obmc-fan-mgmt"
RPROVIDES:${PN}-fans += "virtual-obmc-fan-mgmt"
RDEPENDS:${PN}-fans = " \
phosphor-pid-control \
"
- Turn off power (
ipmitool chassis power off
or Redfish equivalent) and turn power on (ipmitool chassis power on
or Redfish equivalent).
OpenBMC Information:
- /etc/os-release: Custom, but last upstream commit is 7b7ff3f
- Any additional patches or changes: I've ported phosphor-state-manager to this platform (2P AMD Epyc) and that is not upstreamed, should not impact any of the systemd targets/services or yocto packages though.
Additional context
It seems that obmc-fan-mgmt
was deprecated 6 years ago and obmc-fan-control
was intended to be used instead, but there is no way to set a PREFERRED_PROVIDER_virtual/obmc-fan-control
. If I am using Entity Manager & phosphor-pid-control I neither want nor need phosphor-fan-presence packages.
@spinler Can you take a look?
I haven't really thought much about how phosphor-fan is pulled into an image since we enabled it back around 2017 for our systems. The majority of systems in the tree use pid-control instead of phosphor-fan, so I assume there is a straightforward way to handle this. When I can get the time I will look into it more.