Replace ad hoc throttling fix with throttled
`throttled` is a service designed to fix the same CPU throttling bug, but it's an actively maintainted upstream project that we can use.
This commit is contained in:
parent
ed0d3cc198
commit
2bf94227c1
|
@ -1,38 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Temporary fix for cpu throttling issues visible in the kernel log
|
||||
# (journalctl -k) by setting the same temperature limits used by
|
||||
# Window$
|
||||
# See https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues
|
||||
systemd.services.cpu-throttling = {
|
||||
enable = true;
|
||||
description = "CPU Throttling Fix";
|
||||
documentation = [
|
||||
"https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues"
|
||||
];
|
||||
path = [ pkgs.msr-tools ];
|
||||
script = "wrmsr -a 0x1a2 0x3000000";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
};
|
||||
wantedBy = [
|
||||
"timers.target"
|
||||
];
|
||||
};
|
||||
|
||||
systemd.timers.cpu-throttling = {
|
||||
enable = true;
|
||||
description = "CPU Throttling Fix";
|
||||
documentation = [
|
||||
"https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues"
|
||||
];
|
||||
timerConfig = {
|
||||
OnActiveSec = 60;
|
||||
OnUnitActiveSec = 60;
|
||||
Unit = "cpu-throttling.service";
|
||||
};
|
||||
wantedBy = [
|
||||
"timers.target"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -5,7 +5,6 @@
|
|||
../../../common/cpu/intel/kaby-lake
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/acpi_call.nix
|
||||
../../../common/pc/laptop/cpu-throttling-bug.nix
|
||||
];
|
||||
|
||||
# Force S3 sleep mode. See README.wiki for details.
|
||||
|
@ -13,4 +12,6 @@
|
|||
|
||||
# touchpad goes over i2c
|
||||
boot.blacklistedKernelModules = [ "psmouse" ];
|
||||
|
||||
services.throttled.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ nixos, pkgs, config, stdenv, ... }:
|
||||
{ nixos, pkgs, lib, config, stdenv, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop/acpi_call.nix
|
||||
../../../common/pc/laptop/cpu-throttling-bug.nix
|
||||
../.
|
||||
];
|
||||
|
||||
services.throttled.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop/acpi_call.nix
|
||||
../../../common/pc/laptop/cpu-throttling-bug.nix
|
||||
../.
|
||||
];
|
||||
|
||||
services.throttled.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
{ nixos, pkgs, config, stdenv, ... }:
|
||||
{ nixos, lib, pkgs, config, stdenv, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/intel
|
||||
../../../common/pc/laptop/acpi_call.nix
|
||||
../../../common/pc/laptop/cpu-throttling-bug.nix
|
||||
../.
|
||||
];
|
||||
|
||||
|
@ -26,5 +25,7 @@
|
|||
|
||||
LABEL="pulseaudio_end"
|
||||
'';
|
||||
|
||||
throttled.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ with lib;
|
|||
{
|
||||
imports = [
|
||||
../.
|
||||
../../../../common/pc/laptop/cpu-throttling-bug.nix
|
||||
];
|
||||
|
||||
# Fixes an issue with incorrect battery reporting. See
|
||||
|
@ -44,4 +43,6 @@ with lib;
|
|||
videoDrivers = [ "intel" ];
|
||||
})
|
||||
];
|
||||
|
||||
services.throttled.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
|
@ -5,15 +5,16 @@
|
|||
#
|
||||
# Enable the lower-power S3 suspend state by upgrading the BIOS to version >= 1.30,
|
||||
# then manually selecting Linux in the power management section.
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
../.
|
||||
../../../../common/pc/laptop/acpi_call.nix
|
||||
../../../../common/pc/laptop/cpu-throttling-bug.nix
|
||||
];
|
||||
|
||||
# New ThinkPads have a different TrackPoint manufacturer/name.
|
||||
# See also https://certification.ubuntu.com/catalog/component/input/5313/input%3ATPPS/2ElanTrackPoint/
|
||||
hardware.trackpoint.device = "TPPS/2 Elan TrackPoint";
|
||||
|
||||
services.throttled.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue