Files
linux_rpi4_rt-nix/packages/linux_rpi4_rt_6_1/default.nix
2023-09-27 08:27:12 +03:00

41 lines
1.5 KiB
Nix

{ lib, linuxKernel, linuxPackagesFor, writeText, buildPackages, fetchurl, fetchFromGitHub, raspberrypifw, ... }: rec {
kernel = linuxKernel.kernels.linux_rpi4.override {
argsOverride = rec {
modDirVersion = "6.1.54-rt15";
version = "${modDirVersion}-notag";
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "linux";
rev = "cc08810f89e52337a99cc6ae5f53f08588357c5f";
sha256 = "";
};
kernelPatches = [{
name = "rt";
patch = fetchurl {
url = "https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.1/patch-6.1.54-rt15.patch.xz";
sha256 = "";
};
}] ++ linuxKernel.kernels.linux_rpi4.kernelPatches;
structuredExtraConfig = with lib.kernel; {
#KVM = lib.mkForce no; # Not compatible with PREEMPT_RT. NOTE: this conflict shoulb be fixed in 5.16
PREEMPT_RT = yes;
EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt)
PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it.
RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch.
} // linuxKernel.kernels.linux_rpi4.structuredExtraConfig;
};
};
linuxPackages = (linuxPackagesFor kernel);
firmware = raspberrypifw.overrideAttrs (old: rec {
version = "notag";
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "firmware";
rev = "6b37a457122714aa14b2c7df0926455173fd04f1";
sha256 = "";
};
});
}