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

Stephen Boylan sboylan at ircona.com
Fri Apr 26 01:42:24 AEST 2019


Here's my fans.yaml, which doesn't contain any reference to a fan2

fans:
  - inventory: /system/chassis/motherboard/fan0
    cooling_zone: 0
    sensors:
      - fan0
    target_interface: xyz.openbmc_project.Control.FanPwm
  - inventory: /system/chassis/motherboard/fan1
    cooling_zone: 0
    sensors:
      - fan1
    target_interface: xyz.openbmc_project.Control.FanPwm

I've pushed my changes into the following repo as requested 
https://github.com/JesusPhish/openbmc/tree/master/meta-evb/meta-evb-aspeed/meta-evb-ast2500/recipes-phosphor/fans?fbclid=IwAR3VgrLDBqzncNMhfuLZMAnZS4xopyfxTLfIC3IJHYxLKKxX3eqAL4x0oCE

-----Original Message-----
From: Matthew Barth <msbarth at linux.ibm.com> 
Sent: 25 April 2019 15:49
To: Stephen Boylan <sboylan at ircona.com>; Patrick Venture <venture at google.com>
Cc: openbmc at lists.ozlabs.org
Subject: Re: Fan control service issues - service will not start "Uncaught DBus service lookup failure exception"



On 4/25/19 4:56 AM, Stephen Boylan wrote:
> 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=445f19f9668b4129b216ec827e
> d31ddb;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-gnu
> eabi/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.

What does your `fans.yaml` contain? Is there a "sensors:" entry with "fan2" defined similar to romulus? If this does not contain it, would it be possible to push your openbmc repo to github containing all of your configs?
> 
>> 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=2de3ccbcea7940f5b51652e55e
> 900cd2;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-gnu
> eabi/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.
> 
>  >
>  >>
>  >>
>  >
> 



More information about the openbmc mailing list