VIM3: Android编译出错

VIM3板子。下载好Android源码后,按照文档编译
make -j8 otapackage 时出错。是不是哪里没有配置对?

错误输出:

8)) ]; then echo “WARNING: $printname approaching size limit ($total now; limit $maxsize)”; fi )"
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/media_clock.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/firmware.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/decoder_common.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/stream_input.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_avs.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_avs2.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_mpeg12.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_mmpeg12.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_mpeg4.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_mmpeg4.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_h264.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_mh264.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_h264mvc.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_h265.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_mjpeg.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_mmjpeg.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_vc1.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_vp9.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/amvdec_real.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/encoder.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/vpu.ko’ 的文件状态(stat): 没有那个文件或目录
cp: 无法获取’out/target/product/kvim3/obj/lib_vendor/aml_hardware_dmx.ko’ 的文件状态(stat): 没有那个文件或目录

还有,为什么编译源码后,common下的dts被自动改了

$ git diff
diff --git a/arch/arm/boot/dts/amlogic/kvim3.dts b/arch/arm/boot/dts/amlogic/kvim3.dts
index db00f9f3b9a2…be321608452b 100644
— a/arch/arm/boot/dts/amlogic/kvim3.dts
+++ b/arch/arm/boot/dts/amlogic/kvim3.dts
@@ -17,7 +17,7 @@

/dts-v1/;

-#include “partition_mbox_normal.dtsi”
+#include “partition_mbox_normal_P_32.dtsi”
#include “mesong12b.dtsi”
#include “mesong12b_skt-panel.dtsi”

diff --git a/arch/arm/boot/dts/amlogic/partition_mbox_normal_P_32.dtsi b/arch/arm/boot/dts/amlogic/partition_mbox_normal_P_32.dtsi
index f2c574203d53…ed36266fb893 100644
— a/arch/arm/boot/dts/amlogic/partition_mbox_normal_P_32.dtsi
+++ b/arch/arm/boot/dts/amlogic/partition_mbox_normal_P_32.dtsi
@@ -7,7 +7,7 @@
*
*/

-#include “firmware_normal.dtsi”
+#include “firmware_system.dtsi”

/ {
partitions: partitions{

这是正常的,没有问题。。。。。。。。。。

LOG太少,看不出什么问题。你可以尽量贴更多LOG出来。贴LOG用如下方法修正:

LOG放在这里

image

我把编译的log贴到这里了

1,你的LOG里怎么那么多中文?编译LOG里不应该出现中文
2,你可以先试下单独编译kernel看看会不会报错?

/x/am311d/khadas_vim3_android_source/khadas/common/scripts/Makefile.build:334: recipe for target '/x/am311d/khadas_vim3_android_source/khadas/out/target/product/kvim3/obj/media_modules/frame_provider/decoder/avs/avs.o' failed
make[6]: *** [/x/am311d/khadas_vim3_android_source/khadas/out/target/product/kvim3/obj/media_modules/frame_provider/decoder/avs/avs.o] Error 1
/x/am311d/khadas_vim3_android_source/khadas/common/scripts/Makefile.build:648: recipe for target '/x/am311d/khadas_vim3_android_source/khadas/out/target/product/kvim3/obj/media_modules/frame_provider/decoder/avs' failed
make[5]: *** [/x/am311d/khadas_vim3_android_source/khadas/out/target/product/kvim3/obj/media_modules/frame_provider/decoder/avs] Error 2
/x/am311d/khadas_vim3_android_source/khadas/common/scripts/Makefile.build:648: recipe for target '/x/am311d/khadas_vim3_android_source/khadas/out/target/product/kvim3/obj/media_modules/frame_provider/decoder' failed
make[4]: *** [/x/am311d/khadas_vim3_android_source/khadas/out/target/product/kvim3/obj/media_modules/frame_provider/decoder] Error 2
/x/am311d/khadas_vim3_android_source/khadas/common/scripts/Makefile.build:648: recipe for target '/x/am311d/khadas_vim3_android_source/khadas/out/target/product/kvim3/obj/media_modules/frame_provider' failed
make[3]: *** [/x/am311d/khadas_vim3_android_source/khadas/out/target/product/kvim3/obj/media_modules/frame_provider] Error 2

另外你可以进入此目录:vendor/amlogic/common/external/ffmpeg
看看提交是否跟github一致?git status看看目录是否有问题?

git log
commit b154b90a7e49f29324f5a82c8de0091f5c6389ee (HEAD -> khadas-vim3-pie, tag: Vims-Pie-V190823, m/khadas-vims-pie, m/khadas-vim3-pie, github/khadas-vims-pie)
Author: Zhao Yi <zhao.yi@amlogic.com>
Date:   Thu Jul 4 17:03:15 2019 +0800

    ffmpeg: play failed after seek [1/3]
    
    PD#OTT-4561
    
    Problem:
    Some clipped videos have a shorter duration than
      the duration parsed by ffmpeg.
    If the seek position is larger than the total time,
      ffmpeg will return an error to the player.
    
    Solution:
    return EOF if seek position is larger than total time.
    
    Verify:
    Hisense A311D
    
    Change-Id: Ic50383ba24a1412e2cfd613e1b220495b155c5e6
    Signed-off-by: Zhao Yi <zhao.yi@amlogic.com>

commit a4ef086bedd1c733ef7a7b6b994b10c88dea2da1
Author: shuanglong.wang <shuanglong.wang@amlogic.com>
Date:   Tue Jun 11 16:38:16 2019 +0800

    ffmpeg: avformat_check_dv_meta_el skip non-zero head [1/1]
    
    PD#SWPL-9296
    

本地下载的源码跟github上的少了3个提交。如何sync呢?我做如下操作时就超时了。

repo sync vendor/amlogic/common/external/ffmpeg
Skipped fetching project android_vendor_amlogic_external_ffmpeg (already have persistent ref)

fatal: unable to access 'https://gerrit.googlesource.com/git-repo/': Failed to connect to gerrit.googlesource.com port 443: 连接超时

android sdk环境中,如何单独编译kernel ?
谢谢

你之前是怎么下载代码的?没正确下载完代码,编译肯定有问题。



源码我是按照官方文档操作的,具体就是先
1、从baidu盘下载android的.repo,解压
2、修改manifest.xml,改成清华大学的源
3、然后sync

repo init -u https://github.com/khadas/android_manifest.git -b khadas-vims-pie
repo sync
repo start khadas-vims-pie --all

kernel编译应该是没有问题的,似乎是有些模块没有编译。

/x/am311d/khadas_vim3_android_source/khadas$ ls out/target/product/kvim3/
2ndbootloader              cache.img       installed-files.json          obj                             recovery      utilities
android-info.txt           clean_steps.mk  installed-files-product.json  odm                             recovery.id   vbmeta.img
android_p_overlay_dt.dtbo  data            installed-files-product.txt   previous_build_config.mk        recovery.img  vendor
boot.img                   dex_bootjars    installed-files.txt           product                         root
bootloader.img             dtbo.img        installed-files-vendor.json   product_copy_files_ignored.txt  symbols
build_fingerprint.txt      dt.img          installed-files-vendor.txt    product.img                     system
build_thumbprint.txt       fake_packages   kernel                        ramdisk.img                     upgrade
cache                      gen             kvim3-kernel                  ramdisk-recovery.img            userdata.img

我这边前2周刚从京东的smartfly采购了3块vim3的板子,用于机器人项目。先做前期评估,需要把android编译弄起来 :slight_smile:

sync的log,没有发现问题

有个疑问是,vim3应该选用khadas-vim3-pie分支还是khadas-vims-pie ?

khadas-vims-pie…那你修改下,重新同步下,应该编译就没问题了。


好的。我检查了下,我本地的分支是vim3-pie和vims-pie混用了。我再尝试下。谢谢