From 56d037477ce0a6924e49313cb5557d6c716b98e7 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Wed, 9 Apr 2025 15:31:18 +0200 Subject: [PATCH] hermit: disable nvidia --- hosts/hermit/configuration.nix | 2 +- hosts/hermit/hardware-configuration.nix | 36 ++++++++++++++++++++----- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/hosts/hermit/configuration.nix b/hosts/hermit/configuration.nix index 81c9973..0c70d6c 100644 --- a/hosts/hermit/configuration.nix +++ b/hosts/hermit/configuration.nix @@ -33,7 +33,7 @@ owncloud.enable = true; }; hardware = { - nvidia.enable = true; + nvidia.enable = false; intel.enable = true; bluetooth = { enable = true; diff --git a/hosts/hermit/hardware-configuration.nix b/hosts/hermit/hardware-configuration.nix index 406634d..6f67a73 100644 --- a/hosts/hermit/hardware-configuration.nix +++ b/hosts/hermit/hardware-configuration.nix @@ -11,11 +11,35 @@ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.kernelParams = ["mem_sleep_default=deep"]; - boot.extraModulePackages = []; + boot = { + initrd = { + availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"]; + kernelModules = []; + }; + kernelModules = ["kvm-intel"]; + blacklistedKernelModules = ["nouveau" "nvidia" "nvidia_drm" "nvidia_modeset"]; + + kernelParams = ["mem_sleep_default=deep"]; + extraModulePackages = []; + 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" + ''; # swapDevices = # [ { device = "/dev/disk/by-uuid/3518272e-1051-41e2-a7f0-f5c744e46789"; } @@ -26,8 +50,6 @@ # (the default) this is the recommended approach. When using systemd-networkd it's # still possible to use this option, but it's recommended to use it in conjunction # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp59s0.useDHCP = lib.mkDefault true; # Enable firmware updates via `fwupdmgr`. services.fwupd.enable = lib.mkDefault true;