dregil: Fix suspend/hibernate issue related to nvidia settings

This commit is contained in:
Alexander Kobjolke 2026-02-25 21:44:51 +01:00
parent 892bd5f8e3
commit 4fc9ee5d66
4 changed files with 45 additions and 26 deletions

View file

@ -9,15 +9,6 @@
lib, lib,
... ...
}: }:
let
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
exec "$@"
'';
in
{ {
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
@ -90,7 +81,6 @@ in
wget wget
ripgrep ripgrep
git git
nvidia-offload
pinentry-qt pinentry-qt
]; ];

View file

@ -10,7 +10,10 @@
}: }:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [
(modulesPath + "/installer/scan/not-detected.nix")
../../modules/wm/nvidia.nix
];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [
"xhci_pci" "xhci_pci"
@ -92,22 +95,22 @@
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.nvidia = { # hardware.nvidia = {
nvidiaSettings = true; # nvidiaSettings = true;
nvidiaPersistenced = true; # nvidiaPersistenced = true;
open = true; # open = true;
# modesetting.enable = true; # # modesetting.enable = true;
package = config.boot.kernelPackages.nvidiaPackages.beta; # # package = config.boot.kernelPackages.nvidiaPackages.beta;
# prime = { # # prime = {
# offload.enable = true; # # offload.enable = true;
# # #
# intelBusId = "PCI:1:0:0"; # # intelBusId = "PCI:1:0:0";
# nvidiaBusId = "PCI:1:0:0"; # # nvidiaBusId = "PCI:1:0:0";
# intelBusId = "0@0:2:0"; # # intelBusId = "0@0:2:0";
# nvidiaBusId = "1@1:0:0"; # # nvidiaBusId = "1@1:0:0";
# }; # # };
}; # };
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;

25
modules/wm/nvidia.nix Normal file
View file

@ -0,0 +1,25 @@
{
config,
...
}:
{
hardware.graphics.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
nvidiaPersistenced = true;
powerManagement.enable = true;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.latest;
};
boot.kernelParams = [
"nvidia-drm.fbdev=1"
"nvidia-drm.modeset=1"
];
}

View file

@ -6,6 +6,7 @@
}: }:
{ {
imports = [ ./nvidia.nix ];
# Enable the X11 windowing system. # Enable the X11 windowing system.
services = { services = {
dbus = { dbus = {