首页 > 解决方案 > 使用 busctl 读取 openbmc 中的传感器值

问题描述

我正在尝试探索 openbmc 中的传感器值和信号。我可以看到可用的总线名称:

# busctl |grep Sensor|sed -e 's| .*||'
xyz.openbmc_project.ADCSensor
xyz.openbmc_project.CPUSensor
xyz.openbmc_project.ExitAirTempSensor
xyz.openbmc_project.FanSensor
xyz.openbmc_project.HwmonTempSensor
xyz.openbmc_project.IntrusionSensor
xyz.openbmc_project.IpmbSensor
xyz.openbmc_project.MCUTempSensor
xyz.openbmc_project.PSUSensor

但是,我无法从中得到任何对象。例如:

# busctl tree xyz.openbmc_project.HwmonTempSensor
Only root object discovered.

由于我没有得到对象,“busctl introspect”如何做?对不起,如果这很明显。刚接触dbus...

标签: dbusopenbmc

解决方案


我不是 openbmc 或 DBus 的权威,但我会告诉你我能做什么。

当我不熟悉 bmc 平台时,我将运行busctl tree | less然后在输出中搜索xyz.openbmc_project.Hwmon我想要的传感器名称或传感器名称。例子:

 Service xyz.openbmc_project.Hwmon-3372718265.Hwmon1:
 └─/xyz
   └─/xyz/openbmc_project
     └─/xyz/openbmc_project/sensors
       └─/xyz/openbmc_project/sensors/temperature
         └─/xyz/openbmc_project/sensors/temperature/i2cool_0

然后我可以制作我的 dbus introspect 命令。

busctl introspect xyz.openbmc_project.Hwmon-3372718265.Hwmon1 /xyz/openbmc_project/sensors/temperature/i2cool_0 | less

这带来了以下部分

xyz.openbmc_project.Sensor.Value
.MaxValue
.MinValue                                      
.Scale
.Unit
.Value   

社区中有很多人与 dbus 传感器接口更紧密地合作。但我想我会分享我的方法。这是我在遇到 dbus 传感器读取问题时遵循的文档。 https://github.com/openbmc/docs/blob/master/architecture/sensor-architecture.md


推荐阅读