summaryrefslogtreecommitdiff
path: root/hosts/local/nvidia.nix
blob: 295d05ddf2ec03610710ed470c8e9aca40b01422 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
{
  config,
  lib,
  pkgs,
  ...
}: let
  nverStable = config.boot.kernelPackages.nvidiaPackages.stable.version;
  nverBeta = config.boot.kernelPackages.nvidiaPackages.beta.version;
  nvidiaPackage =
    if (lib.versionOlder nverBeta nverStable)
    then config.boot.kernelPackages.nvidiaPackages.stable
    else config.boot.kernelPackages.nvidiaPackages.beta;
in {
  boot.kernelModules = ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm"];
  # boot.kernelPackages = lib.mkForce unfreePkgs.linuxKernel.packages.linux_xanmod_latest;
  # boot.kernelParams = ["video=HDMI-A-1:1920x1080"];
  #
  hardware.graphics = {
    enable = true;
  };
  # hardware.graphics= {
  # package = (pkgs.mesa.override { galliumDrivers = [ "i915" "swrast" ]; }).drivers;
  #   enable = true;
  # };

  nix.settings.substituters = [
    "https://cuda-maintainers.cachix.org"
  ];
  nix.settings.trusted-public-keys = [
    "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
  ];

  services.xserver = {
    videoDrivers = ["nvidia"];
    # wayland only
    # displayManager.gdm.wayland = true;
    #
  };
  # environment.systemPackages = with pkgs;[
  # libva-utils
  # nvidia-vaapi-driver
  # pciutils
  # vdpauinfo
  # (blender.override {
  #   cudaSupport = true;
  # })
  # ];
  hardware.nvidia = {
    # package = config.boot.kernelPackages.nvidiaPackages.stable;
    package = nvidiaPackage;
    modesetting.enable = true;
    powerManagement.enable = false;
    powerManagement.finegrained = false;
    # nvidiaSettings = true;
    open = false;
  };
  # hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
  #     version = "525.116.04";
  #     sha256_64bit = "sha256-hhDsgkR8/3LLXxizZX7ppjSlFRZiuK2QHrgfTE+2F/4=";
  #     sha256_aarch64 = "sha256-k7k22z5PYZdBVfuYXVcl9SFUMqZmK4qyxoRwlYyRdgU=";
  #     openSha256 = "sha256-dktHCoESqoNfu5M73aY5MQGROlZawZwzBqs3RkOyfoQ=";
  #     settingsSha256 = "sha256-qNjfsT9NGV151EHnG4fgBonVFSKc4yFEVomtXg9uYD4=";
  #     persistencedSha256 = "sha256-ci86XGlno6DbHw6rkVSzBpopaapfJvk0+lHcR4LDq50=";

  #     ibtSupport = true;
  # };
}