From 1569a823aab7a41330f58a285378a854f57c3fe5 Mon Sep 17 00:00:00 2001 From: Waldemar Tomme Date: Wed, 8 Jan 2025 18:52:52 +0100 Subject: [PATCH] Start configuration of android kernel shell --- dev/default.nix | 99 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 96 insertions(+), 3 deletions(-) diff --git a/dev/default.nix b/dev/default.nix index d509562..7e1aacc 100644 --- a/dev/default.nix +++ b/dev/default.nix @@ -168,7 +168,7 @@ rootDir="${rootDir}" mkdir -p "$rootDir/.repos" [[ -d "$rootDir/.repos/mainline-kernel" ]] || git clone git@github.com:WiiPlayer2/linux-sm7150.git "$rootDir/.repos/mainline-kernel" - # [[ -d "$rootDir/.repos/android-kernel" ]] || git clone ssh://git@git.web.home.dark-link.info:2222/a71-pmos/android-kernel-a71.git "$rootDir/.repos/android-kernel" + [[ -d "$rootDir/.repos/android-kernel" ]] || git clone ssh://git@git.web.home.dark-link.info:2222/a71-pmos/android-kernel-a71.git "$rootDir/.repos/android-kernel" '') (writeScriptBin "build-and-flash-kernel" '' #!/usr/bin/env bash @@ -203,10 +203,103 @@ # https://nixos.wiki/wiki/Cross_Compiling android = let + outputFolder = ".out"; in - pkgs.pkgsCross.aarch64-android-prebuilt.mkShell { + (pkgs.buildFHSUserEnv { + name = "android-fhs"; + multiPkgs = pkgs: with pkgs; [ + pkgsCross.aarch64-multiplatform.buildPackages.gcc + bc + openssl + openssl.dev + python3 - }; + android-tools + libxcrypt-legacy # libcrypt.so.1 + freetype # libfreetype.so.6 + fontconfig # java NPE: "sun.awt.FontConfiguration.head" is null + yaml-cpp # necessary for some kernels according to a comment on the gist + + # Some of the packages here are probably unecessary but I don't wanna figure out which + bc + binutils + bison + ccache + curl + flex + gcc + git + git-repo + git-lfs + gnumake + gnupg + gperf + imagemagick + jdk11 + elfutils + libxml2 + libxslt + lz4 + lzop + m4 + nettools + openssl.dev + perl + pngcrush + procps + python3 + rsync + schedtool + SDL + squashfsTools + unzip + util-linux + xml2 + zip + + zlib + ncurses5 + ncurses5.dev + libcxx + readline + + libgcc # crtbeginS.o + iconv # ??? - i put this here and by the time i went back to remove unecessary packages i forgot why + iconv.dev # sys/types.h + + (writeShellScriptBin "clean-kernel" '' + pushd .repos/android-kernel + + mkdir -p "${outputFolder}" + make O="${outputFolder}" clean + make O="${outputFolder}" mrproper + + popd + '') + (writeShellScriptBin "build-kernel" '' + pushd .repos/android-kernel + + mkdir -p "${outputFolder}" + make O="${outputFolder}" a71_eur_open_defconfig + make O="${outputFolder}" -j$(nproc --all) + + popd + '') + (writeShellScriptBin "configure-kernel" '' + pushd .repos/android-kernel + + mkdir -p "${outputFolder}" + make O="${outputFolder}" menuconfig + + popd + '') + ]; + profile = '' + export CROSS_COMPILE=aarch64-unknown-linux-gnu- + export ARCH=arm64 + export SUBARCH=arm64 + ''; + }).env; }; }; }