summaryrefslogtreecommitdiffstats
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)
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 0000000..0b8555f
--- /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 0000000..b28fb5b
--- /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 0000000..870d9a8
--- /dev/null
+++ b/lenovo/thinkpad/x1/default.nix
@@ -0,0 +1,6 @@
+{
+ imports = [
+ ../.
+ ../../../common/cpu/intel
+ ];
+}