diff --git a/hosts/herugrim/default.nix b/hosts/herugrim/default.nix index f4f6269..7a9b9bb 100644 --- a/hosts/herugrim/default.nix +++ b/hosts/herugrim/default.nix @@ -56,7 +56,6 @@ virtual-machine = false; }; cpu.type = "intel"; - gpu.type = "nvidia"; hasTPM = true; }; diff --git a/options/device/hardware.nix b/options/device/hardware.nix index cddde3f..3d86d37 100644 --- a/options/device/hardware.nix +++ b/options/device/hardware.nix @@ -14,16 +14,6 @@ in ''; }; - gpu.type = mkOption { - type = with types; nullOr (enum [ "nvidia" "amd" "intel" ]); - default = null; - description = '' - The manifaturer/type of the primary system GPU. - - Allows the correct GPU drivers to be loaded, potentially optimizing video output performance. - ''; - }; - hasTPM = mkOption { type = lib.types.bool; default = false; diff --git a/system/shared/hardware/default.nix b/system/shared/hardware/default.nix index 2c3dc2f..2dbc2c1 100644 --- a/system/shared/hardware/default.nix +++ b/system/shared/hardware/default.nix @@ -1,7 +1,6 @@ _: { imports = [ ./cpu - ./gpu ./tpm.nix ./generic.nix ]; diff --git a/system/shared/hardware/gpu/amd.nix b/system/shared/hardware/gpu/amd.nix deleted file mode 100644 index 1a0ec01..0000000 --- a/system/shared/hardware/gpu/amd.nix +++ /dev/null @@ -1,39 +0,0 @@ -# WARNING: This file is currently untested -# (I didn't yet run this NixOS config on any AMD GPU systems) -{ config, lib, pkgs, ... }: -let - dev = config.myOptions.device; -in -{ - config = lib.mkIf (dev.gpu.type == "amd") { - services.xserver.videoDrivers = lib.mkDefault ["modesetting" "amdgpu"]; - - boot = { - initrd.kernelModules = ["amdgpu"]; # load amdgpu kernel module as early as initrd - kernelModules = ["amdgpu"]; # if loading somehow fails during initrd but the boot continues, try again later - }; - - environment.systemPackages = with pkgs; [ - mesa - - vulkan-tools - vulkan-loader - vulkan-validation-layers - vulkan-extension-layer - ]; - - # Enable OpenGL - hardware.opengl = { - enable = true; - - # Enable OpenCL and AMDVLK - extraPackages = with pkgs; [ - amdvlk - rcomPackages.clr.icd - ]; - extraPackages32 = with pkgs; [ - driversi686Linux.amdvlk - ]; - }; - }; -} diff --git a/system/shared/hardware/gpu/default.nix b/system/shared/hardware/gpu/default.nix deleted file mode 100644 index 4a57cf9..0000000 --- a/system/shared/hardware/gpu/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -_: { - imports = [ - ./amd.nix - ./nvidia.nix - ]; -} - diff --git a/system/shared/hardware/gpu/nvidia.nix b/system/shared/hardware/gpu/nvidia.nix deleted file mode 100644 index fed1519..0000000 --- a/system/shared/hardware/gpu/nvidia.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ config, lib, pkgs, ... }: -let - dev = config.myOptions.device; -in -{ - config = lib.mkIf (dev.gpu.type == "nvidia") { - # Nvidia drivers are unfree software - nixpkgs.config.allowUnfree = true; - - # Enable nvidia driver for Xorg and Wayland - services.xserver.videoDrivers = ["nvidia"]; - - hardware = { - nvidia = { - # modeestting is required - modesetting.enable = lib.mkDefault true; - - # Nvidia power managerment. Experimental, and can cause sleep/suspend to fail. - # Enable this if you have graphical corruption issues or application crashes after waking - # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead of just - # the bare essentials - powerManagement.enable = lib.mkDefault true; - - # Fine-grained power management. Turns off GPU when not in use. - # Experimental and only works on modern Nvidia GPUs (Turing or newer) - powerManagement.finegrained = lib.mkDefault 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 - # - # Enable this by default, hosts may override this option if their gpu is not - # supported by the open source drivers - open = lib.mkDefault true; - - # Add the Nvidia settings package, accessible via `nvidia-settings`. - # (useless on NixOS) - nvidiaSettings = false; - - # This ensures all GPUs stay awake even during headless mode. - nvidiaPersistenced = true; - }; - - # Enable OpenGL - opengl = { - enable = true; - - # VA-API implementation using NVIDIA's NVDEC - extraPackages = with pkgs; [nvidia-vaapi-driver]; - extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver]; - }; - }; - - # blacklist nouveau module so that it does not conflict with nvidia drm stuff - # also the nouveau performance is horrible in comparison. - boot.blacklistedKernelModules = ["nouveau"]; - - environment = { - systemPackages = with pkgs; [ - mesa - - vulkan-tools - vulkan-loader - vulkan-validation-layers - vulkan-extension-layer - - libva - libva-utils - ]; - - sessionVariables = { - LIBVA_DRIVER_NAME = "nvidia"; - WLR_NO_HARDWARE_CURSORS = "1"; - }; - }; - }; -} diff --git a/system/shared/system.nix b/system/shared/system.nix index 28e4c9e..31d21f4 100644 --- a/system/shared/system.nix +++ b/system/shared/system.nix @@ -8,6 +8,13 @@ in programs.zsh.enable = true; users = { + # Prevent mutating users outside of our configurations. + # TODO: Solve this, currentry it fails with no password + # specified for root account nor any whell user accounts + # and wants us to set pw manually with passwd, which needs + # mutableUsers + #mutableUsers = false; + users.${cfg.username} = { isNormalUser = true; extraGroups = [ "wheel" ];