From 047799739c0c04c11075018a23b5ec55e4652b24 Mon Sep 17 00:00:00 2001 From: QuietSeeker <123584613+QuietSeeker@users.noreply.github.com> Date: Fri, 11 Apr 2025 17:00:57 +0100 Subject: [PATCH] lenovo-legion-16arh7h: add integrated GPU only and hybrid configurations --- README.md | 2 ++ flake.nix | 2 ++ lenovo/legion/16arh7h/README.md | 4 +++ lenovo/legion/16arh7h/hybrid/default.nix | 32 +++++++++++++++++++++ lenovo/legion/16arh7h/igpu-only/default.nix | 11 +++++++ 5 files changed, 51 insertions(+) create mode 100644 lenovo/legion/16arh7h/README.md create mode 100644 lenovo/legion/16arh7h/hybrid/default.nix create mode 100644 lenovo/legion/16arh7h/igpu-only/default.nix diff --git a/README.md b/README.md index 29e22f7a..8b7849a2 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,8 @@ See code for all available configurations. | [Lenovo Legion 5 Pro 16ach6h](lenovo/legion/16ach6h) | `` | | [Lenovo Legion 5 Pro 16ach6h (Hybrid)](lenovo/legion/16ach6h/hybrid) | `` | | [Lenovo Legion 5 Pro 16ach6h (Nvidia)](lenovo/legion/16ach6h/nvidia) | `` | +| [Lenovo Legion 5 Pro 16arh7h (IGPU Only)](lenovo/legion/16arh7h/igpu-only) | `` | +| [Lenovo Legion 5 Pro 16arh7h (Hybrid)](lenovo/legion/16arh7h/hybrid) | `` | | [Lenovo Legion 7 16achg6 (Hybrid)](lenovo/legion/16achg6/hybrid) | `` | | [Lenovo Legion 7 16achg6 (Nvidia)](lenovo/legion/16achg6/nvidia) | `` | | [Lenovo Legion 7i Pro 16irx8h (Intel)](lenovo/legion/16irx8h) | `` | diff --git a/flake.nix b/flake.nix index 629d8f71..4587806c 100644 --- a/flake.nix +++ b/flake.nix @@ -161,6 +161,8 @@ lenovo-legion-16ach6h = import ./lenovo/legion/16ach6h; lenovo-legion-16ach6h-hybrid = import ./lenovo/legion/16ach6h/hybrid; lenovo-legion-16ach6h-nvidia = import ./lenovo/legion/16ach6h/nvidia; + lenovo-legion-16arh7h-igpu-only = import ./lenovo/legion/16arh7h/igpu-only; + lenovo-legion-16arh7h-hybrid = import ./lenovo/legion/16arh7h/hybrid; lenovo-legion-16achg6-hybrid = import ./lenovo/legion/16achg6/hybrid; lenovo-legion-16achg6-nvidia = import ./lenovo/legion/16achg6/nvidia; lenovo-legion-16aph8 = import ./lenovo/legion/16aph8; diff --git a/lenovo/legion/16arh7h/README.md b/lenovo/legion/16arh7h/README.md new file mode 100644 index 00000000..0258d495 --- /dev/null +++ b/lenovo/legion/16arh7h/README.md @@ -0,0 +1,4 @@ +# Useful Links + +[NixOS Wiki - Nvidia](https://wiki.nixos.org/wiki/NVIDIA) + diff --git a/lenovo/legion/16arh7h/hybrid/default.nix b/lenovo/legion/16arh7h/hybrid/default.nix new file mode 100644 index 00000000..af6ff64a --- /dev/null +++ b/lenovo/legion/16arh7h/hybrid/default.nix @@ -0,0 +1,32 @@ +{ + config, + lib, + ... +}: { + imports = [ + ../../../../common/cpu/amd + ../../../../common/cpu/amd/pstate.nix + ../../../../common/gpu/nvidia/prime.nix # prime offload + ../../../../common/gpu/nvidia/ampere # use open drivers + ../../../../common/pc/laptop + ../../../../common/pc/laptop/ssd + ]; + + boot.kernelModules = ["amdgpu"]; + services.xserver.videoDrivers = ["nvidia"]; + + hardware = { + amdgpu.initrd.enable = false; + + nvidia = { + package = config.boot.kernelPackages.nvidiaPackages.latest; + modesetting.enable = lib.mkDefault true; + powerManagement.enable = lib.mkDefault true; + powerManagement.finegrained = lib.mkDefault true; + prime = { + amdgpuBusId = lib.mkDefault "PCI:52:0:0"; # Hexadecimal 34:00.0 + nvidiaBusId = lib.mkDefault "PCI:1:0:0"; # Hexadecimal 01:00.0 + }; + }; + }; +} diff --git a/lenovo/legion/16arh7h/igpu-only/default.nix b/lenovo/legion/16arh7h/igpu-only/default.nix new file mode 100644 index 00000000..c8e477f2 --- /dev/null +++ b/lenovo/legion/16arh7h/igpu-only/default.nix @@ -0,0 +1,11 @@ +# This will enable only the integrated AMD GPU, while disabling the dedicated Nvidia GPU +{...}: { + imports = [ + ../../../../common/cpu/amd + ../../../../common/cpu/amd/pstate.nix + ../../../../common/gpu/amd + ../../../../common/gpu/nvidia/disable.nix + ../../../../common/pc/laptop + ../../../../common/pc/laptop/ssd + ]; +}