1
Files
flake-nixinator/system/nixinator/hardware-configuration.nix

152 lines
5.0 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot = {
initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"];
# Enable early Nvidia kernel modesetting
# https://wiki.archlinux.org/title/GDM#GDM_ignores_Wayland_and_uses_X.Org_by_default (not fixed by this)
# https://wiki.archlinux.org/title/Kernel_mode_setting#Early_KMS_start
initrd.kernelModules = ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm"]; # NVIDIA
kernelModules = [
"kvm-amd"
"sg" # Blu-Ray drive
"zenpower" # Sensors for Zen CPUs: https://github.com/NixOS/nixos-hardware/blob/master/common/cpu/amd/zenpower.nix
];
blacklistedKernelModules = ["k10temp"]; # Disable in favor of zenpower
# Enable AMD pstate
# https://github.com/NixOS/nixos-hardware/blob/master/common/cpu/amd/pstate.nix
kernelParams = ["amd_pstate=active"];
# extraModprobeConfig = ''
# options iwlwifi 11n_disable=1 wd_disable=0
# '';
# Specific to used kernel (currently linux_zen)
extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
zenpower
];
};
fileSystems = {
# Done by disko
# "/" = {
# device = "/dev/disk/by-uuid/68bd46a0-e95c-4764-a006-44bd9975a6c2";
# fsType = "ext4";
# options = ["defaults" "rw" "relatime"];
# };
#
# "/boot/efi" = {
# device = "/dev/disk/by-uuid/36A9-3D74";
# fsType = "vfat";
# };
"/home/christoph/Games" = {
device = "/dev/disk/by-uuid/e57c1831-09d7-4046-9c62-086d3596f825";
fsType = "ext4";
options = ["defaults" "rw" "relatime"];
};
# If the bg option is specified, a timeout or failure causes the mount(8) command
# to fork a child which continues to attempt to mount the export.
# The parent immediately returns with a zero exit code.
# This is known as a "background" mount.
# If the soft option is specified, then the NFS client fails an NFS request
# after retrans retransmissions have been sent, causing the NFS client to return
# an error to the calling application.
# NB: A so-called "soft" timeout can cause silent data corruption in certain cases.
# As such, use the soft option only when client responsiveness is more important than data integrity.
# Using NFS over TCP or increasing the value of the retrans option may mitigate
# some of the risks of using the soft option.
"/home/christoph/Movies" = {
device = "192.168.86.20:/mnt/SG Exos Mirror 18TB/Movie";
fsType = "nfs";
options = ["defaults" "rw" "relatime" "_netdev" "bg" "soft"];
};
"/home/christoph/Shows" = {
device = "192.168.86.20:/mnt/SG Exos Mirror 18TB/Show";
fsType = "nfs";
options = ["defaults" "rw" "relatime" "_netdev" "bg" "soft"];
};
"/home/christoph/Music" = {
device = "192.168.86.20:/mnt/SG Exos Mirror 18TB/Music";
fsType = "nfs";
options = ["defaults" "rw" "relatime" "_netdev" "bg" "soft"];
};
};
# Done by disko
# swapDevices = lib.mkForce [
# {
# device = "/var/swap";
# size = 1024 * 16; # Without hibernation 4.0 GB to 0.5 x RAM
# }
# ];
hardware = {
# Use all redistributable firmware (i.e. nonfree)
enableAllFirmware = true;
enableRedistributableFirmware = true;
cpu.amd.updateMicrocode = true;
bluetooth.enable = true;
nvidia-container-toolkit.enable = true;
nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.stable;
# package = config.boot.kernelPackages.nvidiaPackages.beta;
modesetting.enable = true; # Not officially supported by NVidia but needed for wayland
open = true;
nvidiaSettings = false; # Those are for x-server
};
# video.hidpi.enable = lib.mkDefault true; # No longer has any effect
graphics = {
enable = true;
enable32Bit = true;
# https://nixos.wiki/wiki/Accelerated_Video_Playback
extraPackages = with pkgs; [
vaapiVdpau # Taken from wiki, this is also part of nixos-hardware/common/gpu/nvidia
libvdpau-va-gl # Taken from wiki
# https://discourse.nixos.org/t/nvidia-open-breaks-hardware-acceleration/58770/3
nvidia-vaapi-driver # Experimental, doesn't work with chromium
];
};
# sane.enable = true; # Scanning
# xpadneo.enable = true; # Xbox Controller
};
environment.variables = {
GBM_BACKEND = "nvidia-drm";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
# https://github.com/elFarto/nvidia-vaapi-driver?tab=readme-ov-file#environment-variables
LIBVA_DRIVER_NAME = "nvidia";
# https://wiki.hypr.land/Nvidia/#va-api-hardware-video-acceleration
NVD_BACKEND = "direct"; # egl
};
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
}