dbus - 使用 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...
解决方案
我不是 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
推荐阅读
- php - 通过 htaccess 重写 URL
- c++ - Eclipse C++ 字符串作为函数参数
- php - laravel(lumen) 查询中的 Postgis ST_DWithin 函数
- angular - 如何在不刷新页面的情况下立即根据字段选择显示数据?
- mysql - Mysql Gap-lock/Next-key 锁的规则
- sonarqube - Sonarqube - 什么是规则键?
- c# - 从按日期分组的数据表中获取记录(日期间隔)
- amazon-web-services - 亚马逊 RDS 升级
- ios - 当表格视图单元格中的条件更改时,自动布局约束中断
- apache-kafka - Kafka Connect AWS Lambda 接收器