[Upgrading, Modifying and Unlocking] mateusfmcota:
Hi, I'm wanting to compile the mi-a3 kernel to use with GrapheneOs(as it needs to be compiled before the rom compilation).

I'm trying to compile it with this script:

#!/bin/bash

set -o errexit -o pipefail

[[ $# -eq 1 ]] || exit 1

DEVICE=$1

if [[ $DEVICE != laurel_sprout && $DEVICE != blueline && $DEVICE != crosshatch && $DEVICE != bonito ]]; then
echo invalid device codename
exit 1
fi

ROOT_DIR=$(realpath ../../..)

export KBUILD_BUILD_VERSION=1
export KBUILD_BUILD_USER=grapheneos
export KBUILD_BUILD_HOST=grapheneos
export KBUILD_BUILD_TIMESTAMP="$(date -d "@$(git --no-pager show -s --format=%ct)")"

PATH="$ROOT_DIR/prebuilts/build-tools/linux-x86/bin:$PATH"
PATH="$ROOT_DIR/prebuilts/build-tools/path/linux-x86:$PATH"
PATH="$ROOT_DIR/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin:$PATH"
PATH="$ROOT_DIR/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin:$PATH"
PATH="$ROOT_DIR/prebuilts/clang/host/linux-x86/clang-r383902/bin:$PATH"
PATH="$ROOT_DIR/prebuilts/misc/linux-x86/lz4:$PATH"
PATH="$ROOT_DIR/prebuilts/misc/linux-x86/dtc:$PATH"
PATH="$ROOT_DIR/prebuilts/misc/linux-x86/libufdt:$PATH"
export LD_LIBRARY_PATH="$ROOT_DIR/prebuilts/clang/host/linux-x86/clang-r383902/lib64:$LD_LIBRARY_PATH"

chrt -bp 0 $$

make \
O=out \
ARCH=arm64 \
CC=clang \
HOSTCC=clang \
HOSTCXX=clang++ \
CLANG_TRIPLE=aarch64-linux-gnu- \
CROSS_COMPILE=aarch64-linux-android- \
CROSS_COMPILE_ARM32=arm-linux-androideabi- \
vendor/laurel_sprout-perf_defconfig

make -j$(nproc) \
O=out \
ARCH=arm64 \
CC=clang \
HOSTCC=clang \
HOSTCXX=clang++ \
CLANG_TRIPLE=aarch64-linux-gnu- \
CROSS_COMPILE=aarch64-linux-android- \
CROSS_COMPILE_ARM32=arm-linux-androideabi-

mkdir -p "$ROOT_DIR/device/xiaomi/$DEVICE-kernel"
cp out/arch/arm64/boot/{dtbo.img,Image.lz4} "$ROOT_DIR/device/xiaomi/$DEVICE-kernel"

which I modified from the one at kernel/google/crosshatch/build.sh on the grapheneOs android 10 repo.

But when I run the script I get an make error, this is the last few lines from the script when it throws the error out:

../drivers/usb/phy/phy-msm-qusb.c:1086:4: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation]
dev_err(dev, "couldn't get iface_clk(%d)\n", ret);
^
../drivers/usb/phy/phy-msm-qusb.c:1084:3: note: previous statement is here
if (ret == -EPROBE_DEFER)
^
CC drivers/usb/storage/transport.o
1 warning generated.
CC drivers/usb/storage/usb.o
CC drivers/usb/storage/initializers.o
AR drivers/usb/phy/built-in.o
CC drivers/usb/storage/sierra_ms.o
CC drivers/usb/storage/option_ms.o
CC drivers/usb/storage/usual-tables.o
AR drivers/usb/storage/usb-storage.o
AR drivers/usb/storage/built-in.o
AR drivers/usb/built-in.o
AR drivers/built-in.o
make[1]: Saindo do diretório '/run/media/cota/47053fcc-4636-4d26-8e40-bb11fa4e2e05/Android/grapheneos-RP1A.201105.002.2020.11.03.03/kernel/xiaomi/laurel_sprout/out'

make: *** [Makefile:146: sub-make] Erro 2

I think the problem with this is the defconfig I used, which was located at arch/arm64/configs/vendor/laurel_sprout-perf_defconfig as I don't know which one I should use but can anyone help me into compiling the kernel?

kernel link

thanks.