mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 17:27:14 +08:00 
			
		
		
		
	Merge pull request #60 from azazel75/master
Add basic support for 6th-gen X1
This commit is contained in:
		
							
								
								
									
										36
									
								
								lenovo/thinkpad/x1/6th-gen/QHD/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								lenovo/thinkpad/x1/6th-gen/QHD/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -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;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										75
									
								
								lenovo/thinkpad/x1/6th-gen/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								lenovo/thinkpad/x1/6th-gen/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -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"
 | 
			
		||||
  # ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								lenovo/thinkpad/x1/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								lenovo/thinkpad/x1/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../.
 | 
			
		||||
    ../../../common/cpu/intel
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user