11 # These names are how they are designated in https://xanmod.org.
13 # NOTE: When updating these, please also take a look at the changes done to
14 # kernel config in the xanmod version commit
18 hash = "sha256-5G3Lo+dWObVDaBRzn2Ho24R2vMjsupx5z2jRIQ0NAl0=";
22 hash = "sha256-vA1/OhhwSKVIaLJ7uN2ut1b1/UX/mIAITQ3BqTZD9Uk=";
36 pname = "linux-xanmod";
37 modDirVersion = lib.versions.pad 3 "${version}-${suffix}";
39 src = fetchFromGitLab {
46 structuredExtraConfig = with lib.kernel; {
47 # CPUFreq governor Performance
48 CPU_FREQ_DEFAULT_GOV_PERFORMANCE = lib.mkOverride 60 yes;
49 CPU_FREQ_DEFAULT_GOV_SCHEDUTIL = lib.mkOverride 60 no;
52 PREEMPT = lib.mkOverride 60 yes;
53 PREEMPT_VOLUNTARY = lib.mkOverride 60 no;
55 # Google's BBRv3 TCP congestion Control
59 # Preemptive Full Tickless Kernel at 250Hz
64 # RCU_BOOST and RCU_EXP_KTHREAD
66 RCU_FANOUT = freeform "64";
67 RCU_FANOUT_LEAF = freeform "16";
69 RCU_BOOST_DELAY = freeform "0";
70 RCU_EXP_KTHREAD = yes;
74 branch = lib.versions.majorMinor version;
75 maintainers = with lib.maintainers; [
83 description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
84 broken = stdenv.hostPlatform.isAarch64;
87 // (args.argsOverride or { })
90 xanmodKernelFor variants.${variant}