aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix')
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
new file mode 100644
index 00000000000..b59a367c4ad
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -0,0 +1,41 @@
+{ lib, buildLinux, fetchurl
+, kernelPatches ? [ ]
+, structuredExtraConfig ? {}
+, extraMeta ? {}
+, argsOverride ? {}
+, ... } @ args:
+
+let
+ version = "5.4.61-rt37"; # 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 = "197y2yb60m1k8i7mig4pa9wsrklfxq81ba3zfahwb2b31w2kvwc6";
+ };
+
+ kernelPatches = let rt-patch = {
+ name = "rt";
+ patch = fetchurl {
+ url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
+ sha256 = "1qgd55x62pczgmxcxbigkg6f622ma5a6mz4gi55a8mlbxzh2pddj";
+ };
+ }; 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)