From 5c1145e49cd5e751ed9d6977b2d4d9818fad638d Mon Sep 17 00:00:00 2001 From: Florian RICHER Date: Mon, 12 Feb 2024 14:11:22 +0100 Subject: [PATCH] Add nvidia --- hosts/perso-laptop/default.nix | 13 +++++++++++ modules/nvidia.nix | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 modules/nvidia.nix diff --git a/hosts/perso-laptop/default.nix b/hosts/perso-laptop/default.nix index 1c41123..70c1913 100644 --- a/hosts/perso-laptop/default.nix +++ b/hosts/perso-laptop/default.nix @@ -9,6 +9,7 @@ [ ../../modules/system.nix ../../modules/network.nix + ../../modules/nvidia.nix ../../modules/plasma.nix ../../modules/keymaps/fr.nix ../../modules/pipewire.nix @@ -22,4 +23,16 @@ boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "nixos-laptop-perso"; # Define your hostname. + + hardware.nvidia.prime = { + offload = { + enable = true; + enableOffloadCmd = true; + }; + # Make sure to use the correct Bus ID values for your system! + # information bus: pci@0000:00:02.0 + intelBusId = "PCI:0:2:0"; + # information bus: pci@0000:01:00.0 + nvidiaBusId = "PCI:1:0:0"; + }; } diff --git a/modules/nvidia.nix b/modules/nvidia.nix new file mode 100644 index 0000000..993ad2f --- /dev/null +++ b/modules/nvidia.nix @@ -0,0 +1,40 @@ +{ config, pkgs, ... }: + +{ + # Enable OpenGL + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + + # Load nvidia driver for Xorg and Wayland + 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 = false; + # 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; + }; +} \ No newline at end of file