微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用busctl读取openbmc中的传感器值

如何解决使用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内省”?抱歉,这很明显。 dbus的新手...

解决方法

我既不是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内省命令。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。