Initial commit

This commit is contained in:
Veneficium 2024-06-11 23:59:03 +02:00
commit 69d741b98b
29 changed files with 718 additions and 0 deletions

View file

@ -0,0 +1,11 @@
{ lib, config, ... }: {
options = {
settings.drivers.gpu.amd.enable = lib.mkEnableOption "enable AMD gpu drivers";
};
config = lib.mkIf config.settings.drivers.gpu.amd.enable {
boot.initrd.kernelModules = [ "amdgpu" ];
services.xserver.videoDrivers = [ "amdgpu" ];
};
}

View file

@ -0,0 +1,24 @@
{ lib, config, ... }: {
options = {
settings.drivers.gpu.nvidia.forceDisable = lib.mkEnableOption "force disable all nvidia drivers";
};
config = lib.mkIf config.settings.drivers.gpu.nvidia.forceDisable {
boot.extraModprobeConfig = ''
blacklist nouveau
options nouveau modeset=0
'';
services.udev.extraRules = ''
# Remove NVIDIA USB xHCI Host Controller devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
# Remove NVIDIA USB Type-C UCSI devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
# Remove NVIDIA Audio devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
# Remove NVIDIA VGA/3D controller devices
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
'';
boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ];
};
}

View file

@ -0,0 +1,25 @@
{ lib, config, ... }: {
options = {
settings.drivers.gpu.nvidia.enable = lib.mkEnableOption "Enable Nvidia proprietary drivers";
settings.drivers.gpu.nvidia.offload = lib.mkEnableOption "Enable prime offloading";
settings.drivers.gpu.nvidia.sync = lib.mkEnableOption "Enable prime sync";
};
config = lib.mkIf config.settings.drivers.gpu.nvidia.enable {
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
prime = {
nvidiaBusId = "pci:1:0:0";
amdgpuBusId = "pci:5:0:0";
};
prime.offload = lib.mkIf config.settings.drivers.gpu.nvidia.offload {
enable = true;
enableOffloadCmd = true;
};
prime.sync.enable = lib.mkIf config.settings.drivers.gpu.nvidia.sync true;
nvidiaSettings = true;
};
};
}

View file

@ -0,0 +1,13 @@
{ config, lib, ... }: {
options = {
settings.drivers.gpu.opengl.enable = lib.mkEnableOption "enable OpenGL hardware support";
};
config = lib.mkIf config.settings.drivers.gpu.opengl.enable {
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
};
}