summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorAndré-Patrick Bubel <code@andre-bubel.de>2018-10-19 17:52:25 +0200
committerJörg Thalheim <joerg@thalheim.io>2018-10-23 09:28:07 +0100
commit941fbef86f558b9a39e6d1460ba5a34ecd72ebd5 (patch)
tree152d0fe4d5154f573cd48698215bc4564177cd49 /common
parentd4a430fef28b584bfcf580a681cd63330a232241 (diff)
move acpi_call.nix and cpu-throttling-bug.nix to common folder
Diffstat (limited to 'common')
-rw-r--r--common/pc/laptop/acpi_call.nix10
-rw-r--r--common/pc/laptop/cpu-throttling-bug.nix38
2 files changed, 48 insertions, 0 deletions
diff --git a/common/pc/laptop/acpi_call.nix b/common/pc/laptop/acpi_call.nix
new file mode 100644
index 0000000..f8c17dc
--- /dev/null
+++ b/common/pc/laptop/acpi_call.nix
@@ -0,0 +1,10 @@
+# acpi_call makes tlp work for newer thinkpads
+
+{ config, ... }:
+
+{
+ boot = {
+ kernelModules = [ "acpi_call" ];
+ extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];
+ };
+}
diff --git a/common/pc/laptop/cpu-throttling-bug.nix b/common/pc/laptop/cpu-throttling-bug.nix
new file mode 100644
index 0000000..a44bb72
--- /dev/null
+++ b/common/pc/laptop/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"
+ ];
+ };
+}