76 lines
1.1 KiB
Nix
76 lines
1.1 KiB
Nix
{ pkgs }:
|
|
{
|
|
url,
|
|
rev,
|
|
hash,
|
|
configGz,
|
|
}:
|
|
|
|
let
|
|
kernelSrc = pkgs.fetchgit {
|
|
inherit url rev hash;
|
|
fetchSubmodules = false;
|
|
deepClone = false;
|
|
leaveDotGit = false;
|
|
|
|
postFetch = ''
|
|
rm -f $out/.gitmodules
|
|
'';
|
|
};
|
|
|
|
stdenv = pkgs.stdenv;
|
|
in
|
|
stdenv.mkDerivation {
|
|
pname = "kernel-env-prepared";
|
|
version = "0.01";
|
|
|
|
src = kernelSrc;
|
|
|
|
nativeBuildInputs =
|
|
with pkgs.buildPackages;
|
|
[
|
|
bc
|
|
bison
|
|
flex
|
|
openssl
|
|
rsync
|
|
perl
|
|
]
|
|
++ [
|
|
pkgs.pkgsCross.aarch64-multiplatform.buildPackages.gcc
|
|
];
|
|
|
|
sourceRoot = ".";
|
|
|
|
setSourceRoot = "sourceRoot=$(echo */)";
|
|
env = {
|
|
ARCH = "arm64";
|
|
CROSS_COMPILE = "aarch64-unknown-linux-gnu-";
|
|
KCFLAGS = "-Wno-error";
|
|
HOSTCC = "gcc";
|
|
};
|
|
|
|
postPatch = ''
|
|
[ -f drivers/Kconfig ] && sed -i '/kernelsu/d' drivers/Kconfig
|
|
patchShebangs scripts/
|
|
'';
|
|
|
|
configurePhase = ''
|
|
zcat ${configGz} > .config
|
|
|
|
make olddefconfig
|
|
'';
|
|
|
|
buildPhase = ''
|
|
export KCFLAGS="-Wno-error"
|
|
make modules_prepare -j$(nproc)
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp -r . $out/
|
|
'';
|
|
|
|
dontFixup = true;
|
|
}
|