nixos-config/system/monolith-hardware-configuration.nix

87 lines
3.2 KiB
Nix
Raw Normal View History

2022-06-05 01:43:16 -03:00
# 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.
2022-07-21 00:32:09 -03:00
{ config, lib, pkgs, modulesPath, ... }: {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules =
[ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
2022-06-05 01:43:16 -03:00
boot.initrd.kernelModules = [ ];
2022-08-04 11:58:56 -03:00
boot.kernelModules = [ "kvm-amd" "amdgpu" ];
hardware.opengl.driSupport = true;
# For 32 bit applications
hardware.opengl.driSupport32Bit = true;
hardware.opengl.extraPackages = with pkgs; [ amdvlk ];
2022-08-06 18:32:34 -03:00
# For 32 bit applications
2022-08-04 11:58:56 -03:00
# Only available on unstable
hardware.opengl.extraPackages32 = with pkgs; [ driversi686Linux.amdvlk ];
2022-08-06 18:32:34 -03:00
environment.variables = { AMD_VULKAN_ICD = "RADV"; };
2022-08-04 11:58:56 -03:00
2022-06-05 01:43:16 -03:00
boot.extraModulePackages = [ ];
2022-07-21 00:32:09 -03:00
fileSystems."/" = {
device = "/dev/disk/by-label/BTRFS_ROOT";
fsType = "btrfs";
options = [ "subvol=nixos" ];
};
2022-07-19 20:57:18 -03:00
boot.initrd.luks.reusePassphrases = true;
boot.initrd.luks.devices = {
"main".device = "/dev/disk/by-label/CRYPT_ROOT";
"data".device = "/dev/disk/by-label/CRYPT_DATA";
};
2022-07-21 00:32:09 -03:00
fileSystems."/boot/efi" = {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
};
fileSystems."/home" = {
device = "/dev/disk/by-label/BTRFS_ROOT";
fsType = "btrfs";
options = [ "subvol=home" ];
};
fileSystems."/home/lelgenio/Games" = {
device = "/dev/disk/by-label/BTRFS_DATA";
fsType = "btrfs";
options = [ "subvol=@games" "nofail" ];
};
fileSystems."/home/lelgenio/Downloads/Torrents" = {
device = "/dev/disk/by-label/BTRFS_DATA";
fsType = "btrfs";
options = [ "subvol=@torrents" "nofail" ];
};
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="pci", DRIVER=="pcieport", ATTR{power/wakeup}="disabled"
'';
2022-06-05 01:43:16 -03:00
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
2022-07-11 21:34:04 -03:00
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
2022-07-21 00:32:09 -03:00
hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
2022-07-15 22:03:57 -03:00
networking.hostName = "monolith"; # Define your hostname.
2022-08-07 13:59:05 -03:00
# swap
systemd.services = {
create-swapfile = {
serviceConfig.Type = "oneshot";
wantedBy = [ "swap-swapfile.swap" ];
script = ''
${pkgs.coreutils}/bin/truncate -s 0 /swap/swapfile
${pkgs.e2fsprogs}/bin/chattr +C /swap/swapfile
${pkgs.btrfs-progs}/bin/btrfs property set /swap/swapfile compression none
'';
};
};
fileSystems."/swap" = {
device = "/dev/disk/by-label/BTRFS_ROOT";
fsType = "btrfs";
2022-08-07 15:12:25 -03:00
options = [
"subvol=swap"
]; # Note these options effect the entire BTRFS filesystem and not just this volume, with the exception of `"subvol=swap"`, the other options are repeated in my other `fileSystem` mounts
2022-08-07 13:59:05 -03:00
};
swapDevices = [{
device = "/swap/swapfile";
size = (1024 * 16) + (1024 * 2); # RAM size + 2 GB
}];
2022-07-21 00:32:09 -03:00
}