mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-11-27 05:19:43 +01:00
T480s: use CPU throttling fix too
This commit is contained in:
parent
d534770be7
commit
a633fa6f68
3 changed files with 41 additions and 45 deletions
38
lenovo/thinkpad/cpu-throttling-bug.nix
Normal file
38
lenovo/thinkpad/cpu-throttling-bug.nix
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{ 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 = "Sets the offset to 3 °C, so the new trip point is 97 °C";
|
||||||
|
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 = "Set cpu heating limit to 97 °C";
|
||||||
|
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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,6 +4,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
../../../common/cpu/intel
|
../../../common/cpu/intel
|
||||||
../acpi_call.nix
|
../acpi_call.nix
|
||||||
|
../cpu-throttling-bug.nix
|
||||||
../.
|
../.
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,16 +7,9 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../.
|
../.
|
||||||
|
../../cpu-throttling.nix
|
||||||
|
../../acpi_call.nix
|
||||||
];
|
];
|
||||||
# Give TLP service more control over battery
|
|
||||||
boot = {
|
|
||||||
extraModulePackages = with config.boot.kernelPackages; [
|
|
||||||
acpi_call
|
|
||||||
];
|
|
||||||
kernelModules = [
|
|
||||||
"acpi_call"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# See https://linrunner.de/en/tlp/docs/tlp-faq.html#battery
|
# See https://linrunner.de/en/tlp/docs/tlp-faq.html#battery
|
||||||
services.tlp.extraConfig = ''
|
services.tlp.extraConfig = ''
|
||||||
|
@ -26,42 +19,6 @@
|
||||||
ENERGY_PERF_POLICY_ON_BAT=powersave
|
ENERGY_PERF_POLICY_ON_BAT=powersave
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# 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 = "Sets the offset to 3 °C, so the new trip point is 97 °C";
|
|
||||||
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 = "Set cpu heating limit to 97 °C";
|
|
||||||
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"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable S3 suspend state: you have to manually follow the
|
# Enable S3 suspend state: you have to manually follow the
|
||||||
# instructions shown here: https://delta-xi.net/#056 in order to
|
# instructions shown here: https://delta-xi.net/#056 in order to
|
||||||
# produce the ACPI patched table. Put the CPIO archive in /boot and
|
# produce the ACPI patched table. Put the CPIO archive in /boot and
|
||||||
|
|
Loading…
Reference in a new issue