Sysfs、Netlink、Hwmon 与用户接口
1. Sysfs
1 | /sys/class/thermal/thermal_zoneN/ |
具体文件随配置、ops和 governor变化。
2. 编号
thermal_zoneN/cooling_deviceN编号动态分配。程序按 type和 sysfs device关系识别,不能写死编号。
3. Writable
主配置允许 writable trips,但 zone mask仍决定每个 trip是否可写。写 mode/policy/trip/cdev可能破坏保护,权限必须收紧。
4. Emulation
THERMAL_EMULATION 提供 emul_temp。本主配置未显式启用。它适合验证策略,但量产开放会让用户伪造低温绕过软件 protection。
5. Generic Netlink
Thermal family提供:
- zone/cdev/governor discovery;
- temperature;
- trip crossing;
- cdev state;
- governor change;
- events multicast。
相较 uevent信息更结构化。是否存在取决于 THERMAL_NETLINK最终配置。
6. Hwmon bridge
THERMAL_HWMON 可把 zone温度暴露为 hwmon tempN_input。这只是另一观测 ABI,不复制 governor。RK3588是否出现 hwmon节点由最终配置和注册路径决定。
7. Uevent
user_space governor使用 uevent提示 crossing。用户 daemon失联时不会自动给出复杂 fallback,因此仍需 critical/TSHUT。
8. Trace
thermal tracepoints可观测:
- temperature;
- cooling state;
- power allocator;
- CPU frequency cooling;
- thermal pressure。
适合定位振荡和响应延迟。
9. Android
Android thermal HAL可能读取 sysfs或 netlink/厂商接口,并对 framework报告 throttling severity。内核 policy与 HAL policy不应互相覆盖同一 cdev。
10. 权限
只读温度可开放;以下应 root-only:
- trip temperature;
- emul_temp;
- policy;
- mode;
- cooling cur_state;
- PID coefficients;
- sustainable power。
正在加载留言…