Laptop: Difference between revisions

From NixOS Wiki
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;
      };
    };