Fan control service issues - service will not start "Uncaught DBus service lookup failure exception"

Stephen Boylan sboylan at ircona.com
Thu Apr 25 19:56:10 AEST 2019


After looking at my configuration file for /sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/ I noticed I had in an error to try fix an issue I set PWM_TARGET_fan1 = "0". Since I changed this back to what is below, now I get the following error when trying to start fan control services, similar to the original one but for a different fan.

{
        "__CURSOR" : "s=fdd5653de8ca4f298bf0d04f018a68d7;i=219;b=445f19f9668b4129b216ec827ed31ddb;m=ad54afd;t=58757bd23b204;x=757e520ccf3b4259",
        "__REALTIME_TIMESTAMP" : "1556185788690948",
        "__MONOTONIC_TIMESTAMP" : "181750525",
        "_BOOT_ID" : "445f19f9668b4129b216ec827ed31ddb",
        "_UID" : "0",
        "_GID" : "0",
        "_MACHINE_ID" : "a361a071fa454d939ee5c5a7324cf2de",
        "_HOSTNAME" : "evb-ast2500",
        "_TRANSPORT" : "journal",
        "_CAP_EFFECTIVE" : "3fffffffff",
        "CODE_FILE" : "/home/ircadmin/OpenBMC/openbmc/build/tmp/work/armv6-openbmc-linux-gnueabi/phosphor-fan/1.0+gitAUTOINC+4b258ac8b6-r1/recipe-sysroot/usr
/include/phosphor-logging/log.hpp",
        "CODE_LINE" : "105",
        "CODE_FUNC" : "helper_log",
        "PRIORITY" : "3",
        "MESSAGE" : "Uncaught DBus service lookup failure exception",
        "TRANSACTION_ID" : "2273921040",
        "PATH" : "/xyz/openbmc_project/sensors/fan_tach/fan2",
        "INTERFACE" : "xyz.openbmc_project.Control.FanPwm",
        "SYSLOG_IDENTIFIER" : "phosphor-fan-control",
        "_PID" : "1198",
        "_COMM" : "phosphor-fan-co",
        "_EXE" : "/usr/sbin/phosphor-fan-control",
        "_CMDLINE" : "phosphor-fan-control --control",
        "_SYSTEMD_CGROUP" : "/system.slice/system-phosphor\\x2dfan\\x2dcontrol.slice/phosphor-fan-control at 0.service",
        "_SYSTEMD_UNIT" : "phosphor-fan-control at 0.service",
        "_SYSTEMD_SLICE" : "system-phosphor\\x2dfan\\x2dcontrol.slice",
        "_SYSTEMD_INVOCATION_ID" : "140d38d6360847c389c67d0bfa162589",
        "_SOURCE_REALTIME_TIMESTAMP" : "1556185788690865"
}

What I don't understand here is why it's trying to access fan2 at all? I know that path does not exist and as far as I understand it I haven't tried to set it up through any configuration file.

> Also, what target mode do you have configured for the hwmon instance?
>The *.Control.FanPWM interface is created for the fan objects by the
>hwmon instance, when `TARGET_MODE = "PWM"` in the config.

Here is my configuration file for the fans, it's primarily based on the meta-romulus .conf file

  1 LABEL_fan1 = "fan0"
  2 LABEL_fan2 = "fan1"
  3
  4 PWM_TARGET_fan1 = "1"
  5 PWM_TARGET_fan2 = "2"
  6
  7 WARNLO_fan1 = 1500
  8 WARNHI_fan1 = 5000
  9 CRITLO_fan1 = 1000
 10 CRITHI_fan1 = 5500
 11
 12 WARNLO_fan2 = 1500
 13 WARNHI_fan2 = 5000
 14 CRITLO_fan2 = 1000
 15 CRITHI_fan2 = 5500

Here is the pwm_tacho section of my dts file

153 &pwm_tacho {
154         status = "okay";
155         pinctrl-names = "default";
156         pinctrl-0 = <&pinctrl_pwm0_default
157         &pinctrl_pwm1_default>;
158
159         fan at 0 {
160                 reg = <0x00>;
161                 aspeed,fan-tach-ch = /bits/ 8 <0x00>;
162         };
163
164         fan at 1 {
165                 reg = <0x01>;
166                 aspeed,fan-tach-ch = /bits/ 8 <0x01>;
167         };
168 };

> It looks like they don't have that PWM interface.  You can check if
> the pwm files exist under /sys/class/hwmon/hwmon*/  for the hwmon*
> that has your fans.

Here's the contents of hwmon0. I know I can manually echo values into pwm1 and pwm2 and I can see the effect on the fans as they spin.

root at evb-ast2500:/sys/class/hwmon/hwmon0# ls
device      fan1_input  fan2_input  name        of_node     pwm1        pwm2        subsystem   uevent


My understanding is that through the DTS file I've set up fan0 and fan1. These are represented in sys/class/hwmon/hwmon0 as fan1_input and fan2_input. Though the conf file set up in /sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/ I've assigned a "pretty name" of fan0 and fan1 to
LABEL_fan1 and LABEL_fan2. Those "pretty name" values are used throughout the various configuration files for monitor/presence and control.


________________________________
From: Matthew Barth <msbarth at linux.ibm.com>
Sent: 24 April 2019 18:08
To: Patrick Venture; Stephen Boylan
Cc: openbmc at lists.ozlabs.org
Subject: Re: Fan control service issues - service will not start "Uncaught DBus service lookup failure exception"



On 4/24/19 11:38 AM, Patrick Venture wrote:
> On Wed, Apr 24, 2019 at 9:25 AM Stephen Boylan <sboylan at ircona.com> wrote:
>>
>> Hello all,
>>
>> I've run into an issue with my fan control. I have a simple two fan system which is failing to start phosphor-fan-control at .service
>>
>>
>>
>> This is the status
>>
>> root at evb-ast2500:/lib/systemd/system# systemctl status phosphor-fan-control at 0.service --no-page
>>
>> ? phosphor-fan-control at 0.service - Phosphor Fan Control Daemon
>>
>>     Loaded: loaded (/lib/systemd/system/phosphor-fan-control at .service; static; vendor preset: enabled)
>>
>>     Active: failed (Result: exit-code) since Wed 2019-04-24 16:22:36 UTC; 16s ago
>>
>>    Process: 1218 ExecStart=/usr/bin/env phosphor-fan-control --control (code=exited, status=1/FAILURE)
>>
>> Main PID: 1218 (code=exited, status=1/FAILURE)
>>
>>
>>
>> Apr 24 16:22:36 evb-ast2500 systemd[1]: phosphor-fan-control at 0.service: Service RestartSec=1s expired, scheduling restart.
>>
>> Apr 24 16:22:36 evb-ast2500 systemd[1]: phosphor-fan-control at 0.service: Scheduled restart job, restart counter is at 2.
>>
>> Apr 24 16:22:36 evb-ast2500 systemd[1]: Stopped Phosphor Fan Control Daemon.
>>
>> Apr 24 16:22:36 evb-ast2500 systemd[1]: phosphor-fan-control at 0.service: Start request repeated too quickly.
>>
>> Apr 24 16:22:36 evb-ast2500 systemd[1]: phosphor-fan-control at 0.service: Failed with result 'exit-code'.
>>
>> Apr 24 16:22:36 evb-ast2500 systemd[1]: Failed to start Phosphor Fan Control Daemon.
>>
>>
>>
>> And I noticed this in the journalctl
>>
>> {
>>
>>          "__CURSOR" : "s=efc0b033c5f243798b56446bcaffc0f5;i=23d;b=2de3ccbcea7940f5b51652e55e900cd2;m=2f22198c;t=5874871dec1c2;x=f1ba902c2ec1feae",
>>
>>          "__REALTIME_TIMESTAMP" : "1556120101372354",
>>
>>          "__MONOTONIC_TIMESTAMP" : "790763916",
>>
>>          "_BOOT_ID" : "2de3ccbcea7940f5b51652e55e900cd2",
>>
>>          "_UID" : "0",
>>
>>          "_GID" : "0",
>>
>>          "_MACHINE_ID" : "4c5bf4049b5e4751b70a17eaeeb55a49",
>>
>>          "_HOSTNAME" : "evb-ast2500",
>>
>>          "_TRANSPORT" : "journal",
>>
>>          "_CAP_EFFECTIVE" : "3fffffffff",
>>
>>          "CODE_FILE" : "/home/ircadmin/OpenBMC/openbmc/build/tmp/work/armv6-openbmc-linux-gnueabi/phosphor-fan/1.0+gitAUTOINC+4b258ac8b6-r1/recipe-sysroot/usr
>>
>> /include/phosphor-logging/log.hpp",
>>
>>          "CODE_LINE" : "105",
>>
>>          "CODE_FUNC" : "helper_log",
>>
>>          "PRIORITY" : "3",
>>
>>          "MESSAGE" : "Uncaught DBus service lookup failure exception",
>>
>>          "TRANSACTION_ID" : "114915536",
>>
>>          "PATH" : "/xyz/openbmc_project/sensors/fan_tach/fan0",
>>
>>          "INTERFACE" : "xyz.openbmc_project.Control.FanPwm",
>>
>>          "SYSLOG_IDENTIFIER" : "phosphor-fan-control",
>>
>>          "_PID" : "1273",
>>
>>          "_COMM" : "phosphor-fan-co",
>>
>>          "_EXE" : "/usr/sbin/phosphor-fan-control",
>>
>>          "_CMDLINE" : "phosphor-fan-control --control",
>>
>>          "_SYSTEMD_CGROUP" : "/system.slice/system-phosphor\\x2dfan\\x2dcontrol.slice/phosphor-fan-control at 0.service",
>>
>>          "_SYSTEMD_UNIT" : "phosphor-fan-control at 0.service",
>>
>>          "_SYSTEMD_SLICE" : "system-phosphor\\x2dfan\\x2dcontrol.slice",
>>
>>          "_SYSTEMD_INVOCATION_ID" : "21572a9f879c44cab2b9b6b4c5e9a504",
>>
>>          "_SOURCE_REALTIME_TIMESTAMP" : "1556120101372269"
>>
>> }
>>
>>
>>
>> I know the PATH exists, though I'm not entirely sure about the INTERFACE. I've checked systemctl to see if I can find it and I don't see it. Should I be checking elsewhere for it?
>>
>>
>>
>>
>>
>> I can see my fan_tach sensors and my chassis entries as such
>>
>> /xyz/openbmc_project/sensors/fan_tach/enumerate
>>
>> {
>>
>>      "data": {
>>
>>          "/xyz/openbmc_project/sensors/fan_tach/fan0": {
>>
>>              "CriticalAlarmHigh": false,
>>
>>              "CriticalAlarmLow": false,
>>
>>              "CriticalHigh": 5500,
>>
>>              "CriticalLow": 1000,
>>
>>              "MaxValue": 0,
>>
>>              "MinValue": 0,
>>
>>              "Scale": 0,
>>
>>              "Unit": "xyz.openbmc_project.Sensor.Value.Unit.RPMS",
>>
>>              "Value": 4292,
>>
>>              "WarningAlarmHigh": false,
>>
>>              "WarningAlarmLow": false,
>>
>>              "WarningHigh": 5000,
>>
>>              "WarningLow": 1500
>>
>>          },
>>
>>          "/xyz/openbmc_project/sensors/fan_tach/fan1": {
>>
>>              "CriticalAlarmHigh": false,
>>
>>              "CriticalAlarmLow": false,
>>
>>              "CriticalHigh": 5500,
>>
>>              "CriticalLow": 1000,
>>
>>              "MaxValue": 0,
>>
>>              "MinValue": 0,
>>
>>              "Scale": 0,
>>
>>              "Target": 255,
>>
>>              "Unit": "xyz.openbmc_project.Sensor.Value.Unit.RPMS",
>>
>>              "Value": 3551,
>>
>>              "WarningAlarmHigh": false,
>>
>>              "WarningAlarmLow": false,
>>
>>              "WarningHigh": 5000,
>>
>>              "WarningLow": 1500
>>
>>          }
>>
>>      },
>>
>>      "message": "200 OK",
>>
>>      "status": "ok"
>>
>> }
>>
>>
>>
>> /xyz/openbmc_project/inventory/system/chassis/motherboard/enumerate
>>
>> {
>>
>>      "data": {
>>
>>          "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0": {
>>
>>              "Functional": true,
>>
>>              "Present": true,
>>
>>             "PrettyName": "fan0"
>>
>>          },
>>
>>          "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0": {
>>
>>              "Functional": true
>>
>>          },
>>
>>          "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1": {
>>
>>              "Functional": true,
>>
>>              "Present": true,
>>
>>              "PrettyName": "fan1"
>>
>>          },
>>
>>          "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1": {
>>
>>              "Functional": true
>>
>>          }
>>
>>      },
>>
>>      "message": "200 OK",
>>
>>      "status": "ok"
>>
>> }
>
> It looks like they don't have that PWM interface.  You can check if
> the pwm files exist under /sys/class/hwmon/hwmon*/  for the hwmon*
> that has your fans.

Also, what target mode do you have configured for the hwmon instance?
The *.Control.FanPWM interface is created for the fan objects by the
hwmon instance, when `TARGET_MODE = "PWM"` in the config.

>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20190425/ac1fbbee/attachment-0001.htm>


More information about the openbmc mailing list