1 查看传感器信息
通过qemu以本地端口映射方式运行编译后的镜像,访问bmcweb页面的网址是:https://localhost:2443/,如果想用IP地址启动请参考:openbmc开发4:启动运行编译镜像。(这里以网桥方式启动,以ip地址方式访问BMC)
输入用户名和密码,密码是:0penBmc(第一个是数字)。
选择Health,然后点击Sensor,可以看到传感器信息。
2 查看传感器配置文件
进入meta-live/meta-test/recipes-phosphor/sensors目录,然后看一下目录下的文件,如图所示,我们需要修改的就是[email protected]这个文件。
修改前:
修改后:
这里给原来的两个温度值添加了严厉低和严厉高警告值,同时,添加了两个新的传感器。
4 重新编译
为了确保生效先执行清除命令
bitbake obmc-phosphor-image -c clean
然后在执行编译命令
bitbake obmc-phosphor-image
5 查看增加传感器信息
启动编译后的镜像,登录web,可以看到修改后的结果。可以看到增加了test1和test2,同时,有Low criticla和High criticla值。
6 温度传感器工作方式
1、配置文件名
/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/[email protected]
bus@1e78a000 1e78a000是bmc芯片i2c控制器的基地址。
i2c-bus@c0 c0是i2c的偏移地址,代表的是第三路i2c。
[email protected] tmp423表示内核需要调用的驱动,4c表示传感器设备地址。
2、配置文件参数
LABEL_tempx——是显示名称
WARNLO_tempx——低告警值
WARNHI_tempx——高告警值
CRITHI_tempx——严重低告警值
CRITLO_tempx——严重高告警值
后面的告警值是实际值乘以1000,即放大了1000倍,系统在计算时候会自行转换。
3、配置文件在镜像中位置
recipes中的配置文件在镜像的/etc/default/obmc...下。
4、温度传感器值
bmc的i2c读取的温度值在/sys/class/hwmon/hwmon0/文件夹下:
/sys/class/hwmon/hwmon0是根据实际情况变化的,如果增加了fan信息,会变成hwmon1。
5、工作方式
在内核启动前会先读取dts设备数中的设备,按照设备树中的参数创建i2c设备,内核加载驱动后,在文件系统中创建/sys/class/hwmon0/tempx_input文件,这里可以看到一共创建了temp1_input到temp4_input四个文件,这是在驱动中定义好的了。最后,启动phosphor-howmon-readd程序,读取/etc/default....下的配置文件(dts中有指定配置文件名以及驱动和子设备地址,这里必须保证配置文件和驱动一致性),如果需要适配自己的板卡需要修改原有的驱动或者在设备树中指定其他驱动。
7 创建新传感器步骤
1、修改dts,打开对应的i2c设备通道,并指定配置文件和驱动。
2、修改已有的驱动或者添加新驱动到源码中。
3、在/recipes-phosphor/sensors/下按照格式增加新的配置文件[email protected]
4、重新编译镜像。