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 + ]; +}