This repository has been archived on 2023-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
nil/hosts/nil/hardware.nix
2022-08-13 22:42:04 -04:00

94 lines
2.9 KiB
Nix

# Build Specs
# ###############################################################################
# Onboard Memory: 16 GB DDR4 3200MHz (Soldered) Note: This can support another stick of RAM.
# Wireless: Realtek 8852AE 802.11AX (2 x 2) & Bluetooth® 5.2
# Processor: AMD Ryzen™ 5 Pro 5650U Processor (2.30 GHz, up to 4.20 GHz Max Boost, 6 Cores, 12 Threads, 16 MB Cache)
# Graphic Card: Integrated AMD Radeon™ Graphics
# Battery: 3 Cell Li-Polymer 50Wh
# Camera: IR & 720p HD
# SSD: 128 GB PCIe SSD
# Keyboard: US English
# System Expansion Slots: Smart Card Reader
# TPM Setting: Enabled Discrete TPM2.0
# Display: 14.0" FHD (1920 x 1080) IPS, anti-glare, touchscreen with Privacy Guard, 500 nits
#
# Its formatted as follows
# NAME TYPE MOUNTPOINT
# nvme0n1 disk
# ├─nvme0n1p1 part /boot
# └─nvme0n1p2 part
# └─crypt crypt /dev/mapper/root
# └─partitions lvm
# ├─swap swap /dev/partitions/swap
# └─lvm_root lvm /dev/partitions/lvm_root
# └─rpool zpool
# ├─rpool/root zfs
# ├─rpool/root/nixos zfs /
# └─rpool/home zfs /home
{ self, config, lib, pkgs, modulesPath, ... }: {
my.system = {
zfs.enable = true;
yubikey.enable = true;
};
networking = {
# This is required for the zfs module as well. Must be unique. Run the following head -c4 /dev/urandom | od -A none -t x4
hostId = "a7a1c3f5";
hostName = "nil"; # Define your hostname.
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
useDHCP = false;
interfaces = {
enp2s0f0.useDHCP = true;
enp5s0.useDHCP = true;
wlp3s0.useDHCP = true;
};
};
hardware.firmware = [ pkgs.rtw89-firmware ];
boot = {
initrd = {
availableKernelModules = [
"nvme"
"vfat"
"xhci_pci"
"usbhid"
"usb_storage"
"sd_mod"
"sdhci_pci"
"cryptd"
];
kernelModules = [ "dm-snapshot" ];
luks.devices."crypt" = {
device = "/dev/disk/by-partlabel/crypt";
preLVM = true;
};
};
kernelModules = [ "kvm-amd" ];
# Need for https://github.com/NixOS/nixpkgs/issues/177844
kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.16")
pkgs.linuxPackages_latest;
supportedFilesystems = [ "zfs" ];
};
fileSystems = {
"/" = {
device = "rpool/root/nixos";
fsType = "zfs";
};
"/home" = {
device = "rpool/home";
fsType = "zfs";
};
"/boot" = {
device = "/dev/disk/by-partlabel/boot";
fsType = "vfat";
};
};
swapDevices = [{ device = "/dev/partitions/swap"; }];
}