about summary refs log tree commit diff
path: root/modules/nixos-hardware/lenovo
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 16:23:40 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 16:24:02 +0000
commit8c0790eb6095ef59a9623596f5794d250b95c699 (patch)
tree4801e46054b433e786e15d030b6cab991d8a6724 /modules/nixos-hardware/lenovo
parent36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (diff)
parent99cdc883064ac5a1b9e189d3500a809616e79765 (diff)
downloadnixlib-8c0790eb6095ef59a9623596f5794d250b95c699.tar
nixlib-8c0790eb6095ef59a9623596f5794d250b95c699.tar.gz
nixlib-8c0790eb6095ef59a9623596f5794d250b95c699.tar.bz2
nixlib-8c0790eb6095ef59a9623596f5794d250b95c699.tar.lz
nixlib-8c0790eb6095ef59a9623596f5794d250b95c699.tar.xz
nixlib-8c0790eb6095ef59a9623596f5794d250b95c699.tar.zst
nixlib-8c0790eb6095ef59a9623596f5794d250b95c699.zip
Add 'modules/nixos-hardware/' from commit '99cdc883064ac5a1b9e189d3500a809616e79765'
git-subtree-dir: modules/nixos-hardware
git-subtree-mainline: 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2
git-subtree-split: 99cdc883064ac5a1b9e189d3500a809616e79765
Diffstat (limited to 'modules/nixos-hardware/lenovo')
-rw-r--r--modules/nixos-hardware/lenovo/ideapad/default.nix3
-rw-r--r--modules/nixos-hardware/lenovo/ideapad/z510/default.nix11
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/default.nix10
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/t410/default.nix36
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/t430/default.nix15
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/t440p/default.nix16
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/t450s/default.nix9
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/t460s/default.nix12
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/t480s/default.nix10
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/tp-smapi.nix11
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x1/6th-gen/QHD/default.nix36
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x1/6th-gen/default.nix32
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x1/default.nix6
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x140e/default.nix14
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x220/default.nix10
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x230/default.nix19
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x250/default.nix6
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x260/default.nix12
-rw-r--r--modules/nixos-hardware/lenovo/thinkpad/x270/default.nix6
19 files changed, 274 insertions, 0 deletions
diff --git a/modules/nixos-hardware/lenovo/ideapad/default.nix b/modules/nixos-hardware/lenovo/ideapad/default.nix
new file mode 100644
index 000000000000..d774ba3793af
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/ideapad/default.nix
@@ -0,0 +1,3 @@
+{
+  imports = [ ../../common/pc/laptop ];
+}
diff --git a/modules/nixos-hardware/lenovo/ideapad/z510/default.nix b/modules/nixos-hardware/lenovo/ideapad/z510/default.nix
new file mode 100644
index 000000000000..83f656806854
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/ideapad/z510/default.nix
@@ -0,0 +1,11 @@
+{ lib, ... }:
+
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+  ];
+
+  # https://github.com/NixOS/nixpkgs/issues/18356
+  boot.blacklistedKernelModules = [ "nouveau" ];
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/default.nix b/modules/nixos-hardware/lenovo/thinkpad/default.nix
new file mode 100644
index 000000000000..ff22639b4fdc
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/default.nix
@@ -0,0 +1,10 @@
+{ lib, pkgs, ... }:
+
+{
+  imports = [ ../../common/pc/laptop ];
+
+  hardware.trackpoint.enable = lib.mkDefault true;
+
+  # Fingerprint reader: login and unlock with fingerprint (if you add one with `fprintd-enroll`)
+  # services.fprintd.enable = true;
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/t410/default.nix b/modules/nixos-hardware/lenovo/thinkpad/t410/default.nix
new file mode 100644
index 000000000000..c40801ffc0bc
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/t410/default.nix
@@ -0,0 +1,36 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../.
+    ../tp-smapi.nix
+    ../../../common/cpu/intel
+  ];
+
+  boot = {
+    # TODO: this configuration seems to be very aggressive.
+    # Ask @peti if it's stable or not.
+    kernelParams = [
+      "drm.debug=0"
+      "drm.vblankoffdelay=1"
+      "i915.semaphores=1"
+      "i915.modeset=1"
+      "i915.use_mmio_flip=1"
+      "i915.powersave=1"
+      "i915.enable_ips=1"
+      "i915.disable_power_well=1"
+      "i915.enable_hangcheck=1"
+      "i915.enable_cmd_parser=1"
+      "i915.fastboot=0"
+      "i915.enable_ppgtt=1"
+      "i915.reset=0"
+      "i915.lvds_use_ssc=0"
+      "i915.enable_psr=0"
+      "vblank_mode=0"
+      "i915.i915_enable_rc6=1"
+    ];
+    blacklistedKernelModules = [
+      "sierra_net" "cdc_mbim" "cdc_ncm" "btusb"
+    ];
+  };
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/t430/default.nix b/modules/nixos-hardware/lenovo/thinkpad/t430/default.nix
new file mode 100644
index 000000000000..09cee74942e9
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/t430/default.nix
@@ -0,0 +1,15 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+  ];
+
+  boot = {
+    kernelParams = [
+      # fixes brightness keys, see https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_T430s
+      "acpi_osi\='!Windows 2012'"
+    ];
+  };
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/t440p/default.nix b/modules/nixos-hardware/lenovo/thinkpad/t440p/default.nix
new file mode 100644
index 000000000000..4dd4085794fa
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/t440p/default.nix
@@ -0,0 +1,16 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+  ];
+
+  boot = {
+    extraModprobeConfig = lib.mkDefault ''
+      options bbswitch use_acpi_to_detect_card_state=1
+    '';
+    # TODO: probably enable tcsd? Is this line necessary?
+    kernelModules = [ "tpm-rng" ];
+  };
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/t450s/default.nix b/modules/nixos-hardware/lenovo/thinkpad/t450s/default.nix
new file mode 100644
index 000000000000..e62337171b9a
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/t450s/default.nix
@@ -0,0 +1,9 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../../../common/cpu/intel
+    ../../../common/pc/laptop/acpi_call.nix
+    ../.
+  ];
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/t460s/default.nix b/modules/nixos-hardware/lenovo/thinkpad/t460s/default.nix
new file mode 100644
index 000000000000..41558a35b7f6
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/t460s/default.nix
@@ -0,0 +1,12 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../../../common/cpu/intel
+    ../.
+  ];
+
+  # TODO: boot loader
+  boot.loader.systemd-boot.enable = lib.mkDefault true;
+  boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/t480s/default.nix b/modules/nixos-hardware/lenovo/thinkpad/t480s/default.nix
new file mode 100644
index 000000000000..3e079d5fb060
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/t480s/default.nix
@@ -0,0 +1,10 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../../../common/cpu/intel
+    ../../../common/pc/laptop/acpi_call.nix
+    ../../../common/pc/laptop/cpu-throttling-bug.nix
+    ../.
+  ];
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/tp-smapi.nix b/modules/nixos-hardware/lenovo/thinkpad/tp-smapi.nix
new file mode 100644
index 000000000000..451dd28ece03
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/tp-smapi.nix
@@ -0,0 +1,11 @@
+# tp_smapi works on ThinkPads made before 2013. See compat table:
+# https://www.thinkwiki.org/wiki/Tp_smapi#Model-specific_status
+
+{ config, ... }:
+
+{
+  boot = {
+    kernelModules = [ "tp_smapi" ];
+    extraModulePackages = with config.boot.kernelPackages; [ tp_smapi ];
+  };
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/x1/6th-gen/QHD/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x1/6th-gen/QHD/default.nix
new file mode 100644
index 000000000000..0b8555fbfb08
--- /dev/null
+++ b/modules/nixos-hardware/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/modules/nixos-hardware/lenovo/thinkpad/x1/6th-gen/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x1/6th-gen/default.nix
new file mode 100644
index 000000000000..9584bc744571
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/x1/6th-gen/default.nix
@@ -0,0 +1,32 @@
+# 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 = [
+    ../.
+    ../../../../common/pc/laptop/acpi_call.nix
+    ../../../../common/pc/laptop/cpu-throttling-bug.nix
+  ];
+
+  # 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
+  '';
+
+  # 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/modules/nixos-hardware/lenovo/thinkpad/x1/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x1/default.nix
new file mode 100644
index 000000000000..870d9a857742
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/x1/default.nix
@@ -0,0 +1,6 @@
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+  ];
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/x140e/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x140e/default.nix
new file mode 100644
index 000000000000..c03410e936e2
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/x140e/default.nix
@@ -0,0 +1,14 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../.
+    ../../../common/cpu/amd
+  ];
+
+  boot.extraModprobeConfig = lib.mkDefault ''
+    options snd_hda_intel enable=0,1
+  '';
+
+  services.xserver.videoDrivers = [ "ati" ];
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/x220/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x220/default.nix
new file mode 100644
index 000000000000..3cf18e397469
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/x220/default.nix
@@ -0,0 +1,10 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+    ../../../common/pc/laptop/hdd # TODO: reverse compat
+    ../tp-smapi.nix
+  ];
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/x230/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x230/default.nix
new file mode 100644
index 000000000000..58b09f4c5d5f
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/x230/default.nix
@@ -0,0 +1,19 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+    ../../../common/pc/laptop/acpi_call.nix
+  ];
+
+  boot = {
+    kernelModules = [
+      "tpm-rng"
+    ];
+  };
+
+  services.xserver.deviceSection = lib.mkDefault ''
+    Option "TearFree" "true"
+  '';
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/x250/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x250/default.nix
new file mode 100644
index 000000000000..870d9a857742
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/x250/default.nix
@@ -0,0 +1,6 @@
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+  ];
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/x260/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x260/default.nix
new file mode 100644
index 000000000000..d64a53075163
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/x260/default.nix
@@ -0,0 +1,12 @@
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+    ../../../common/pc/laptop/acpi_call.nix
+  ];
+
+  # https://wiki.archlinux.org/index.php/TLP#Btrfs
+  services.tlp.extraConfig = ''
+    SATA_LINKPWR_ON_BAT=med_power_with_dipm
+  '';
+}
diff --git a/modules/nixos-hardware/lenovo/thinkpad/x270/default.nix b/modules/nixos-hardware/lenovo/thinkpad/x270/default.nix
new file mode 100644
index 000000000000..870d9a857742
--- /dev/null
+++ b/modules/nixos-hardware/lenovo/thinkpad/x270/default.nix
@@ -0,0 +1,6 @@
+{
+  imports = [
+    ../.
+    ../../../common/cpu/intel
+  ];
+}