summaryrefslogtreecommitdiffstats
path: root/lenovo
diff options
context:
space:
mode:
authorMichael Peyton Jones <me@michaelpj.com>2018-08-15 18:34:44 +0100
committerMichael Peyton Jones <me@michaelpj.com>2018-08-15 18:34:44 +0100
commita633fa6f68255b5752bb595a3ea342813db63b4f (patch)
treec7c501ad8483394dfe7e4ee39445c2fd0f4b9cf7 /lenovo
parentd534770be7f699b3332ef09bd043745a38d115ad (diff)
T480s: use CPU throttling fix too
Diffstat (limited to 'lenovo')
-rw-r--r--lenovo/thinkpad/cpu-throttling-bug.nix38
-rw-r--r--lenovo/thinkpad/t480s/default.nix1
-rw-r--r--lenovo/thinkpad/x1/6th-gen/default.nix47
3 files changed, 41 insertions, 45 deletions
diff --git a/lenovo/thinkpad/cpu-throttling-bug.nix b/lenovo/thinkpad/cpu-throttling-bug.nix
new file mode 100644
index 0000000..a44bb72
--- /dev/null
+++ b/lenovo/thinkpad/cpu-throttling-bug.nix
@@ -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"
+ ];
+ };
+}
diff --git a/lenovo/thinkpad/t480s/default.nix b/lenovo/thinkpad/t480s/default.nix
index 026332e..2f4b8a9 100644
--- a/lenovo/thinkpad/t480s/default.nix
+++ b/lenovo/thinkpad/t480s/default.nix
@@ -4,6 +4,7 @@
imports = [
../../../common/cpu/intel
../acpi_call.nix
+ ../cpu-throttling-bug.nix
../.
];
}
diff --git a/lenovo/thinkpad/x1/6th-gen/default.nix b/lenovo/thinkpad/x1/6th-gen/default.nix
index b28fb5b..4fc8ece 100644
--- a/lenovo/thinkpad/x1/6th-gen/default.nix
+++ b/lenovo/thinkpad/x1/6th-gen/default.nix
@@ -7,16 +7,9 @@
{
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
services.tlp.extraConfig = ''
@@ -26,42 +19,6 @@
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
# instructions shown here: https://delta-xi.net/#056 in order to
# produce the ACPI patched table. Put the CPIO archive in /boot and