Yes but there are no factory images released, so I don’t have access to a stock boot.img.
The stock kernel config has the option CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y
set which basically takes all compiled .dtb files and appends them to the zImage. Then the bootloader picks out the dtb it needs based on qcom,board-id
and other similar properties; and as far as I understand the problem that a self-compiled kernel doesn’t boot is that the dtb the bootloader exists isn’t present in the sources (but I might be wrong there, it’s my current interpretation )
Take this branch: Commits · FairphoneMirrors/android_kernel_fairphone_sdm632 · GitHub
Download some cross compiler for aarch64/arm64 (e.g. from Linaro or from your Linux distribution - on Arch Linux it’s the package aarch64-linux-gnu-gcc
).
Then run something like
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
make msm8953-perf_defconfig
# override CC= in that command so gcc-wrapper.py doesn't run and find 'disallowed warnings' that we don't care about
make -j9 CC=aarch64-linux-gnu-gcc
If you have downloaded the cross compiler you maybe have to adjust the CROSS_COMPILE
variable so the gcc binary is named ${CROSS_COMPILE}gcc
, and also adjust your PATH
variable so that the folder where your binaries are are in your PATH
.