2021-10-26 01:04:15 +03:00
|
|
|
{ lib, pkgs, config, ... }:
|
|
|
|
with config.deviceSpecific; {
|
2022-01-30 02:10:32 +03:00
|
|
|
zramSwap = {
|
|
|
|
enable = true;
|
|
|
|
algorithm = "zstd";
|
|
|
|
memoryPercent = 60;
|
|
|
|
};
|
|
|
|
|
2022-12-14 23:46:25 +03:00
|
|
|
persist.state.files = [ "/etc/machine-id" ];
|
|
|
|
|
2022-01-30 02:10:32 +03:00
|
|
|
boot = if !isServer && !isISO then {
|
2021-02-07 02:38:11 +03:00
|
|
|
loader = {
|
2021-09-16 01:03:52 +03:00
|
|
|
timeout = lib.mkForce 4;
|
2022-12-14 23:51:59 +03:00
|
|
|
systemd-boot.enable = pkgs.hostPlatform.system == "x86_64-linux";
|
2021-02-07 02:38:11 +03:00
|
|
|
};
|
|
|
|
|
2022-01-30 02:10:32 +03:00
|
|
|
kernelParams = [ "zswap.enabled=0" "quiet" "scsi_mod.use_blk_mq=1" "modeset" "nofb" ]
|
2022-12-14 23:51:59 +03:00
|
|
|
++ lib.optionals (pkgs.hostPlatform.system == "x86_64-linux") [
|
2021-09-16 01:03:52 +03:00
|
|
|
"rd.systemd.show_status=auto"
|
|
|
|
"rd.udev.log_priority=3"
|
|
|
|
"pti=off"
|
|
|
|
"spectre_v2=off"
|
2022-02-11 14:07:03 +03:00
|
|
|
"kvm.ignore_msrs=1"
|
2021-09-16 01:03:52 +03:00
|
|
|
];
|
|
|
|
|
2022-10-21 13:57:17 +03:00
|
|
|
kernelPackages = pkgs.linuxPackages_lqx;
|
2021-02-07 02:38:11 +03:00
|
|
|
|
|
|
|
supportedFilesystems = [ "ntfs" ];
|
|
|
|
|
|
|
|
consoleLogLevel = 3;
|
|
|
|
kernel.sysctl = {
|
|
|
|
"vm.swappiness" = if config.deviceSpecific.isSSD then 1 else 10;
|
|
|
|
};
|
2022-08-05 21:10:22 +03:00
|
|
|
|
2023-03-25 19:30:34 +03:00
|
|
|
cleanTmpDir = !config.boot.tmpOnTmpfs;
|
|
|
|
zfs.forceImportAll = lib.mkForce false;
|
2022-01-30 02:10:32 +03:00
|
|
|
} else if isServer then {
|
2022-12-07 22:05:00 +03:00
|
|
|
kernelPackages = pkgs.linuxPackages_hardened;
|
2021-10-26 01:04:15 +03:00
|
|
|
kernelModules = [ "tcp_bbr" ];
|
2022-12-07 22:05:00 +03:00
|
|
|
kernelParams = [
|
|
|
|
"zswap.enabled=0"
|
|
|
|
"quiet"
|
|
|
|
"scsi_mod.use_blk_mq=1"
|
|
|
|
"modeset"
|
|
|
|
"nofb"
|
|
|
|
"pti=off"
|
|
|
|
"spectre_v2=off"
|
|
|
|
"kvm.ignore_msrs=1"
|
|
|
|
];
|
2021-10-26 01:04:15 +03:00
|
|
|
kernel.sysctl = {
|
2022-12-07 22:05:00 +03:00
|
|
|
"kernel.sysrq" = false;
|
2021-10-26 01:04:15 +03:00
|
|
|
"net.core.default_qdisc" = "cake";
|
2022-12-07 22:05:00 +03:00
|
|
|
"net.ipv4.conf.all.accept_source_route" = false;
|
|
|
|
"net.ipv4.icmp_ignore_bogus_error_responses" = true;
|
|
|
|
"net.ipv4.tcp_congestion_control" = "bbr";
|
|
|
|
"net.ipv4.tcp_fastopen" = 3;
|
|
|
|
"net.ipv4.tcp_rfc1337" = true;
|
|
|
|
"net.ipv4.tcp_syncookies" = true;
|
|
|
|
"net.ipv6.conf.all.accept_source_route" = false;
|
2021-10-26 01:04:15 +03:00
|
|
|
};
|
2022-12-07 22:05:00 +03:00
|
|
|
kernel.sysctl = {
|
|
|
|
"vm.swappiness" = if config.deviceSpecific.isSSD then 1 else 10;
|
|
|
|
};
|
|
|
|
cleanTmpDir = true;
|
2023-03-25 19:30:34 +03:00
|
|
|
zfs.forceImportAll = lib.mkForce false;
|
2022-01-30 02:10:32 +03:00
|
|
|
} else {
|
|
|
|
kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
|
|
|
|
kernelParams = lib.mkForce [ "zswap.enabled=0" ];
|
|
|
|
supportedFilesystems = lib.mkForce [ "ext4" "vfat" "btrfs" "ntfs" ];
|
2023-03-25 19:30:34 +03:00
|
|
|
zfs.forceImportAll = lib.mkForce false;
|
2021-02-07 02:38:11 +03:00
|
|
|
};
|
|
|
|
}
|