Hello, I m trying to build android Q for imx8mm. I downloaded BSP package Q10.0.0_1.0.0_ANDROID_SOURCE and synced the sources. I should say, that OS is already set up and I have successfully built android 9 Pie. Lets see error:
jenkins@build:~/nxp/imx-android-10.0.0_1.0.0/android_build$ make bootimage -j33
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=10
TARGET_PRODUCT=evk_8mm
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=cortex-a53
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a9
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.0.0-38-generic-x86_64-Ubuntu-19.04
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=QD1A.190821.014.C2
OUT_DIR=out
============================================
vendor/nxp/fsl-proprietary/bcm/Android.mk was modified, regenerating...
[ 33% 158/467] including external/mesa3d/Android.mk ...
external/mesa3d/Android.mk:73: warning: invalid GPU driver: vivante
[ 99% 466/467] finishing build rules ...
platform_testing/build/tasks/tests/instrumentation_test_list.mk: warning: continuous_instrumentation_tests: Unknown installed file for module 'NexusLauncherOutOfProcTests'
platform_testing/build/tasks/tests/instrumentation_test_list.mk: warning: continuous_instrumentation_tests: Unknown installed file for module 'NexusLauncherDebug'
platform_testing/build/tasks/tests/instrumentation_test_list.mk: warning: continuous_instrumentation_tests: Unknown installed file for module 'NexusLauncherTests'
platform_testing/build/tasks/tests/platform_test_list.mk: warning: platform_tests: Unknown installed file for module 'LauncherRotationStressTest'
platform_testing/build/tasks/tests/platform_test_list.mk: warning: platform_tests: Unknown installed file for module 'PlatformScenarioTests'
FAILED: ninja: 'out/target/product/evk_8mm/obj/KERNEL_OBJ/arch/arm64/boot/Image', needed by 'out/target/product/evk_8mm/kernel', missing and no known rule to make it
13:43:09 ninja failed with: exit status 1
#### failed to build some targets (01:31 (mm:ss)) ####
Solved! Go to Solution.
Hi Евгений,
the error says that the Linux kernel has not been compiled. The documentation says that there is a shell script "${MY_ANDROID}/imx-make.sh" that should be run first to compile U-Boot/Kernel before compiling Android. Did the script execute without errors?
Hello Евгений,
the documentation has an explanation (Android_User's_Guide.pdf ):
The original purpose of this "imx-make.sh" is to build U-Boot/kernel before building Android images.
Google started to put a limit on the host tools used when compiling Android code from Android10.0. Some host tools necessary for building U-Boot/kernel now cannot be used in the Android build system, which is under the control of soong_ui, so U-Boot/kernel cannot be built together with Android images. Google also recommends to use prebuilt binaries for U-Boot/kernel in Android build system. It takes some steps to build U-Boot/kernel to binaries and put these binaries in proper directories, so some specific Android images depending on these binaries can be built without error. "imx-make.sh" is then added to do these steps to simplify the build work. After U-Boot/kernel are compiled, any build commands in standard Android can be used.
It is a natural fact that things change in our line of work. Actually It is more susprising for me when things don't change :smileyhappy:
Hi Евгений,
the error says that the Linux kernel has not been compiled. The documentation says that there is a shell script "${MY_ANDROID}/imx-make.sh" that should be run first to compile U-Boot/Kernel before compiling Android. Did the script execute without errors?
Thank you, indeed, despite of Pie version building fine without any proprietary scripts. Just execute make bootimage | make | make systemimage | make whatever and it's fine as we get used to in AOSP| LineageOS | ALPS | etc
But in Q version I should execute ${MY_ANDROID}/imx-make.sh kernel before make bootimage. It's a little bit strange, isn't it?