Android6.0内核移植(1):分析编译日志
在下面命令之后产生的编译日志进行分析
source build/envsetup.sh lunch sabresd_6dq-user make -j20
============================================ PLATFORM_VERSION_CODENAME=REL //平台 PLATFORM_VERSION=6.0.1 TARGET_PRODUCT=sabresd_6dq //目标信息,也就是开发板上的 TARGET_BUILD_VARIANT=user TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=cortex-a9 TARGET_2ND_ARCH= TARGET_2ND_ARCH_VARIANT= TARGET_2ND_CPU_VARIANT= HOST_ARCH=x86_64 //主机信息,也就是当前编译系统的电脑 HOST_OS=linux HOST_OS_EXTRA=Linux-3.16.0-30-generic-x86_64-with-Ubuntu-14.04-trusty HOST_BUILD_TYPE=release BUILD_ID=2.1.0-ga-rc2 OUT_DIR=out ============================================ including ./abi/cpp/Android.mk ... including ./art/Android.mk ... including ./bionic/Android.mk ... including ./bootable/recovery/Android.mk ... including ./build/libs/host/Android.mk ... including ./build/target/board/Android.mk ... including ./build/target/product/security/Android.mk ... including ./build/tools/Android.mk ... 。。。 including ./tools/external/fat32lib/Android.mk ... No private recovery resources for TARGET_DEVICE sabresd_6dq
//编译内核的信息,这里可以看出ARCH,CROSS_COMPILE,最后生成的为uImage make -C kernel_imx -j20 uImage ARCH=arm CROSS_COMPILE=`pwd`/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi- LOADADDR=0x10008000 KCFLAGS=-mno-android for ubootplat in imx6q:mx6qsabresdandroid_config imx6dl:mx6dlsabresdandroid_config imx6q-ldo:mx6qsabresdandroid_config imx6qp:mx6qpsabresdandroid_config; do \ UBOOT_PLATFORM=`echo $ubootplat | cut -d':' -f1`; \ UBOOT_CONFIG=`echo $ubootplat | cut -d':' -f2`; \ echo ; \ echo ; \
//清除uboot make -C bootable/bootloader/uboot-imx/ distclean ARCH=arm CROSS_COMPILE=`pwd`/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-; \ //配置uboot,就类似于kernel的make menuconfig
make -C bootable/bootloader/uboot-imx/ $UBOOT_CONFIG ARCH=arm CROSS_COMPILE=`pwd`/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-; \ //编译uboot
make -C bootable/bootloader/uboot-imx/ ARCH=arm CROSS_COMPILE=`pwd`/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-; \ install -D bootable/bootloader/uboot-imx/u-boot.imx out/target/product/sabresd_6dq/u-boot-$UBOOT_PLATFORM.imx; \ install -D bootable/bootloader/uboot-imx/u-boot.imx out/target/product/sabresd_6dq/u-boot.imx; \ done make[1]: Entering directory `/home/hejin/myandroid/bootable/bootloader/uboot-imx' Copy: out/target/product/sabresd_6dq/root/fstab.freescale CLEAN examples/standalone CLEAN tools CLEAN tools/lib tools/common CLEAN scripts/basic CLEAN scripts/kconfig CLEAN u-boot u-boot.bin u-boot.imx u-boot.lds u-boot.map u-boot.srec System.map 。。。 HOSTCC tools/mkimage.o HOSTCC tools/proftool HOSTCC tools/lib/crc32.o HOSTCC tools/common/bootm.o Image Name: Linux-4.1.15-g419e1f7-dirty Created: Tue Feb 13 11:05:45 2018 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 8715592 Bytes = 8511.32 kB = 8.31 MB Load Address: 10008000 Entry Point: 10008000 Image arch/arm/boot/uImage is ready make[1]: Leaving directory `/home/hejin/myandroid/kernel_imx' HOSTCC tools/lib/fdtdec_common.o
//编译设备树,跟上面类似 make -C kernel_imx dtbs ARCH=arm CROSS_COMPILE=`pwd`/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi- LOADADDR=0x10008000 KCFLAGS=-mno-android HOSTCC tools/lib/fdtdec.o HOSTCC tools/common/image-fit.o HOSTCC tools/common/image.o HOSTCC tools/lib/md5.o HOSTCC tools/lib/sha1.o