1{ lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args:
2
3let
4 version = "5.15.2";
5 release = "1";
6 suffix = "xanmod${release}-tt";
7in
8buildLinux (args // rec {
9 inherit version;
10 modDirVersion = "${version}-${suffix}";
11
12 src = fetchFromGitHub {
13 owner = "xanmod";
14 repo = "linux";
15 rev = modDirVersion;
16 sha256 = "sha256-3tIwj+4xf/I5srEAqECbfH343J5nzCWViq1ZnidZI24=";
17 };
18
19 structuredExtraConfig = with lib.kernel; {
20 # removed options
21 CFS_BANDWIDTH = lib.mkForce (option no);
22 RT_GROUP_SCHED = lib.mkForce (option no);
23 SCHED_AUTOGROUP = lib.mkForce (option no);
24
25 # AMD P-state driver
26 X86_AMD_PSTATE = yes;
27
28 # Linux RNG framework
29 LRNG = yes;
30
31 # Paragon's NTFS3 driver
32 NTFS3_FS = module;
33 NTFS3_LZX_XPRESS = yes;
34 NTFS3_FS_POSIX_ACL = yes;
35
36 # Preemptive Full Tickless Kernel at 500Hz
37 SCHED_CORE = lib.mkForce (option no);
38 PREEMPT_VOLUNTARY = lib.mkForce no;
39 PREEMPT = lib.mkForce yes;
40 NO_HZ_FULL = yes;
41 HZ_500 = yes;
42
43 # Google's BBRv2 TCP congestion Control
44 TCP_CONG_BBR2 = yes;
45 DEFAULT_BBR2 = yes;
46
47 # FQ-PIE Packet Scheduling
48 NET_SCH_DEFAULT = yes;
49 DEFAULT_FQ_PIE = yes;
50
51 # Graysky's additional CPU optimizations
52 CC_OPTIMIZE_FOR_PERFORMANCE_O3 = yes;
53
54 # Android Ashmem and Binder IPC Driver as module for Anbox
55 ASHMEM = module;
56 ANDROID = yes;
57 ANDROID_BINDER_IPC = module;
58 ANDROID_BINDERFS = module;
59 ANDROID_BINDER_DEVICES = freeform "binder,hwbinder,vndbinder";
60
61 # Futex WAIT_MULTIPLE implementation for Wine / Proton Fsync.
62 FUTEX = yes;
63 FUTEX_PI = yes;
64 };
65
66 extraMeta = {
67 branch = "5.15-tt";
68 maintainers = with lib.maintainers; [ fortuneteller2k lovesegfault ];
69 description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
70 broken = stdenv.isAarch64;
71 };
72} // (args.argsOverride or { }))