From c7cf8e85d7b69e97d9771fff4d6a461a0d235ed3 Mon Sep 17 00:00:00 2001 From: Borja Rojo Ilvento Date: Tue, 1 Jul 2025 16:23:35 +0200 Subject: [PATCH 1/6] Add Lenovo ThinkPad P14s Intel Gen 2 profile --- README.md | 1 + flake.nix | 1 + lenovo/thinkpad/p14s/intel/gen2/default.nix | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 lenovo/thinkpad/p14s/intel/gen2/default.nix diff --git a/README.md b/README.md index 7f084e64e..68986768b 100644 --- a/README.md +++ b/README.md @@ -270,6 +270,7 @@ See code for all available configurations. | [Lenovo ThinkPad P14s AMD Gen 3](lenovo/thinkpad/p14s/amd/gen3) | `` | `lenovo-thinkpad-p14s-amd-gen3` | | [Lenovo ThinkPad P14s AMD Gen 4](lenovo/thinkpad/p14s/amd/gen4) | `` | `lenovo-thinkpad-p14s-amd-gen4` | | [Lenovo ThinkPad P14s AMD Gen 5](lenovo/thinkpad/p14s/amd/gen5) | `` | `lenovo-thinkpad-p14s-amd-gen5` | +| [Lenovo ThinkPad P14s Intel Gen 2](lenovo/thinkpad/p14s/intel/gen2) | `` | `lenovo-thinkpad-p14s-intel-gen2`| | [Lenovo ThinkPad P14s Intel Gen 3](lenovo/thinkpad/p14s/intel/gen3) | `` | `lenovo-thinkpad-p14s-intel-gen3`| | [Lenovo ThinkPad P14s Intel Gen 5](lenovo/thinkpad/p14s/intel/gen5) | `` | `lenovo-thinkpad-p14s-intel-gen5`| | [Lenovo ThinkPad P16s AMD Gen 1](lenovo/thinkpad/p16s/amd/gen1) | `` | `lenovo-thinkpad-p16s-amd-gen1` | diff --git a/flake.nix b/flake.nix index 1e668c8ac..f8cba6169 100644 --- a/flake.nix +++ b/flake.nix @@ -208,6 +208,7 @@ lenovo-thinkpad-p14s-amd-gen3 = import ./lenovo/thinkpad/p14s/amd/gen3; lenovo-thinkpad-p14s-amd-gen4 = import ./lenovo/thinkpad/p14s/amd/gen4; lenovo-thinkpad-p14s-amd-gen5 = import ./lenovo/thinkpad/p14s/amd/gen5; + lenovo-thinkpad-p14s-intel-gen2 = import ./lenovo/thinkpad/p14s/intel/gen2; lenovo-thinkpad-p14s-intel-gen3 = import ./lenovo/thinkpad/p14s/intel/gen3; lenovo-thinkpad-p14s-intel-gen5 = import ./lenovo/thinkpad/p14s/intel/gen5; lenovo-thinkpad-p16s-amd-gen1 = import ./lenovo/thinkpad/p16s/amd/gen1; diff --git a/lenovo/thinkpad/p14s/intel/gen2/default.nix b/lenovo/thinkpad/p14s/intel/gen2/default.nix new file mode 100644 index 000000000..26d49bf9d --- /dev/null +++ b/lenovo/thinkpad/p14s/intel/gen2/default.nix @@ -0,0 +1,18 @@ +{ + imports = [ + ../../../../../common/gpu/nvidia/prime.nix + ../../../../../common/gpu/nvidia/turing + ../../../../../common/cpu/intel/tiger-lake + ../../../../../common/pc/laptop + ../../../../../common/pc/ssd + ../../../../../common/pc + ../. + ]; + + # For suspending to RAM to work, set Config -> Power -> Sleep State to "Linux S3" in EFI. + + hardware.nvidia.prime = { + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:1:0:0"; + }; +} From 6be71ec16d20a385326308fa4f771fab9bb36aa8 Mon Sep 17 00:00:00 2001 From: Borja Rojo Ilvento Date: Tue, 1 Jul 2025 12:41:39 -0400 Subject: [PATCH 2/6] Veifying the need for modesetting. --- lenovo/thinkpad/p14s/intel/gen2/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lenovo/thinkpad/p14s/intel/gen2/default.nix b/lenovo/thinkpad/p14s/intel/gen2/default.nix index 26d49bf9d..863303c50 100644 --- a/lenovo/thinkpad/p14s/intel/gen2/default.nix +++ b/lenovo/thinkpad/p14s/intel/gen2/default.nix @@ -15,4 +15,6 @@ intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; }; + + services.xserver.videoDrivers = [ "modesetting" ]; } From fd02b3857e9633a64b5b4c2eabe494956cc261e6 Mon Sep 17 00:00:00 2001 From: Borja Rojo Ilvento Date: Tue, 1 Jul 2025 13:16:57 -0400 Subject: [PATCH 3/6] Remove the mkDefault which is overriding the defaults of the xserver config. --- common/gpu/nvidia/default.nix | 2 +- lenovo/thinkpad/p14s/intel/gen2/default.nix | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/common/gpu/nvidia/default.nix b/common/gpu/nvidia/default.nix index 281e33f7a..0a23521ea 100644 --- a/common/gpu/nvidia/default.nix +++ b/common/gpu/nvidia/default.nix @@ -2,5 +2,5 @@ { imports = [ ../24.05-compat.nix ]; - services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ]; + services.xserver.videoDrivers = [ "nvidia" ]; } diff --git a/lenovo/thinkpad/p14s/intel/gen2/default.nix b/lenovo/thinkpad/p14s/intel/gen2/default.nix index 863303c50..26d49bf9d 100644 --- a/lenovo/thinkpad/p14s/intel/gen2/default.nix +++ b/lenovo/thinkpad/p14s/intel/gen2/default.nix @@ -15,6 +15,4 @@ intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; }; - - services.xserver.videoDrivers = [ "modesetting" ]; } From 67c754322799d074f3186b125fbc431654c85f30 Mon Sep 17 00:00:00 2001 From: Borja Rojo Ilvento Date: Tue, 1 Jul 2025 13:31:16 -0400 Subject: [PATCH 4/6] Revert "Remove the mkDefault which is overriding the defaults of the xserver config." This reverts commit fd02b3857e9633a64b5b4c2eabe494956cc261e6. --- common/gpu/nvidia/default.nix | 2 +- lenovo/thinkpad/p14s/intel/gen2/default.nix | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/common/gpu/nvidia/default.nix b/common/gpu/nvidia/default.nix index 0a23521ea..281e33f7a 100644 --- a/common/gpu/nvidia/default.nix +++ b/common/gpu/nvidia/default.nix @@ -2,5 +2,5 @@ { imports = [ ../24.05-compat.nix ]; - services.xserver.videoDrivers = [ "nvidia" ]; + services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ]; } diff --git a/lenovo/thinkpad/p14s/intel/gen2/default.nix b/lenovo/thinkpad/p14s/intel/gen2/default.nix index 26d49bf9d..863303c50 100644 --- a/lenovo/thinkpad/p14s/intel/gen2/default.nix +++ b/lenovo/thinkpad/p14s/intel/gen2/default.nix @@ -15,4 +15,6 @@ intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; }; + + services.xserver.videoDrivers = [ "modesetting" ]; } From c50ce85e45eb82dc7be1e7bb3d3f0ce3df515508 Mon Sep 17 00:00:00 2001 From: Borja Rojo Ilvento Date: Tue, 1 Jul 2025 13:50:30 -0400 Subject: [PATCH 5/6] Added README. --- lenovo/thinkpad/p14s/intel/gen2/README | 7 +++++++ lenovo/thinkpad/p14s/intel/gen2/default.nix | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 lenovo/thinkpad/p14s/intel/gen2/README diff --git a/lenovo/thinkpad/p14s/intel/gen2/README b/lenovo/thinkpad/p14s/intel/gen2/README new file mode 100644 index 000000000..5de0e5dac --- /dev/null +++ b/lenovo/thinkpad/p14s/intel/gen2/README @@ -0,0 +1,7 @@ +# Lenovo ThinkPad P14s Intel Gen 2 + +Much of the extraneous settings are filled out using the [wiki](https://wiki.nixos.org/wiki/NVIDIA#Hybrid_graphics_with_PRIME), which gives guidance on how to determine the correct PCI bus IDs to assign, aswell as the note to include the `modesetting` driver in `services.xserver.videoDrivers`. + +## BIOS Settings to adjust + +For suspending to RAM to work, set Config -> Power -> Sleep State to "Linux S3" in EFI. diff --git a/lenovo/thinkpad/p14s/intel/gen2/default.nix b/lenovo/thinkpad/p14s/intel/gen2/default.nix index 863303c50..c1037c271 100644 --- a/lenovo/thinkpad/p14s/intel/gen2/default.nix +++ b/lenovo/thinkpad/p14s/intel/gen2/default.nix @@ -9,8 +9,6 @@ ../. ]; - # For suspending to RAM to work, set Config -> Power -> Sleep State to "Linux S3" in EFI. - hardware.nvidia.prime = { intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; From df2b21069f20206bd732dc171c150861c271ac79 Mon Sep 17 00:00:00 2001 From: Borja Rojo Ilvento Date: Sun, 6 Jul 2025 11:38:31 -0400 Subject: [PATCH 6/6] Add back lenovo thinkpad p14s intel gen 2 to the module list --- flake.lock | 22 +--------------------- flake.nix | 1 + 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index 8f2f2e35d..5999137c9 100644 --- a/flake.lock +++ b/flake.lock @@ -1,26 +1,6 @@ { "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1751290770, - "narHash": "sha256-u4s8yKAqTzPGY3vTcDyAIet11uXaNCM//93/0O0NlbA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "0620a50e9a847851bf802c59a4202552ed79b821", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } + "root": {} }, "root": "root", "version": 7 diff --git a/flake.nix b/flake.nix index a0ac1fb81..88dba6722 100644 --- a/flake.nix +++ b/flake.nix @@ -204,6 +204,7 @@ lenovo-thinkpad-p14s-amd-gen3 = import ./lenovo/thinkpad/p14s/amd/gen3; lenovo-thinkpad-p14s-amd-gen4 = import ./lenovo/thinkpad/p14s/amd/gen4; lenovo-thinkpad-p14s-amd-gen5 = import ./lenovo/thinkpad/p14s/amd/gen5; + lenovo-thinkpad-p14s-intel-gen2 = import ./lenovo/thinkpad/p14s/intel/gen2; lenovo-thinkpad-p14s-intel-gen3 = import ./lenovo/thinkpad/p14s/intel/gen3; lenovo-thinkpad-p14s-intel-gen5 = import ./lenovo/thinkpad/p14s/intel/gen5; lenovo-thinkpad-p16s-amd-gen1 = import ./lenovo/thinkpad/p16s/amd/gen1;