2023-10-17 14:12:26 +02:00
|
|
|
{ config
|
|
|
|
, lib
|
|
|
|
, pkgs
|
|
|
|
, modulesPath
|
|
|
|
, system
|
|
|
|
, inputs
|
|
|
|
, ...
|
2023-09-14 17:56:00 +02:00
|
|
|
}: {
|
|
|
|
imports = [
|
|
|
|
(modulesPath + "/installer/scan/not-detected.nix")
|
2023-10-20 13:53:08 +02:00
|
|
|
../../os-mods/common
|
2023-10-16 23:54:37 +02:00
|
|
|
../../os-mods/desktop
|
|
|
|
../../os-mods/network
|
|
|
|
../../os-mods/virt
|
|
|
|
../../users
|
|
|
|
./disko.nix
|
2023-09-14 17:56:00 +02:00
|
|
|
];
|
2023-10-16 23:54:37 +02:00
|
|
|
system.stateVersion = "23.05";
|
2023-09-14 17:56:00 +02:00
|
|
|
|
2023-10-16 23:54:37 +02:00
|
|
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
2023-10-15 23:31:59 +02:00
|
|
|
|
2023-09-14 17:56:00 +02:00
|
|
|
boot = {
|
2023-10-04 14:57:32 +02:00
|
|
|
kernelPackages = pkgs.linuxPackages_latest;
|
2023-09-18 15:55:29 +02:00
|
|
|
loader = {
|
2023-10-15 21:50:59 +02:00
|
|
|
systemd-boot = {
|
|
|
|
enable = true;
|
2023-10-16 23:54:37 +02:00
|
|
|
configurationLimit = 32;
|
2023-10-15 21:50:59 +02:00
|
|
|
};
|
2023-09-18 15:55:29 +02:00
|
|
|
efi.canTouchEfiVariables = true;
|
|
|
|
};
|
|
|
|
|
2023-09-14 17:56:00 +02:00
|
|
|
initrd = {
|
2023-10-17 14:12:26 +02:00
|
|
|
availableKernelModules = [ "amdgpu" "nvme" "xhci_pci" "uas" "usbhid" "usb_storage" "sd_mod" ];
|
|
|
|
kernelModules = [ ];
|
2023-09-20 13:15:20 +02:00
|
|
|
systemd.enable = true;
|
2023-09-14 17:56:00 +02:00
|
|
|
};
|
|
|
|
|
2023-10-17 14:12:26 +02:00
|
|
|
kernelModules = [ "kvm-amd" "amdgpu" ];
|
|
|
|
extraModulePackages = [ ];
|
2023-09-14 17:56:00 +02:00
|
|
|
};
|
|
|
|
|
2023-10-16 23:54:37 +02:00
|
|
|
services.btrfs.autoScrub.enable = true;
|
2023-10-17 14:12:26 +02:00
|
|
|
services.xserver.videoDrivers = [ "amdgpu" ];
|
2023-09-14 17:56:00 +02:00
|
|
|
|
|
|
|
networking = {
|
2023-10-16 23:54:37 +02:00
|
|
|
hostName = "nixos-pulse";
|
2023-09-14 17:56:00 +02:00
|
|
|
useDHCP = lib.mkDefault true;
|
2023-09-18 12:16:07 +02:00
|
|
|
interfaces = {
|
|
|
|
enp5s0f4u1u1c2 = {
|
|
|
|
useDHCP = false;
|
|
|
|
ipv4.addresses = [
|
|
|
|
{
|
2023-09-18 15:55:29 +02:00
|
|
|
address = "192.168.0.21";
|
|
|
|
prefixLength = 24;
|
|
|
|
}
|
2023-09-18 12:16:07 +02:00
|
|
|
];
|
2023-09-19 05:43:42 +02:00
|
|
|
ipv4.routes = [
|
|
|
|
{
|
|
|
|
address = "192.168.0.0";
|
|
|
|
prefixLength = 24;
|
|
|
|
}
|
|
|
|
{
|
|
|
|
address = "0.0.0.0";
|
|
|
|
prefixLength = 0;
|
|
|
|
via = "192.168.0.5";
|
|
|
|
}
|
|
|
|
];
|
2023-09-18 12:16:07 +02:00
|
|
|
};
|
|
|
|
};
|
2023-09-14 17:56:00 +02:00
|
|
|
};
|
|
|
|
|
2023-10-17 14:12:26 +02:00
|
|
|
systemd = {
|
|
|
|
services = {
|
|
|
|
# This manually configures the automatically created network-adresses service to be more flexible
|
|
|
|
# regarding booting without the the device being available on boot
|
|
|
|
# It prevents slow timeouts & errors on boot while preserving Plug & Play ability
|
|
|
|
network-addresses-enp5s0f4u1u1c2.unitConfig = {
|
|
|
|
ConditionPathExists = "/sys/class/net/enp5s0f4u1u1c2";
|
|
|
|
BindsTo = lib.mkForce null;
|
|
|
|
};
|
|
|
|
|
|
|
|
powertop.postStart = ''
|
|
|
|
HIDDEVICES=$(ls /sys/bus/usb/drivers/usbhid | grep -oE '^[0-9]+-[0-9\.]+' | sort -u)
|
|
|
|
for i in $HIDDEVICES; do
|
|
|
|
echo -n "Enabling " | cat - /sys/bus/usb/devices/$i/product
|
|
|
|
echo 'on' > /sys/bus/usb/devices/$i/power/control
|
|
|
|
done
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
tmpfiles.rules = [
|
|
|
|
"L+ /opt/rocm/hip - - - - ${pkgs.hip}"
|
|
|
|
];
|
|
|
|
};
|
2023-09-19 00:21:50 +02:00
|
|
|
services.udev.extraRules = ''
|
|
|
|
ACTION=="add", KERNEL=="enp5s0f4u1u1c2", TAG+="systemd", ENV{SYSTEMD_WANTS}="network-addresses-enp5s0f4u1u1c2.service"
|
|
|
|
ACTION=="remove", KERNEL=="enp5s0f4u1u1c2", RUN+="${pkgs.systemd}/bin/systemctl stop network-addresses-enp5s0f4u1u1c2.service"
|
|
|
|
'';
|
|
|
|
|
2023-10-16 23:54:37 +02:00
|
|
|
# energy saving stuff
|
|
|
|
powerManagement.powertop.enable = true;
|
2023-09-14 17:56:00 +02:00
|
|
|
|
|
|
|
hardware = {
|
2023-10-30 19:00:58 +01:00
|
|
|
i2c.enable = true;
|
2023-10-16 23:54:37 +02:00
|
|
|
tuxedo-control-center = {
|
|
|
|
enable = true;
|
|
|
|
package = inputs.tuxedo-nixos.packages.${system}.default;
|
|
|
|
};
|
2023-09-14 17:56:00 +02:00
|
|
|
opengl = {
|
|
|
|
driSupport = true;
|
|
|
|
driSupport32Bit = true;
|
|
|
|
extraPackages = with pkgs; [
|
|
|
|
rocm-opencl-icd
|
|
|
|
rocm-opencl-runtime
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
|
|
};
|
|
|
|
|
2023-10-16 23:54:37 +02:00
|
|
|
zramSwap.enable = true;
|
2023-09-14 17:56:00 +02:00
|
|
|
}
|