diff options
Diffstat (limited to 'modules/hardware/nvidia-gpu.nix')
| -rw-r--r-- | modules/hardware/nvidia-gpu.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/modules/hardware/nvidia-gpu.nix b/modules/hardware/nvidia-gpu.nix new file mode 100644 index 0000000..dae9fb5 --- /dev/null +++ b/modules/hardware/nvidia-gpu.nix @@ -0,0 +1,49 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + gpl_symbols_linux_615_patch = pkgs.fetchpatch { + url = "https://github.com/CachyOS/kernel-patches/raw/914aea4298e3744beddad09f3d2773d71839b182/6.15/misc/nvidia/0003-Workaround-nv_vm_flags_-calling-GPL-only-code.patch"; + hash = "sha256-YOTAvONchPPSVDP9eJ9236pAPtxYK5nAePNtm2dlvb4="; + stripLen = 1; + extraPrefix = "kernel/"; + }; +in +{ + hardware.graphics = { + enable = true; + enable32Bit = true; + }; + + services.xserver.videoDrivers = [ "nvidia" ]; + + hardware.nvidia = { + modesetting.enable = true; + powerManagement.enable = true; + powerManagement.finegrained = false; + + # note: fails to build after 560 + nvidiaSettings = false; + + # sadly still very crashy :( + open = false; + + # nice way: + # package = config.boot.kernelPackages.nvidiaPackages.beta; + # manual way: + package = config.boot.kernelPackages.nvidiaPackages.mkDriver { + version = "575.57.08"; + sha256_64bit = "sha256-KqcB2sGAp7IKbleMzNkB3tjUTlfWBYDwj50o3R//xvI="; + sha256_aarch64 = "sha256-VJ5z5PdAL2YnXuZltuOirl179XKWt0O4JNcT8gUgO98="; + openSha256 = "sha256-DOJw73sjhQoy+5R0GHGnUddE6xaXb/z/Ihq3BKBf+lg="; + settingsSha256 = "sha256-AIeeDXFEo9VEKCgXnY3QvrW5iWZeIVg4LBCeRtMs5Io="; + persistencedSha256 = "sha256-Len7Va4HYp5r3wMpAhL4VsPu5S0JOshPFywbO7vYnGo="; + + patches = [ gpl_symbols_linux_615_patch ]; + }; + }; +} |
