init: dev
This commit is contained in:
75
kernel.nix
Normal file
75
kernel.nix
Normal file
@@ -0,0 +1,75 @@
|
||||
{ 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;
|
||||
}
|
||||
Reference in New Issue
Block a user