nix-dotfiles/hosts/modules/nvidia.nix
alsaiduq-lab b19dfaa13e hate nvidia
580 drivers still doodoo
2026-03-02 15:45:30 -07:00

73 lines
1.9 KiB
Nix

{
config,
pkgs,
...
}: {
services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = {
open = true;
modesetting.enable = true;
powerManagement.enable = false;
nvidiaSettings = true;
nvidiaPersistenced = true;
package = let
base = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "590.48.01";
sha256_64bit = "sha256-ueL4BpN4FDHMh/TNKRCeEz3Oy1ClDWto1LO/LWlr1ok=";
openSha256 = "sha256-hECHfguzwduEfPo5pCDjWE/MjtRDhINVr4b1awFdP44=";
settingsSha256 = "sha256-4SfCWp3swUp+x+4cuIZ7SA5H7/NoizqgPJ6S9fm90fA=";
persistencedSha256 = "sha256-wsNeuw7IaY6Qc/i/AzT/4N82lPjkwfrhxidKWUtcwW8=";
};
cachyosPatch = pkgs.fetchpatch {
url = "https://raw.githubusercontent.com/CachyOS/CachyOS-PKGBUILDS/master/nvidia/nvidia-utils/kernel-6.19.patch";
sha256 = "sha256-YuJjSUXE6jYSuZySYGnWSNG5sfVei7vvxDcHx3K+IN4=";
};
in
base
// {
open = base.open.overrideAttrs (old: {
patches = (old.patches or []) ++ [cachyosPatch];
});
};
};
hardware.nvidia-container-toolkit.enable = true;
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [nvidia-vaapi-driver];
};
programs.nix-ld = {
enable = true;
libraries = with pkgs; [
cudaPackages.cudatoolkit
cudaPackages.cudnn
cudaPackages.nccl
config.hardware.nvidia.package
];
};
environment.variables = {
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
GBM_BACKEND = "nvidia-drm";
LIBVA_DRIVER_NAME = "nvidia";
CUDA_HOME = "${pkgs.cudaPackages.cudatoolkit}";
CPATH = "${pkgs.cudaPackages.cudatoolkit}/include";
};
environment.systemPackages = with pkgs; [
mesa-demos
vulkan-tools
vulkan-headers
vulkan-validation-layers
libva-utils
vdpauinfo
egl-wayland
cudaPackages.cudatoolkit
];
}