OpenBmc开发10:hwmon简介

1 简介

hwmon即hardware monitoring framework,硬件监视框架,包括了温度传感器、风扇、电源等器件驱动的框架。Hwmon硬件监视系统主要借助sysfs提供的api接口,实现对硬件监控器件的通信。通过sysfs的文件中的配置文件,实现应用程序与hwmon器件的通信。

在linux3.10及之前的版本中,hwmon子系统实现的内容不是太多,也就是实现了一个hwmon class,并提供了一个hwmon的注册接口hwmon_device_register(就是对device_register的囊括),而硬件驱动,在调用hwmon_device_register注册之前调用sysfs_create_group完成属性参数的注册,并提供属性的store、show接口。此时的hwmon子系统略显单薄;

在linux4.4版本以后,hwmon子系统的内容渐渐丰富起来,不再是只做对device_register的包裹,还提供了硬件监控参数的抽象,主要提供了接口hwmon_attr_show、hwmon_attr_store,同时抽象了针对温度芯片、风扇芯片、电源芯片等硬件监控芯片相关参数的支持,即温度芯片、风扇芯片、电源芯片等硬件监控芯片相关参数的访问接口,均会在接口hwmon_attr_show、hwmon_attr_store中被统一调用,而温度芯片、风扇芯片、电源芯片等,硬件监控芯片只需要实现hwmon_ops类型函数指针即可。调用关系如下所示。

hwmon子系统层则为hwmon子层抽象的部分,其最下层是具体的hwmon 设备驱动。其中hwmon子系统提供统一的创建device_attribute操作,并且提供相应的访问接口(hwmon_attr_store、hwmon_attr_show),而具体的hwmon device driver则只需要提供struct hwmon_ops类型的变量,基于新版的hwmon子系统,对各硬件芯片的属性做了定义与抽象,并提供抽象层,此时,hwmon子系统才是当之无愧的“hwmon子系统”了。下图是新版hwmon子系统的框架图。

猜你喜欢

转载自blog.csdn.net/qq_34160841/article/details/107283000