☰
openubmc 新增一个 IPMI Sensor
2026/9/26 19:31:36 网站建设 项目流程

新增一个IPMI Sensor ​

一个常见的场景便是需要将硬件上的某一个器件的读值,通过IPMI协议中定义的门限传感器呈现给用户。在本章节中,我们将配置一个LM75温度器件,同时配置一个对应的IPMI门限传感器,并呈现至对外接口。

CSR配置 ​

openUBMC采用一种软件描述性语言描述一个硬件的具体信息,这种描述性语言被称之为Component Self-description Record(CSR)。

关于CSR的具体介绍,请参考《硬件自描述文件(CSR)》

首先我们先获取CSR仓库:

cd /home/workspace git clone https://gitcode.com/openUBMC/vpd.git

打开服务机型(vendor/Huawei/Server/Kunpeng/openUBMC)的root.sr

打开后可以发现一系列配置。首先我们需要在硬件拓扑链路中声明一个LM75器件。

在实际的硬件链路拓扑中,I2c_8总线下地址为0x90处有一个LM75温感芯片。

在CSR的ManagementTopology中找到对应的I2c_8的配置,如果没有I2c_8,请在ManagementTopology中粘贴下面的配置(可参考I2c_2的配置)。

"ManagementTopology": { ... "I2c_8": { "Chip": [ "Lm75_DemoSensor" ] } ... }

这样CSR中便完成了实际的硬件链路拓扑配置。

同时,在与ManagementTopology同级的objects下面定义Lm75器件的具体信息,和两个业务对象:

"Objects": { ... "Lm75_DemoSensor": { "OffsetWidth": 1, "AddrWidth": 1, "Address": 144 }, "Scanner_GetTemperature": { "Chip": "#/Lm75_DemoSensor", "Size": 1, "Offset": 0, "Mask": 255, "Period": 1000 }, "ThresholdSensor_DemoSensor": { "AssertMask": 29312, "DeassertMask": 29312, "ReadingMask": 6168, "Linearization": 0, "M": 100, "RBExp": 224, "UpperCritical": 48, "UpperNoncritical": 46, "PositiveHysteresis": 2, "NegativeHysteresis": 2, "OwnerId": 32, "OwnerLun": 0, "EntityId": "<=/Entity_DemoSensor.Id", "EntityInstance": "<=/Entity_DemoSensor.Instance", "Initialization": 127, "Capabilities": 104, "SensorType": 1, "ReadingType": 1, "SensorName": "Demo Temperature Sensor", "Unit": 128, "BaseUnit": 1, "ModifierUnit": 0, "Analog": 1, "MaximumReading": 127, "MinimumReading": 128, "Reading": "<=/Scanner_GetTemperature.Value" }, "Entity_DemoSensor":{ "Id": 99, "Name": "Demo Temperature Sensor", "PowerState": 1, "Presence": 1, "Instance": 96 }, ... }

此处我们定义了两个对象,一个是Lm75器件,一个是定期扫描任务Scanner,一个是IPMI门限传感器的软件对象。 我们通过引用语法将Scanner和Lm75器件关联起来;通过同步语法将Scanner的读值同步至ThresholdSensor的读值。

具体IPMI传感器的配置,请参考《IPMI Sensor & SEL》

组件构建 ​

由于修改了vpd仓库,因此我们需要对vpd仓库进行重新构建。

为了和之前版本进行区分,我们需要将service.json中的version字段进行更新

bingo build --stage=stable

整包构建 ​

找到vpd声明位置,将版本改至对应的构建版本,然后在manifest中再次进行整包构建

bingo build

整包测试 ​

整包升级后,我们可以通过ipmitool进行传感器查询。

> ./ipmitool.exe -H ip -I lanplus -p 623 -U TestUser -P OpenUBMC@123 -C 17 sdr > Demo Temperature | 28 degrees C | ok

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询