From bfc55bad14c3d2f53465280434a51acd5a3223d1 Mon Sep 17 00:00:00 2001 From: fortuneteller2k Date: Tue, 22 Mar 2022 19:08:21 +0800 Subject: xanmod-kernels: add STABLE and EDGE variants --- pkgs/os-specific/linux/kernel/linux-xanmod.nix | 68 -------------------- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 81 ++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 68 deletions(-) delete mode 100644 pkgs/os-specific/linux/kernel/linux-xanmod.nix create mode 100644 pkgs/os-specific/linux/kernel/xanmod-kernels.nix (limited to 'pkgs/os-specific/linux/kernel') diff --git a/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/pkgs/os-specific/linux/kernel/linux-xanmod.nix deleted file mode 100644 index b170ec044b0..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-xanmod.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args: - -let - version = "5.15.27"; - release = "1"; - suffix = "xanmod${release}-tt"; -in -buildLinux (args // rec { - inherit version; - modDirVersion = "${version}-${suffix}"; - - src = fetchFromGitHub { - owner = "xanmod"; - repo = "linux"; - rev = modDirVersion; - sha256 = "sha256-ycUvTXDKnffxs8FKZJurX2bDr85gMQlSIFD0nST2Q98="; - }; - - 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 = "5.15-tt"; - 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 { })) 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; +} -- cgit 1.4.1