高通thermal-engine配置文件格式

         本文基于高通msm8939/8994平台文档及源码。

 说明文档:                vendor/qcom/proprietary/thermal-engine/readme.txt;

         源码文件:               venror/qcom/proprietary/thermal-engine/thermal_config_v2.c;

         实际配置文件:      vendor/qcom/proprietary/thermal-engine/thermal-engine.conf。

         关注源码文件的global_table,pid_table, tm_table, ss_table, v_table, eq_table声明。其中global_table为全局配置选项,对应2.1中的算法实例标签之前的部分;pid_table对应pid算法配置格式;tm_table对应monitor算法配置格式;ss_table对应ss算法配置格式;v_table对应virtual算法配置格式;eq_table对应equilibrium配置格式(此格式暂时未见使用)。

 

配置文件基本格式

         {debug}             //可选,若有此选项表示使能调试信息

         sampling            // 默认采样率,以ms为单位

         [<算法实例标签>]             // 算法实例标签

         algo_type          // 算法类型,必须是算法实例的第一个字段

         disable               //可选, 用于默认情况下禁止该算法实例起作用

         ...

算法类型

         算法类型共有4种: monitor, pid, ss, virtual。每种的格式各不一样。

         算法类型对应thermal_config.h(vendor/qcom/proprietary/thermal-engine/inc)中的algo_type枚举类型,实际上有5种,除以上4种外,还有一个equilibrium类型。但从algos数组声明(thermal_configi_v2.c)可以看出,equilibrium还未被使用。

monitor算法配置格式

         [<算法实例标签>]   

         algo_type          monitor                               

         sensor                 <传感器名称>          

         sampling            <采样率(ms)>

         descending                 //       可选,默认门限是升序,有此字段后门限顺序为降序

         thresholds     <门限值(mC/mA)>

         thresholds_clr  <清除门限值>

        actions        <达到门限时的动作,多个动作时用'+'连接>

         action_info    <动作额外信息,多个额外信息间用'+'连接>

 

pid算法配置格式

         [<算法实例标签>]   

         algo_type          pid                               

         sampling            <采样率(ms)>

         sensor                 <传感器名称>

         device                <被PID算法调制的设备>

         set_point           <PID算法调整的目标值(mC/mA)>

         set_point_clr     <PID算法停止调整的值>

         p_const              <PID算法中的P常量>

         i_const               <PID算法中的I常量>

         d_const              <PID算法中的D常量>

         i_samples          <积分组件报错时的积分样本数>

         dev_units_per_calc  <积分算法输出调整单元值(每次调整的值)>

 

ss算法配置格式

         [<算法实例标签>]   

         algo_type          ss                                 

         sampling            <采样率(ms)>

         sensor                 <传感器名称>

         device                <被PID算法调整的设备>

         set_point           <PID算法调整的目标值(mC/mA)>

    &nb

<think>好的,我需要帮助用户了解如何通过修改高通thermal-engine.conf配置文件来实现设备关机。首先,我得先理解thermal-engine.conf的作用。这个文件通常用于管理设备的温度控制策略,当设备温度过高时,会触发相应的动作来降温,比如调节CPU频率或关闭某些组件。 用户提到想通过修改这个配置文件实现关机,可能是指当温度达到某个阈值时,系统自动关机以防止过热。接下来,我需要确认thermal-engine.conf中是否有相关的关机动作配置。根据引用内容,thermal-engine.conf中的action可以与设备节点关联,例如CPU的动作。因此,可能需要在该文件中添加一个触发关机的动作。 首先,查找现有的关机动作是否可用。通常,thermal-engine可能支持执行shell命令,因此可以尝试在action部分添加执行关机命令的指令。例如,使用`sh -c "poweroff"`或者调用系统的关机服务。但需要注意权限问题,确保thermal-engine有权限执行关机命令。 然后,配置温度采样器和触发条件。需要定义一个采样器(sampling)来监测温度传感器,当温度超过设定阈值时,触发对应的关机动作。例如,设置一个温度为90度的阈值,当达到时执行关机。 另外,需要确保thermal-engine进程能够正确加载修改后的配置文件。可能需要重启服务或设备来应用更改。同时,修改系统级配置文件存在风险,错误的配置可能导致系统不稳定或无法启动,因此建议在测试环境中进行,并做好备份。 可能遇到的问题包括:权限不足导致关机命令无法执行,温度传感器名称不正确,或者动作配置语法错误。需要检查日志文件,如kernel日志或thermal-engine的日志,来排查问题。 总结步骤:1. 编辑thermal-engine.conf,添加关机动作;2. 配置温度采样器和触发条件;3. 保存并重启服务;4. 测试温度触发是否生效。同时,提醒用户谨慎操作,并参考高通官方文档或社区资源获取更准确的信息。</think>要修改高通的`thermal-engine.conf`配置文件实现设备关机,需通过配置温度触发条件和关联关机动作。以下是具体步骤: --- ### 一、理解thermal-engine.conf结构 该文件主要包含: 1. **采样器(Sampling)**:定义温度监测参数,如传感器名称、采样间隔。 2. **动作(Action)**:定义触发条件后的响应,如调节CPU频率、关机。 3. **触发条件**:关联采样器与动作的阈值规则。 引用示例中的`action`与设备节点关联逻辑[^1],可通过类似方式绑定关机命令。 --- ### 二、实现关机的配置示例 ```bash # 1. 定义关机动作 [Action_Shutdown] algo_type=user_space # 执行关机命令(需root权限) action=sh -c "poweroff" delay=0 # 触发后立即执行 # 2. 配置温度采样器 [SS-CPU-TEMP] sampling=2000 # 每2秒采样一次 sensor=cpu-therm # 传感器名称(需根据设备确认) thresholds=90 # 触发温度阈值(单位:℃) thresholds_clr=85 # 温度回落阈值 actions=Action_Shutdown # 关联上述动作 ``` --- ### 三、关键注意事项 1. **传感器名称**:需通过`adb shell cat /sys/class/thermal/thermal_zone*/type`确认实际名称。 2. **权限问题**:`thermal-engine`进程需有执行`poweroff`的权限(通常需系统级SELinux策略调整)。 3. **配置文件加载**:修改后需重启`thermal-engine`服务: ```bash adb root adb shell "stop thermal-engine && start thermal-engine" ``` --- ### 四、调试方法 1. 查看内核日志确认触发情况: ```bash adb logcat | grep -i "thermal" ``` 2. 若关机未生效,检查是否因SELinux限制: ```bash adb shell "dmesg | grep avc" ``` ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值