universe/profiles/hardware/gpu/nvidia.nix

34 lines
760 B
Nix

{ config, pkgs, lib, ... }:
let
nvidia_x11 = config.boot.kernelPackages.nvidia_x11;
nvidia_gl = nvidia_x11.out;
nvidia_gl_32 = nvidia_x11.lib32;
in
{
imports = [ ./common.nix ];
services.xserver.videoDrivers = [ "nvidia" ];
boot = {
blacklistedKernelModules = [ "nouveau" ];
extraModulePackages = [ nvidia_x11 ];
};
hardware = {
nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
};
opengl = {
extraPackages = [ nvidia_gl ];
extraPackages32 = [ nvidia_gl_32 ];
};
};
systemd.services.nvidia-control-devices = {
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${nvidia_x11.bin}/bin/nvidia-smi";
};
virtualisation.docker.enableNvidia = true;
}