|
|
@@ -1,33 +1,49 @@
|
|
|
-{ config, ... }:
|
|
|
+{ config
|
|
|
+, inputs
|
|
|
+, ...
|
|
|
+}:
|
|
|
{
|
|
|
- # Boot configuration
|
|
|
+ imports = [
|
|
|
+ inputs.nixos-facter-modules.nixosModules.facter
|
|
|
+ { config.facter.reportPath = ./facter.json; }
|
|
|
+
|
|
|
+ ./age.nix
|
|
|
+ ./disko.nix
|
|
|
+ ./impermanence.nix
|
|
|
+ ./mergerfs.nix
|
|
|
+ ];
|
|
|
+
|
|
|
+ environment.systemPackages = [
|
|
|
+ config.boot.kernelPackages.cpupower
|
|
|
+ config.boot.kernelPackages.turbostat
|
|
|
+ ];
|
|
|
+
|
|
|
boot = {
|
|
|
- # Use systemd-boot for UEFI systems
|
|
|
loader.systemd-boot.enable = true;
|
|
|
loader.efi.canTouchEfiVariables = true;
|
|
|
- loader.grub.devices = [
|
|
|
- config.disko.devices.disk.main.device
|
|
|
- ];
|
|
|
+ loader.grub.devices = [ config.disko.devices.disk.main.device ];
|
|
|
loader.timeout = 3;
|
|
|
|
|
|
- # Kernel parameters for server workload
|
|
|
blacklistedKernelModules = [ "k10temp" ];
|
|
|
+ extraModulePackages = [ config.boot.kernelPackages.zenpower ];
|
|
|
kernelParams = [ "rootflags=compress=zstd:1,noatime" "amd_pstate=active" ];
|
|
|
kernelModules = [ "zenpower" "nct6775" ];
|
|
|
- extraModulePackages = [
|
|
|
- config.boot.kernelPackages.cpupower
|
|
|
- config.boot.kernelPackages.turbostat
|
|
|
- config.boot.kernelPackages.zenpower
|
|
|
- ];
|
|
|
|
|
|
- # Enable KSM for memory efficiency with containers
|
|
|
kernel.sysctl = {
|
|
|
"kernel.sysrq" = 1;
|
|
|
"vm.swappiness" = 10;
|
|
|
"net.core.default_qdisc" = "cake";
|
|
|
};
|
|
|
- };
|
|
|
|
|
|
+ initrd.services.udev.rules = ''
|
|
|
+ ACTION=="add", SUBSYSTEM=="hwmon", DEVPATH=="/devices/platform/*/hwmon/hwmon*", \
|
|
|
+ MODE="0660", GROUP="plugdev", \
|
|
|
+ RUN+="/bin/sh -c 'for pwm in $(find /sys%p -name \"pwm[0-9]*\" | sort); do \
|
|
|
+ num=$(echo \"$pwm\" | sed -n \"s/.*pwm\([0-9]\+\).*/\1/p\"); \
|
|
|
+ ln -sf \"$pwm\" \"/dev/pwm$num\"; \
|
|
|
+ done'"
|
|
|
+ '';
|
|
|
+ };
|
|
|
|
|
|
hardware.fancontrol = {
|
|
|
enable = true;
|
|
|
@@ -59,8 +75,8 @@
|
|
|
devices.data2.device
|
|
|
];
|
|
|
pwmPaths = [
|
|
|
- "/sys/class/hwmon/hwmon2/pwm1:20:0"
|
|
|
- "/sys/class/hwmon/hwmon2/pwm4:80:60"
|
|
|
+ "/sys/class/hwmon/hwmon[[:print:]]*/pwm1:20:0"
|
|
|
+ "/sys/class/hwmon/hwmon[[:print:]]*/pwm4:80:60"
|
|
|
];
|
|
|
logVerbosity = "DEBUG";
|
|
|
extraArgs = [
|