38 lines
1007 B
Nix
Executable File
38 lines
1007 B
Nix
Executable File
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
cfg = config.system.nvidia;
|
|
in {
|
|
options.system.nvidia = {
|
|
enable = lib.mkEnableOption "enables nvidia";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
services.xserver.videoDrivers = ["nvidia"];
|
|
boot.kernelModules = ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm"];
|
|
# boot.kernelModules = [ "nvidia" ];
|
|
|
|
hardware.graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
};
|
|
|
|
# enable nvidia proprietary driver
|
|
hardware.nvidia = {
|
|
modesetting.enable = true; # required
|
|
open = false; # use proprietary driver
|
|
nvidiaSettings = true; # no shit
|
|
powerManagement.enable = false; # can cause sleep issues
|
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
};
|
|
|
|
# enable docker gpu passthrough
|
|
hardware.nvidia-container-toolkit.enable = true;
|
|
virtualisation.docker.daemon.settings.features.cdi = true;
|
|
virtualisation.docker.rootless.daemon.settings.features.cdi = true;
|
|
};
|
|
}
|