{ pkgs, config, ... }: { services.xserver.videoDrivers = [ "nvidia" ]; environment.systemPackages = with pkgs; [ pciutils file gnumake gcc cudatoolkit podman nvidia-container-toolkit ]; nixpkgs.config.cudaSupport = true; hardware.nvidia-container-toolkit.enable = true; hardware.nvidia = { package = config.boot.kernelPackages.nvidiaPackages.stable; modesetting.enable = true; powerManagement.enable = false; powerManagement.finegrained = true; open = false; nvidiaSettings = true; prime = { intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; offload = { enable = true; enableOffloadCmd = true; }; }; }; systemd.services.nvidia-control-devices = { wantedBy = [ "multi-user.target" ]; serviceConfig.ExecStart = "${pkgs.linuxPackages.nvidia_x11.bin}/bin/nvidia-smi"; }; specialisation = { docked.configuration = { system.nixos.tags = [ "docked" ]; hardware.nvidia = { powerManagement.finegrained = pkgs.lib.mkForce false; prime.offload.enable = pkgs.lib.mkForce false; prime.offload.enableOffloadCmd = pkgs.lib.mkForce false; prime.sync.enable = pkgs.lib.mkForce true; }; }; disable.configuration = { system.nixos.tags = [ "disable" ]; hardware.nvidia = { modesetting.enable = pkgs.lib.mkForce false; powerManagement.enable = pkgs.lib.mkForce false; powerManagement.finegrained = pkgs.lib.mkForce false; open = pkgs.lib.mkForce false; nvidiaSettings = pkgs.lib.mkForce false; prime.offload.enable = pkgs.lib.mkForce false; prime.offload.enableOffloadCmd = pkgs.lib.mkForce false; }; boot.extraModprobeConfig = '' blacklist nouveau options nouveau modeset=0 ''; services.udev.extraRules = '' # Remove NVIDIA USB xHCI Host Controller devices, if present ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1" # Remove NVIDIA USB Type-C UCSI devices, if present ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1" # Remove NVIDIA Audio devices, if present ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1" # Remove NVIDIA VGA/3D controller devices ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1" ''; boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ]; }; }; }