1、准备工作参见《Android解决方案-开发指南.pdf》文档。
2、解压HiSTBAndroidV600R001C00SPC060压缩文件到一个文件夹,本文用android取名指代。
3、解压HiSTBAndroidV600R001C00SPC062压缩文件,并把解压后的文件拷贝覆盖到android下面,然后执行clean.sh脚本。
4、解压HiSTBAndroidV600R001C00SPC063压缩文件,并把解压后的文件拷贝覆盖到android下面,然后执行clean.sh脚本。
5、进入android文件夹,执行:
source build/envsetup.sh
lunch Hi3798MV100-eng
make bigfish 2>&1 | tee bigfish.log
进入漫长的编译过程。
编译过程会遇到如下三个问题:
1、内核刚开始编译时提示几个新配置选择后退出,解决办法是:将device/hisilicon/bigfish/sdk/source/kernel/linux-3.10.y/arch/arm/configs/hi3798mv100_android_defconfig中添加:
CONFIG_ARM_HAS_SG_CHAIN=y
# CONFIG_MTD_NAND_HIFMC100_NAND is not set
# CONFIG_MTD_SPINAND_HIFMC100 is not set
然后重新make
2、recovery内核岗开始编译时提示几个新配置选择后退出,解决办法是:将device/hisilicon/bigfish/sdk/source/kernel/linux-3.10.y/arch/arm/configs/hi3798mv100_android_recovery_defconfig拷贝到out/target/product/Hi3798MV100/obj/RECOVERY_OBJ/.config,即:
cp device/hisilicon/bigfish/sdk/source/kernel/linux-3.10.y/arch/arm/configs/hi3798mv100_android_recovery_defconfig out/target/product/Hi3798MV100/obj/RECOVERY_OBJ/.config
然后重新make
3、编译链接libwebviewchromium.so动态库时长时间停滞不动甚至退出编译,这是内存不够用的表现,解决办法是添加交换分区:
export SWAPFILE=/mnt/swapfile
dd if=/dev/zero of=$SWAPFILE bs=1024 count=4194304
mkswap $SWAPFILE
chmod 600 $SWAPFILE
swapon $SWAPFILE
立即生效,不用重新make