Laptop: Difference between revisions
imported>AmnesiaAmesia m Added example of how to configure tlp |
imported>AmnesiaAmesia m Added troubleshooting for hot laptop in power |
||
Line 23: | Line 23: | ||
This example enables tlp and sets the minimum and maximum frequencies for the cpu based on whether it is plugged into power or not. It also changes the cpu scaling governor based on this. | This example enables tlp and sets the minimum and maximum frequencies for the cpu based on whether it is plugged into power or not. It also changes the cpu scaling governor based on this. | ||
== Troubleshooting == | |||
==== My laptops runs hot when on power, but not on battery ==== | |||
If you use tlp and experience this issue a simple solution can be to tell tlp to always run in battery mode. | |||
<syntaxHighlight lang=nix> | |||
services.tlp = { | |||
enable = true; | |||
settings = { | |||
TLP_DEFAULT_MODE = "BAT"; | |||
TLP_PERSISTENT_DEFAULT = 1; | |||
}; | |||
}; | |||
</syntaxHighlight> |
Revision as of 07:45, 18 June 2023
Power management
NixOS has several tools to help you manage the power on your system.
A common tool used to save power on laptops is tlp, which have sensible defaults for most laptops. To enable tlp you simply just write services.tlp.enable = true;
in your configraion.nix. However if you need a specific configuration you can do as shown in the example here below.
services.tlp = {
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_ENERGY_PERF_POLICY_ON_BAT = "performance";
CPU_ENERGY_PERF_POLICY_ON_AC = "power";
CPU_SCALING_MIN_FREQ_ON_AC = 800000;
CPU_SCALING_MAX_FREQ_ON_AC = 5000000;
CPU_SCALING_MIN_FREQ_ON_BAT = 800000;
CPU_SCALING_MAX_FREQ_ON_BAT = 2600000;
};
};
This example enables tlp and sets the minimum and maximum frequencies for the cpu based on whether it is plugged into power or not. It also changes the cpu scaling governor based on this.
Troubleshooting
My laptops runs hot when on power, but not on battery
If you use tlp and experience this issue a simple solution can be to tell tlp to always run in battery mode.
services.tlp = {
enable = true;
settings = {
TLP_DEFAULT_MODE = "BAT";
TLP_PERSISTENT_DEFAULT = 1;
};
};