1
0
Fork 0
mirror of https://github.com/NixOS/nixos-hardware synced 2024-12-27 12:09:45 +01:00

Add the temporary fix for the cpu-throttling issue

See https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues
This commit is contained in:
Alberto Berti 2018-06-03 01:31:17 +02:00
parent 5dd535392d
commit 654262071f

View file

@ -1,3 +1,4 @@
{ config, pkgs, ... }:
{
imports = [
../.
@ -17,4 +18,41 @@
START_CHARGE_THRESH_BAT0=75
STOP_CHARGE_THRESH_BAT0=80
'';
# 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"
];
};
}