04-21-2021, 10:35 AM
(This post was last modified: 04-26-2021, 10:38 AM by dsimic.
Edit Reason: Improved the opening sentence; Added a warning note
)
It's rather simple. First, you can check the default thresholds (i.e. default trip points) and associated trip point types for CPU thermal throttling on a PinePhone using the following commands (see the end of this post for more information on different trip point types):
The default thresholds are also available in the A64 device tree. Needless to say, the default thresholds allow the CPU and the upper third of the screen to become very hot even under light CPU load. You can use the following commands to configure more restrictive CPU thermal throttling:
The unit for all numeric values is millidegree Celsius. You can execute those commands either manually, from a shell script, or you can configure some sysctl rules to perform the settings upon each boot.
Of course, you can tweak those thresholds and see how do you like the results. However, make sure not to set values higher than 110000 (i.e. 110 degrees Celsius, which is the default value) for the third threshold, as it may cause damage to the phone.
Current CPU temperature can be checked using the following command:
Further information can be found in these documents from the Linux kenel source:
All this is important information for all PinePhone owners, so I went ahead and added this information to the wiki page.
Edit: The possible names and associated meanings for the trip point types are the following:
Code:
grep . /sys/class/thermal/thermal_zone0/trip_point_*_temp
grep . /sys/class/thermal/thermal_zone0/trip_point_*_type
The default thresholds are also available in the A64 device tree. Needless to say, the default thresholds allow the CPU and the upper third of the screen to become very hot even under light CPU load. You can use the following commands to configure more restrictive CPU thermal throttling:
Code:
echo 45000 > /sys/class/thermal/thermal_zone0/trip_point_0_temp # passive
echo 65000 > /sys/class/thermal/thermal_zone0/trip_point_1_temp # hot
echo 100000 > /sys/class/thermal/thermal_zone0/trip_point_2_temp # critical
The unit for all numeric values is millidegree Celsius. You can execute those commands either manually, from a shell script, or you can configure some sysctl rules to perform the settings upon each boot.
Of course, you can tweak those thresholds and see how do you like the results. However, make sure not to set values higher than 110000 (i.e. 110 degrees Celsius, which is the default value) for the third threshold, as it may cause damage to the phone.
Current CPU temperature can be checked using the following command:
Code:
cat /sys/class/thermal/thermal_zone0/temp
Further information can be found in these documents from the Linux kenel source:
- Documentation/thermal/sysfs-api.txt
- Documentation/hwmon/sysfs-interface
- Documentation/devicetree/bindings/thermal/thermal.txt
All this is important information for all PinePhone owners, so I went ahead and added this information to the wiki page.
Edit: The possible names and associated meanings for the trip point types are the following:
- "active" - a trip point to enable active cooling
- "passive" - a trip point to enable passive cooling
- "hot" - a trip point to notify emergency
- "critical" - hardware not reliable