diff --git a/common/cpu/amd/raphael/igpu.nix b/common/cpu/amd/raphael/igpu.nix index 82514c2..6faffd0 100644 --- a/common/cpu/amd/raphael/igpu.nix +++ b/common/cpu/amd/raphael/igpu.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, ... }: +{ lib, pkgs, ... }: { # Sets the kernel version to the latest kernel to make the usage of the iGPU possible if your kernel version is too old @@ -10,7 +10,7 @@ boot = lib.mkMerge [ (lib.mkIf (lib.versionOlder pkgs.linux.version "6.1") { kernelPackages = pkgs.linuxPackages_latest; - kernelParams = ["amdgpu.sg_display=0"]; + kernelParams = ["amdgpu.sg_display=0"]; }) (lib.mkIf (lib.versionAtLeast pkgs.linux.version "6.2") { diff --git a/flake.nix b/flake.nix index 4d44aa2..c3db404 100644 --- a/flake.nix +++ b/flake.nix @@ -97,6 +97,7 @@ lenovo-legion-16ach6h-nvidia = import ./lenovo/legion/16ach6h/nvidia; 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; lenovo-legion-16ithg6 = import ./lenovo/legion/16ithg6; lenovo-legion-16irx8h = import ./lenovo/legion/16irx8h; lenovo-legion-y530-15ich = import ./lenovo/legion/15ich; diff --git a/lenovo/legion/16aph8/README.md b/lenovo/legion/16aph8/README.md new file mode 100644 index 0000000..c9bbe7c --- /dev/null +++ b/lenovo/legion/16aph8/README.md @@ -0,0 +1,38 @@ +I was unable to get the hybrid settings working well with lightdm or sddm, but Optimus Sync +mode seems to work the best for me. + +I am running the Linux 6.6 LTS kernel with KDE + SDDM, and it seems to be working well. + +## hardware-configuration.nix + +I have the following customizations added for my nvidia drivers. + +``` +hardware.nvidia = { + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; +}; +``` + +## Setup at the time of testing + +### nix-info +``` +$ nix-info -m + - system: `"x86_64-linux"` + - host os: `Linux 6.1.68, NixOS, 23.11 (Tapir), 23.11.20231220.d65bcea` + - multi-user?: `yes` + - sandbox: `yes` + - version: `nix-env (Nix) 2.18.1` + - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos` +``` + +### lspci +``` +$ lspci +... +01:00.0 VGA compatible controller: NVIDIA Corporation AD107M [GeForce RTX 4060 Max-Q / Mobile] (rev a1) +... +05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 (rev c2) +... +``` diff --git a/lenovo/legion/16aph8/default.nix b/lenovo/legion/16aph8/default.nix new file mode 100644 index 0000000..b693cca --- /dev/null +++ b/lenovo/legion/16aph8/default.nix @@ -0,0 +1,36 @@ +{ lib, pkgs, ... }: + +{ + imports = [ + ../../../common/cpu/amd + ../../../common/cpu/amd/pstate.nix + ../../../common/gpu/amd + ../../../common/gpu/nvidia + ../../../common/pc/laptop + ../../../common/pc/laptop/ssd + ]; + + # Use latest LTS kernel for more Raphael fixes + boot = lib.mkMerge [ + (lib.mkIf (lib.versionOlder pkgs.linux.version "6.6") { + kernelPackages = pkgs.linuxPackages_6_6; + kernelParams = ["amdgpu.sg_display=0"]; + }) + ]; + + hardware.nvidia = { + modesetting.enable = lib.mkDefault true; + powerManagement.enable = lib.mkDefault false; + powerManagement.finegrained = lib.mkDefault false; + open = lib.mkDefault false; + prime = { + sync.enable = lib.mkDefault true; + amdgpuBusId = "PCI:5:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + }; + + # AMD has better battery life with PPD over TLP: + # https://community.frame.work/t/responded-amd-7040-sleep-states/38101/13 + services.power-profiles-daemon.enable = lib.mkDefault true; +}