mirror of
https://git.sr.ht/~magic_rb/dotfiles
synced 2024-11-21 23:54:22 +01:00
Add no-nvidia and nouveau specialization on omen
Signed-off-by: magic_rb <magic_rb@redalder.org>
This commit is contained in:
parent
69eb47c2a1
commit
9413748603
|
@ -1,15 +1,24 @@
|
|||
# SPDX-FileCopyrightText: 2022 Richard Brežák <richard@brezak.sk>
|
||||
#
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
{ pkgs, lib, inputs', ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs',
|
||||
options,
|
||||
...
|
||||
}: let
|
||||
inherit
|
||||
(lib)
|
||||
singleton
|
||||
mkForce;
|
||||
mkForce
|
||||
mapAttrs
|
||||
mkOverride
|
||||
filter
|
||||
;
|
||||
|
||||
kernelPackages = pkgs.zfsUnstable.latestCompatibleLinuxPackages;
|
||||
in
|
||||
{
|
||||
in {
|
||||
environment.systemPackages = [
|
||||
kernelPackages.turbostat
|
||||
];
|
||||
|
@ -52,6 +61,9 @@ in
|
|||
hardware.tuxedo-keyboard.enable = true;
|
||||
|
||||
specialisation.nvidia-sync.configuration = {
|
||||
environment.variables.NIXOS_SPECIALIZATION = "nvidia-sync";
|
||||
boot.loader.grub.enable = mkOverride 0 false;
|
||||
|
||||
hardware.nvidia = {
|
||||
powerManagement.enable = mkForce false;
|
||||
powerManagement.finegrained = mkForce false;
|
||||
|
@ -61,6 +73,55 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
specialisation.nouveau.configuration = {
|
||||
environment.variables.NIXOS_SPECIALIZATION = "nouveau";
|
||||
boot.loader.grub.enable = mkOverride 0 false;
|
||||
|
||||
hardware.nvidia = mapAttrs (_: v: mkForce v) {
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
prime.offload.enableOffloadCmd = false;
|
||||
prime.offload.enable = false;
|
||||
nvidiaPersistenced = false;
|
||||
|
||||
prime.reverseSync.enable = false;
|
||||
};
|
||||
services.xserver.videoDrivers = mkForce ["modesetting" "nouveau"];
|
||||
};
|
||||
|
||||
specialisation.no-nvidia.configuration = {
|
||||
environment.variables.NIXOS_SPECIALIZATION = "no-nvidia";
|
||||
boot.loader.grub.enable = mkOverride 0 false;
|
||||
|
||||
hardware.nvidia = mapAttrs (_: v: mkForce v) {
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
prime.offload.enableOffloadCmd = false;
|
||||
prime.offload.enable = false;
|
||||
nvidiaPersistenced = false;
|
||||
|
||||
prime.reverseSync.enable = false;
|
||||
};
|
||||
services.xserver.videoDrivers = mkForce ["modesetting"];
|
||||
|
||||
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"];
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
nvidiaPersistenced = true;
|
||||
|
||||
|
|
Loading…
Reference in a new issue