aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix')
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
new file mode 100644
index 00000000000..7c77454040d
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
@@ -0,0 +1,41 @@
+{ lib, buildLinux, fetchurl
+, kernelPatches ? [ ]
+, structuredExtraConfig ? {}
+, extraMeta ? {}
+, argsOverride ? {}
+, ... } @ args:
+
+let
+ version = "5.6.19-rt12"; # updated by ./update-rt.sh
+ branch = lib.versions.majorMinor version;
+ kversion = builtins.elemAt (lib.splitString "-" version) 0;
+in buildLinux (args // {
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
+ sha256 = "1s0yc1138sglbm4vyizl4r7hnc1l7nykdjp4063ad67yayr2ylv2";
+ };
+
+ kernelPatches = let rt-patch = {
+ name = "rt";
+ patch = fetchurl {
+ url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
+ sha256 = "0ia8rx0615x0z2s4ppw1244crg7c5ak07c9n3wbnz7y8bk8hyxws";
+ };
+ }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
+
+ structuredExtraConfig = with lib.kernel; {
+ PREEMPT_RT = yes;
+ # Fix error: unused option: PREEMPT_RT.
+ EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt)
+ # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n').
+ PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it.
+ # Fix error: unused option: RT_GROUP_SCHED.
+ RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch.
+ } // structuredExtraConfig;
+
+ extraMeta = extraMeta // {
+ inherit branch;
+ };
+} // argsOverride)