diff options
author | fortuneteller2k <lythe1107@gmail.com> | 2022-03-22 19:08:21 +0800 |
---|---|---|
committer | fortuneteller2k <lythe1107@gmail.com> | 2022-04-10 23:34:04 +0000 |
commit | bfc55bad14c3d2f53465280434a51acd5a3223d1 (patch) | |
tree | 21d5f830ca346aaa145657d657d0844f990f4359 /pkgs/os-specific/linux/kernel/xanmod-kernels.nix | |
parent | 7c36b7246b1f429c67f2bac6e3c0dd212d14dea2 (diff) | |
download | nixpkgs-bfc55bad14c3d2f53465280434a51acd5a3223d1.tar nixpkgs-bfc55bad14c3d2f53465280434a51acd5a3223d1.tar.gz nixpkgs-bfc55bad14c3d2f53465280434a51acd5a3223d1.tar.bz2 nixpkgs-bfc55bad14c3d2f53465280434a51acd5a3223d1.tar.lz nixpkgs-bfc55bad14c3d2f53465280434a51acd5a3223d1.tar.xz nixpkgs-bfc55bad14c3d2f53465280434a51acd5a3223d1.tar.zst nixpkgs-bfc55bad14c3d2f53465280434a51acd5a3223d1.zip |
xanmod-kernels: add STABLE and EDGE variants
Diffstat (limited to 'pkgs/os-specific/linux/kernel/xanmod-kernels.nix')
-rw-r--r-- | pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix new file mode 100644 index 00000000000..81927a45e89 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -0,0 +1,81 @@ +{ lib, stdenv, fetchFromGitHub, buildLinux, ... } @ args: + +let + stableVariant = { + version = "5.15.30"; + suffix = "xanmod1"; + hash = "sha256-j33P+bnR0xtKqNLXYfDZmsL8s0fEBsWUrFiV4+CaJyY="; + }; + + edgeVariant = { + version = "5.17.0"; + suffix = "xanmod1"; + hash = "sha256-tVwc6vx3SAToasbCCz8IuESfHd3NvPM34FrzbBK7Sfc="; + }; + + xanmodKernelFor = { version, suffix, hash }: buildLinux (args // rec { + inherit version; + modDirVersion = "${version}-${suffix}"; + + src = fetchFromGitHub { + owner = "xanmod"; + repo = "linux"; + rev = modDirVersion; + inherit hash; + }; + + structuredExtraConfig = with lib.kernel; { + # removed options + CFS_BANDWIDTH = lib.mkForce (option no); + RT_GROUP_SCHED = lib.mkForce (option no); + SCHED_AUTOGROUP = lib.mkForce (option no); + + # AMD P-state driver + X86_AMD_PSTATE = yes; + + # Linux RNG framework + LRNG = yes; + + # Paragon's NTFS3 driver + NTFS3_FS = module; + NTFS3_LZX_XPRESS = yes; + NTFS3_FS_POSIX_ACL = yes; + + # Preemptive Full Tickless Kernel at 500Hz + SCHED_CORE = lib.mkForce (option no); + PREEMPT_VOLUNTARY = lib.mkForce no; + PREEMPT = lib.mkForce yes; + NO_HZ_FULL = yes; + HZ_500 = yes; + + # Google's BBRv2 TCP congestion Control + TCP_CONG_BBR2 = yes; + DEFAULT_BBR2 = yes; + + # FQ-PIE Packet Scheduling + NET_SCH_DEFAULT = yes; + DEFAULT_FQ_PIE = yes; + + # Graysky's additional CPU optimizations + CC_OPTIMIZE_FOR_PERFORMANCE_O3 = yes; + + # Futex WAIT_MULTIPLE implementation for Wine / Proton Fsync. + FUTEX = yes; + FUTEX_PI = yes; + + # WineSync driver for fast kernel-backed Wine + WINESYNC = module; + }; + + extraMeta = { + branch = lib.versions.majorMinor version; + maintainers = with lib.maintainers; [ fortuneteller2k lovesegfault ]; + description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience"; + broken = stdenv.isAarch64; + }; + } // (args.argsOverride or { })); +in +{ + stable = xanmodKernelFor stableVariant; + edge = xanmodKernelFor edgeVariant; +} |