From 3f119f80a5e8d9467a3f6bb947a94538af0be3b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Fern=C3=A1ndez=20L=C3=B3pez?= Date: Mon, 21 Oct 2024 22:33:28 +0200 Subject: [PATCH] nvidia-container-toolkit: assert nvidia driver is present Also, do not add the `nvidia` driver to `videoDrivers` automatically; assert it is present (or the datacenter one) instead. --- .../hardware/nvidia-container-toolkit/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix index 450651e8b601..3538e52bda3b 100644 --- a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix +++ b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix @@ -78,6 +78,11 @@ }; config = lib.mkIf config.hardware.nvidia-container-toolkit.enable { + assertions = [ + { assertion = config.hardware.nvidia.datacenter.enable || lib.elem "nvidia" config.services.xserver.videoDrivers; + message = ''`nvidia-container-toolkit` requires nvidia datacenter or desktop drivers: set `hardware.nvidia.datacenter.enable` or add "nvidia" to `services.xserver.videoDrivers`''; + }]; + virtualisation.docker = { daemon.settings = lib.mkIf (lib.versionAtLeast config.virtualisation.docker.package.version "25") { @@ -130,9 +135,6 @@ ]); }; - services.xserver.videoDrivers = lib.mkIf - (!config.hardware.nvidia.datacenter.enable) [ "nvidia" ]; - systemd.services.nvidia-container-toolkit-cdi-generator = { description = "Container Device Interface (CDI) for Nvidia generator"; wantedBy = [ "multi-user.target" ];