Simon Bruder
10b8d432d5
This applies the REUSE specification to the repository, so the licensing information can be tracked for every file individually.
138 lines
3.4 KiB
Nix
138 lines
3.4 KiB
Nix
# SPDX-FileCopyrightText: 2020-2023 Simon Bruder <simon@sbruder.de>
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
{ config, lib, modulesPath, pkgs, ... }:
|
|
|
|
{
|
|
imports = [
|
|
(modulesPath + "/installer/scan/not-detected.nix")
|
|
];
|
|
|
|
boot = {
|
|
# Intel arc
|
|
kernelPackages = pkgs.linuxPackages_latest;
|
|
# fan control configuration from https://gist.github.com/bakman2/e801f342aaa7cade62d7bd54fd3eabd8
|
|
kernelModules = [ "kvm-amd" "it87" ];
|
|
kernelParams = [ "acpi_enforce_resources=lax" ]; # allow it87 to load
|
|
extraModulePackages = with config.boot.kernelPackages; [ it87 ];
|
|
extraModprobeConfig = ''
|
|
options it87 force_id=0x8688
|
|
'';
|
|
loader = {
|
|
grub.enable = false;
|
|
systemd-boot.enable = true;
|
|
efi.canTouchEfiVariables = true;
|
|
};
|
|
initrd = {
|
|
availableKernelModules = [ "aesni_intel" "ahci" "ehci_pci" "nvme" "sd_mod" "sr_mod" "usb_storage" "usbhid" "xhci_pci" ];
|
|
kernelModules = [ "dm-snapshot" ];
|
|
luks.devices = {
|
|
root = {
|
|
name = "root";
|
|
device = "/dev/disk/by-uuid/63c6aa7c-47c5-43f5-b0eb-c32b0768327b";
|
|
preLVM = true;
|
|
allowDiscards = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
fileSystems = {
|
|
"/" = {
|
|
device = "/dev/disk/by-uuid/3994f497-9848-459e-9642-cbc14a7d3c97";
|
|
fsType = "btrfs";
|
|
options = [ "discard=async" "noatime" "compress=zstd" ];
|
|
};
|
|
|
|
"/boot" = {
|
|
device = "/dev/disk/by-uuid/96B6-34BD";
|
|
fsType = "vfat";
|
|
};
|
|
};
|
|
|
|
swapDevices = [
|
|
{ device = "/dev/disk/by-uuid/98de7ced-4d7c-4915-bf5b-1a0300458ea6"; }
|
|
];
|
|
|
|
# GPU
|
|
hardware.opengl = {
|
|
package = pkgs.mesa.drivers;
|
|
package32 = pkgs.pkgsi686Linux.mesa.drivers;
|
|
extraPackages = with pkgs; [
|
|
intel-compute-runtime
|
|
intel-compute-runtime.drivers
|
|
intel-media-driver
|
|
level-zero
|
|
libvdpau-va-gl
|
|
vaapiIntel
|
|
vaapiVdpau
|
|
];
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
clinfo
|
|
nvtop-amd # also returns basic stats for intel
|
|
];
|
|
|
|
security.wrappers."intel_gpu_top" = {
|
|
owner = "root";
|
|
group = "root";
|
|
capabilities = "cap_perfmon+p";
|
|
source = "${pkgs.intel-gpu-tools}/bin/intel_gpu_top";
|
|
};
|
|
|
|
# https://www.reddit.com/r/gigabyte/comments/p5ewjn/b550i_pro_ax_f13_bios_sleep_issue_on_linux/
|
|
systemd.services.suspend-fix = {
|
|
wantedBy = [ "multi-user.target" ];
|
|
description = "Fix suspend";
|
|
|
|
script = ''
|
|
if grep -q "GPP0 .* \*enabled" /proc/acpi/wakeup; then
|
|
echo GPP0 > /proc/acpi/wakeup
|
|
echo "Disabled wakeup for GPP0"
|
|
else
|
|
echo "Wakeup for GPP0 already disabled"
|
|
fi
|
|
'';
|
|
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
};
|
|
};
|
|
|
|
sbruder.fancontrol = {
|
|
enable = false; # no hwmon for intel arc (yet)
|
|
enableDefaultMapping = true;
|
|
fans = {
|
|
front = {
|
|
pwmFile = "/sys/class/hwmon/hwmon1/pwm4";
|
|
rpmFile = "/sys/class/hwmon/hwmon1/fan4_input";
|
|
pwmLineStart = 50;
|
|
neverStop = true;
|
|
};
|
|
back = {
|
|
pwmFile = "/sys/class/hwmon/hwmon1/pwm2";
|
|
rpmFile = "/sys/class/hwmon/hwmon1/fan2_input";
|
|
};
|
|
};
|
|
sensors = {
|
|
cpu = {
|
|
file = "/sys/class/hwmon/hwmon2/temp3_input";
|
|
min = 50;
|
|
max = 80;
|
|
};
|
|
gpu = {
|
|
file = "/sys/class/hwmon/hwmon4/temp1_input";
|
|
min = 50;
|
|
max = 70;
|
|
};
|
|
nvme = {
|
|
file = "/sys/class/hwmon/hwmon0/temp1_input";
|
|
min = 40;
|
|
max = 70;
|
|
};
|
|
};
|
|
};
|
|
}
|