diff options
author | José Romildo Malaquias <malaquias@gmail.com> | 2020-05-10 07:42:47 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-10 07:42:47 -0300 |
commit | be034746371ca91f9c9f087db2445ccfc0f0eaaa (patch) | |
tree | c6ea1681cfb2ad6cd65e008a557ca72f81ebcdfb | |
parent | e4efa8bc83ae70b2ec592ecfeddec322b00b5e0b (diff) | |
parent | 89a8a31bf36f95acc5efc31344d97d9e48cf51e3 (diff) | |
download | nixlib-be034746371ca91f9c9f087db2445ccfc0f0eaaa.tar nixlib-be034746371ca91f9c9f087db2445ccfc0f0eaaa.tar.gz nixlib-be034746371ca91f9c9f087db2445ccfc0f0eaaa.tar.bz2 nixlib-be034746371ca91f9c9f087db2445ccfc0f0eaaa.tar.lz nixlib-be034746371ca91f9c9f087db2445ccfc0f0eaaa.tar.xz nixlib-be034746371ca91f9c9f087db2445ccfc0f0eaaa.tar.zst nixlib-be034746371ca91f9c9f087db2445ccfc0f0eaaa.zip |
Merge pull request #77054 from formbay/nvidia-persistenced
nixos/nvidia : added nvidia-persistenced
-rw-r--r-- | nixos/modules/hardware/video/nvidia.nix | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix index 7461e231402a..8c3d64fceb9c 100644 --- a/nixos/modules/hardware/video/nvidia.nix +++ b/nixos/modules/hardware/video/nvidia.nix @@ -34,10 +34,12 @@ let enabled = nvidia_x11 != null; cfg = config.hardware.nvidia; + pCfg = cfg.prime; syncCfg = pCfg.sync; offloadCfg = pCfg.offload; primeEnabled = syncCfg.enable || offloadCfg.enable; + nvidiaPersistencedEnabled = cfg.nvidiaPersistenced; in { @@ -129,6 +131,15 @@ in <option>hardware.nvidia.prime.intelBusId</option>). ''; }; + + hardware.nvidia.nvidiaPersistenced = mkOption { + default = false; + type = types.bool; + description = '' + Update for NVIDA GPU headless mode, i.e. nvidia-persistenced. It ensures all + GPUs stay awake even during headless mode. + ''; + }; }; config = mkIf enabled { @@ -220,6 +231,18 @@ in ++ optional (nvidia_x11.persistenced != null && config.virtualisation.docker.enableNvidia) "L+ /run/nvidia-docker/extras/bin/nvidia-persistenced - - - - ${nvidia_x11.persistenced}/origBin/nvidia-persistenced"; + systemd.services."nvidia-persistenced" = mkIf nvidiaPersistencedEnabled { + description = "NVIDIA Persistence Daemon"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "forking"; + Restart = "always"; + PIDFile = "/var/run/nvidia-persistenced/nvidia-persistenced.pid"; + ExecStart = "${nvidia_x11.persistenced}/bin/nvidia-persistenced --verbose"; + ExecStopPost = "${pkgs.coreutils}/bin/rm -rf /var/run/nvidia-persistenced"; + }; + }; + boot.extraModulePackages = [ nvidia_x11.bin ]; # nvidia-uvm is required by CUDA applications. |