{ config, lib, modulesPath, pkgs, ... }: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; boot = { # Intel arc #kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.unstable.recurseIntoAttrs (pkgs.unstable.linuxPackagesFor (pkgs.unstable.callPackage ({ fetchurl, buildLinux, ... } @ args: buildLinux (args // rec { version = "6.2.0-rc7"; modDirVersion = version; src = fetchurl { url = "https://git.kernel.org/torvalds/t/linux-6.2-rc7.tar.gz"; sha256 = "sha256-6klAGw+J0usyY55dTMb/reUbAobJdheG/6YvNGz7SwM="; }; kernelPatches = [ ]; extraMeta.branch = "6.2"; } // (args.argsOverride or { }))) { })); # 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/1607bb2a-329b-4252-b11a-b43eb6b7bf0c"; preLVM = true; allowDiscards = true; }; }; }; }; fileSystems = { "/" = { device = "/dev/disk/by-uuid/9e6b279e-6995-44da-b673-21b9e23a5278"; fsType = "btrfs"; options = [ "discard=async" "noatime" "compress=zstd" ]; }; "/boot" = { device = "/dev/disk/by-uuid/75DA-DFE2"; fsType = "vfat"; }; "/data" = { device = "/dev/mapper/data"; fsType = "btrfs"; options = [ "compress=zstd" ]; encrypted = { label = "data"; enable = true; blkDev = "/dev/disk/by-uuid/7f4ba71e-3aca-4294-b37f-49f37b584dbd"; keyFile = "/mnt-root/root/luks-data"; }; }; "/data/ssd" = { device = "/dev/mapper/data-ssd"; fsType = "btrfs"; options = [ "discard=async" "noatime" "compress=zstd" ]; encrypted = { # !!! HACK label = "data-ssd --allow-discards"; enable = true; blkDev = "/dev/disk/by-uuid/41baa168-7fa0-4eb3-b314-50766ddf126d"; keyFile = "/mnt-root/root/luks-data"; }; }; }; swapDevices = [ { device = "/dev/disk/by-uuid/2774d182-ddc9-4d79-886e-995fcd60a88a"; } ]; # GPU hardware.opengl = { package = pkgs.unstable.mesa.drivers; package32 = pkgs.unstable.pkgsi686Linux.mesa.drivers; extraPackages = with pkgs; [ intel-media-driver libvdpau-va-gl vaapiIntel vaapiVdpau ] ++ (with pkgs.unstable; [ intel-compute-runtime intel-compute-runtime.drivers level-zero ]); }; 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.unstable.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; }; }; }; }