Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at master 60 lines 1.6 kB view raw
1{ 2 lib, 3 buildLinux, 4 fetchurl, 5 kernelPatches ? [ ], 6 structuredExtraConfig ? { }, 7 extraMeta ? { }, 8 argsOverride ? { }, 9 ... 10}@args: 11 12let 13 version = "5.4.296-rt100"; # updated by ./update-rt.sh 14 branch = lib.versions.majorMinor version; 15 kversion = builtins.elemAt (lib.splitString "-" version) 0; 16in 17buildLinux ( 18 args 19 // { 20 inherit version; 21 pname = "linux-rt"; 22 23 src = fetchurl { 24 url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; 25 sha256 = "0fm73yqzbzclh2achcj8arpg428d412k2wgmlfmyy6xzb1762qrx"; 26 }; 27 28 kernelPatches = 29 let 30 rt-patch = { 31 name = "rt"; 32 patch = fetchurl { 33 url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; 34 sha256 = "0ggmgkhmnvx4xxb3smfdcafqr9m3qdyc40xp3h7586p4n3wwpw9d"; 35 }; 36 }; 37 in 38 [ rt-patch ] ++ kernelPatches; 39 40 structuredExtraConfig = 41 with lib.kernel; 42 { 43 PREEMPT_RT = yes; 44 # Fix error: unused option: PREEMPT_RT. 45 EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt) 46 # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n'). 47 PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it. 48 # Fix error: unused option: RT_GROUP_SCHED. 49 RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch. 50 } 51 // structuredExtraConfig; 52 53 isLTS = true; 54 55 extraMeta = extraMeta // { 56 inherit branch; 57 }; 58 } 59 // argsOverride 60)