about summary refs log tree commit diff
path: root/lenovo
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2018-07-30 11:09:41 +0100
committerGitHub <noreply@github.com>2018-07-30 11:09:41 +0100
commitb4303dc68b0661ac616131ebacaa3aa90ead21b2 (patch)
treec94b3c7b65b8c2b6b6e229060732164d079fef3f /lenovo
parent5561e7ab0bd92b6bd7eae44d174816aa4af481dd (diff)
parent4428c70b17e47cff73c05ca9459a0f146b712ba6 (diff)
downloadnixlib-b4303dc68b0661ac616131ebacaa3aa90ead21b2.tar
nixlib-b4303dc68b0661ac616131ebacaa3aa90ead21b2.tar.gz
nixlib-b4303dc68b0661ac616131ebacaa3aa90ead21b2.tar.bz2
nixlib-b4303dc68b0661ac616131ebacaa3aa90ead21b2.tar.lz
nixlib-b4303dc68b0661ac616131ebacaa3aa90ead21b2.tar.xz
nixlib-b4303dc68b0661ac616131ebacaa3aa90ead21b2.tar.zst
nixlib-b4303dc68b0661ac616131ebacaa3aa90ead21b2.zip
Merge pull request #60 from azazel75/master
Add basic support for 6th-gen X1
Diffstat (limited to 'lenovo')
-rw-r--r--lenovo/thinkpad/x1/6th-gen/QHD/default.nix36
-rw-r--r--lenovo/thinkpad/x1/6th-gen/default.nix75
-rw-r--r--lenovo/thinkpad/x1/default.nix6
3 files changed, 117 insertions, 0 deletions
diff --git a/lenovo/thinkpad/x1/6th-gen/QHD/default.nix b/lenovo/thinkpad/x1/6th-gen/QHD/default.nix
new file mode 100644
index 000000000000..0b8555fbfb08
--- /dev/null
+++ b/lenovo/thinkpad/x1/6th-gen/QHD/default.nix
@@ -0,0 +1,36 @@
+# X1 6th generation with a QHD (2560x1440px) display
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../.
+  ];
+
+  # Fix font sizes in X
+  services.xserver.dpi = 210;
+  fonts.fontconfig.dpi = 210;
+
+  # Fix sizes of GTK/GNOME ui elements
+  environment.variables = {
+    GDK_SCALE = lib.mkDefault "2";
+    GDK_DPI_SCALE= lib.mkDefault "0.5";
+  };
+  # Enable readable font on console. The example configuration that
+  # follows is taliored towards western languages. To see how to
+  # configure the font download the source tarball from
+  # http://terminus-font.sourceforge.net/ and read the README file on
+  # the root dir
+
+  # i18n = {
+  #   # this means ISO8859-1 or ISO8859-15 or Windows-1252 codepages
+  #   # (ter-1), 16x32 px (32), normal font weight (n)
+  #   consoleFont = "ter-132n";
+  #   consoleKeyMap = "us";
+  #   defaultLocale = "en_US.UTF-8";
+  #   consolePackages = [ pkgs.terminus_font ];
+  # };
+
+  # Early configure the console to make the font readable from the
+  # start
+  # boot.earlyVconsoleSetup = true;
+}
diff --git a/lenovo/thinkpad/x1/6th-gen/default.nix b/lenovo/thinkpad/x1/6th-gen/default.nix
new file mode 100644
index 000000000000..b28fb5baca44
--- /dev/null
+++ b/lenovo/thinkpad/x1/6th-gen/default.nix
@@ -0,0 +1,75 @@
+# A good source of information about how to fix the issues still
+# standing with kernel 4.6.11 is the following wiki page:
+# https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_6). The
+# TrackPoint and TouchPad issues there seem to have been fixed already.
+
+{ config, pkgs, ... }:
+{
+  imports = [
+    ../.
+  ];
+  # 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 = ''
+    START_CHARGE_THRESH_BAT0=75
+    STOP_CHARGE_THRESH_BAT0=80
+    CPU_SCALING_GOVERNOR_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
+  # instructions shown here: https://delta-xi.net/#056 in order to
+  # produce the ACPI patched table. Put the CPIO archive in /boot and
+  # then enable the following lines
+  # boot.kernelParams = [
+  #   "mem_sleep_default=deep"
+  # ];
+  # boot.initrd.prepend = [
+  #   "/boot/acpi_override"
+  # ];
+}
diff --git a/lenovo/thinkpad/x1/default.nix b/lenovo/thinkpad/x1/default.nix
new file mode 100644
index 000000000000..870d9a857742
--- /dev/null
+++ b/lenovo/thinkpad/x1/default.nix
@@ -0,0 +1,6 @@
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+  ];
+}