diff --git a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix index 965ba4e4be3b..475a5122fd4e 100644 --- a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix +++ b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix @@ -151,6 +151,17 @@ }; config = lib.mkMerge [ + (lib.mkIf (config.virtualisation.docker.enableNvidia || config.virtualisation.podman.enableNvidia) { + hardware.nvidia-container-toolkit.enable = lib.mkDefault true; + + warnings = lib.mkIf (!config.hardware.nvidia-container-toolkit.enable) [ + '' + `virtualisation.docker.enableNvidia` or `virtualisation.podman.enableNvidia` is enabled, + but `hardware.nvidia-container-toolkit.enable` is disabled. The nvidia-container-toolkit + module is required for GPU support in containers. + '' + ]; + }) (lib.mkIf config.virtualisation.docker.enableNvidia { environment.etc."nvidia-container-runtime/config.toml".text = '' disable-require = true @@ -162,7 +173,7 @@ no-cgroups = false path = "${lib.getExe' pkgs.libnvidia-container "nvidia-container-cli"}" [nvidia-container-runtime] - mode = "auto" + mode = "cdi" runtimes = ["docker-runc", "runc", "crun"] [nvidia-container-runtime-hook] path = "${lib.getOutput "tools" config.hardware.nvidia-container-toolkit.package}/bin/nvidia-container-runtime-hook"