From fe19fa616e3a7e310d291eaacde554913040422d Mon Sep 17 00:00:00 2001 From: GarandPLG Date: Tue, 30 Sep 2025 16:07:58 +0200 Subject: [PATCH] Add Nvidia Docker toolkit support --- modules/core/hardware.nix | 12 ++++-- modules/drivers/nvidia-drivers.nix | 63 ++++++++++++++++++++---------- 2 files changed, 50 insertions(+), 25 deletions(-) diff --git a/modules/core/hardware.nix b/modules/core/hardware.nix index 5c6ec61..3b02700 100644 --- a/modules/core/hardware.nix +++ b/modules/core/hardware.nix @@ -6,13 +6,17 @@ extraBackends = [ pkgs.sane-airscan ]; disabledDefaultBackends = [ "escl" ]; }; - logitech.wireless.enable = false; - logitech.wireless.enableGraphical = false; + logitech.wireless = { + enable = false; + enableGraphical = false; + }; graphics.enable = true; enableRedistributableFirmware = true; keyboard.qmk.enable = true; - bluetooth.enable = true; - bluetooth.powerOnBoot = true; + bluetooth = { + enable = true; + powerOnBoot = false; + }; }; local.hardware-clock.enable = false; } diff --git a/modules/drivers/nvidia-drivers.nix b/modules/drivers/nvidia-drivers.nix index 476c914..9fcd907 100644 --- a/modules/drivers/nvidia-drivers.nix +++ b/modules/drivers/nvidia-drivers.nix @@ -1,6 +1,7 @@ { lib, config, + pkgs, ... }: with lib; @@ -14,27 +15,47 @@ in config = mkIf cfg.enable { services.xserver.videoDrivers = [ "nvidia" ]; - hardware.nvidia = { - # Modesetting is required. - modesetting.enable = true; - # Nvidia power management. Experimental, and can cause sleep/suspend to fail. - powerManagement.enable = true; - # Fine-grained power management. Turns off GPU when not in use. - # Experimental and only works on modern Nvidia GPUs (Turing or newer). - powerManagement.finegrained = false; - # Use the NVidia open source kernel module (not to be confused with the - # independent third-party "nouveau" open source driver). - # Support is limited to the Turing and later architectures. Full list of - # supported GPUs is at: - # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus - # Only available from driver 515.43.04+ - # Currently alpha-quality/buggy, so false is currently the recommended setting. - open = false; - # Enable the Nvidia settings menu, - # accessible via `nvidia-settings`. - nvidiaSettings = true; - # Optionally, you may need to select the appropriate driver version for your specific GPU. - package = config.boot.kernelPackages.nvidiaPackages.stable; + environment.systemPackages = with pkgs; [ nvidia-docker ]; + hardware = { + nvidia-container-toolkit.enable = true; + nvidia = { + # Modesetting is required. + modesetting.enable = true; + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + powerManagement.enable = true; + # Fine-grained power management. Turns off GPU when not in use. + # Experimental and only works on modern Nvidia GPUs (Turing or newer). + powerManagement.finegrained = false; + # Use the NVidia open source kernel module (not to be confused with the + # independent third-party "nouveau" open source driver). + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Only available from driver 515.43.04+ + # Currently alpha-quality/buggy, so false is currently the recommended setting. + open = false; + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; }; }; } + +# Making nvidia docker toolkit work: +# +# sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml +# +# sudo nvidia-ctk cdi list +# +# sudo tee /etc/docker/daemon.json > /dev/null <