From 0ebf2456d49cbf51da3e7fc77380290a0d52cdec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Fern=C3=A1ndez=20L=C3=B3pez?= Date: Sat, 31 Jan 2026 10:46:27 +0100 Subject: [PATCH] nvidia-container-toolkit: set cdi mode for nvidia-container-runtime --- .../hardware/nvidia-container-toolkit/default.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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"