152 lines
5.0 KiB
Nix
152 lines
5.0 KiB
Nix
# 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";
|
||
}
|