Vim3编译Android11时遇到的问题

FAILED: ninja: ‘device/khadas/kvim3-kernel/4.9/kvim3.dtb’, needed by ‘out/target/product/kvim3/dt.img’, missing and no known rule to make it

你好,我在编译的过程中遇到了该问题,我们查看了您的git仓库,发现并没有提交kvim3-kernel相关的内容,仅有kvim3l-kernel的内容。我们使用khadas-vim3-r-32bit Branch进行编译,在 **android_device_khadas**仓库中并未找到相关内容。 非常着急

kvim3-kernel这个是编译kernel生成的
你将out目录删除,新建build.sh脚本内容如下

#!/bin/bash

PROJECT_PATH=`pwd`
echo $PROJECT_PATH
	
#build uboot
if [ "$1" == 'u' ] || [ "$1" == 'n' ]; then	
	echo "build uboot"
	cd bootloader/uboot
if [ "$2" == 'n' ] || [ "$1" == 'n' ]; then
	#make distclean
	#make clean	
	echo "build uboot n"
fi	
	./mk kvim3 --vab 2>&1 | tee ../../build_vim3_11_uboot.log
	cp build/u-boot.bin ../../device/khadas/kvim3/bootloader.img
	cp build/u-boot.bin.sd.bin ../../device/khadas/kvim3/upgrade/
	cp build/u-boot.bin.usb.* ../../device/khadas/kvim3/upgrade/
	cd -
fi

#build kernel
if [ "$1" == 'k' ] || [ "$1" == 'n' ]; then
	echo "build kernel"
if [ "$2" == 'n' ] || [ "$1" == 'n' ]; then
	make distclean
	#make clean
fi	
	./mk kvim3 -v 4.9 -j50 2>&1 | tee build_vim3_11_kernel.log
fi

#build android
if [ "$1" == 'a' ] || [ "$1" == 'n' ]; then
	echo "build android"
	cd ${PROJECT_PATH}
if [ "$2" == 'n' ] || [ "$1" == 'n' ]; then
	#make clean
	#rm -rf out/
	cd common
	make clean
	make mrproper
	make distclean
	cd -
fi	 
	#export ALLOW_MISSING_DEPENDENCIES=true
	export BOARD_COMPILE_ATV=false
	export BOARD_COMPILE_CTS=false
	. build/envsetup.sh
	lunch kvim3-userdebug
	make installclean
	make -j80  2>&1 | tee build_vim3_11_android.log
	#make otapackage -j80 2>&1 | tee build_vim3_11_ota.log
	#xz -zk out/target/product/kvim3/aml_upgrade_package.img
fi

使用./build.sh,编译失败的话将生成build_vim3_11_uboot.log,build_vim3_11_kernel.log,build_vim3_11_android.log上传给我看看

build_vim3_11_kernel.log中的错误

/bin/sh: 1: bc: not found
/home/aosp/vendor/amlogic/common/kernel/common/./Kbuild:42: recipe for target ‘include/generated/timeconst.h’ failed
make[3]: *** [include/generated/timeconst.h] Error 127
/home/aosp/vendor/amlogic/common/kernel/common/Makefile:1168: recipe for target ‘prepare0’ failed
make[2]: *** [prepare0] Error 2
make[2]: *** Waiting for unfinished jobs…
HOSTCC scripts/dtc/util.o
SHIPPED scripts/dtc/dtc-lexer.lex.c
SHIPPED scripts/dtc/dtc-parser.tab.h
SHIPPED scripts/dtc/dtc-parser.tab.c
HOSTCC scripts/dtc/dtc-lexer.lex.o
HOSTCC scripts/dtc/dtc-parser.tab.o
HOSTLD scripts/genksyms/genksyms
HOSTLD scripts/dtc/dtc
HOSTLD scripts/mod/modpost
Makefile:152: recipe for target ‘sub-make’ failed
make[1]: *** [sub-make] Error 2
Makefile:24: recipe for target ‘__sub-make’ failed
make: *** [__sub-make] Error 2
build kernel error
/bin/sh: 1: bc: not found
/home/aosp/vendor/amlogic/common/kernel/common/./Kbuild:42: recipe for target ‘include/generated/timeconst.h’ failed
make[3]: *** [include/generated/timeconst.h] Error 127
/home/aosp/vendor/amlogic/common/kernel/common/Makefile:1168: recipe for target ‘prepare0’ failed
make[2]: *** [prepare0] Error 2
make[2]: *** Waiting for unfinished jobs…
HOSTCC scripts/dtc/util.o
SHIPPED scripts/dtc/dtc-lexer.lex.c
SHIPPED scripts/dtc/dtc-parser.tab.h
SHIPPED scripts/dtc/dtc-parser.tab.c
HOSTCC scripts/dtc/dtc-lexer.lex.o
HOSTCC scripts/dtc/dtc-parser.tab.o
HOSTLD scripts/genksyms/genksyms
HOSTLD scripts/dtc/dtc
HOSTLD scripts/mod/modpost
Makefile:152: recipe for target ‘sub-make’ failed
make[1]: *** [sub-make] Error 2
Makefile:24: recipe for target ‘__sub-make’ failed
make: *** [__sub-make] Error 2
build kernel error

小哥,我检查了下Log,还是应为缺少一些必要的库,如bc、rsync,当前kernel已经顺利编译成功了。谢谢,幸苦。

工具链记得安装
https://docs.khadas.com/products/sbc/vim3/development/android/install-toolchains