使用 Yocto构建米尔MYIR-MYD-JX8MP开发板镜像----构建过程中的问题及解决办法

一、在构建镜像之前,确保网络环境稳定,网速不要太差,而且编译的时间较长,做好心理准备。

1)在编译的时候,出现如下问题:

ERROR: Task (/home/duxy/myd-jx8mp-yocto/sources/meta-myir/meta-ml/recipes
-libraries/tensorflow-lite/tensorflow-lite_2.4.0.bb:do_configure) failed with exit co
de '1' 

上面可能出错的原因一般是由于网络差,导致这个包的一些组件没下载完整,请按照以下方式解决。 直接在/myd-jx8mp-yocto/build-xwayland/文件夹搜索 download_dependencies.sh 屏蔽掉依赖下载,屏蔽掉如下部分:

#download_and_extract "${EIGEN_URL}" "${DOWNLOADS_DIR}/eigen" "${EIGEN_S
HA}" 
#download_and_extract "${GEMMLOWP_URL}" "${DOWNLOADS_DIR}/gemmlowp
" "${GEMMLOWP_SHA}" 
#download_and_extract "${RUY_URL}" "${DOWNLOADS_DIR}/ruy" "${RUY_SHA}" 
#download_and_extract "${GOOGLETEST_URL}" "${DOWNLOADS_DIR}/googletest
" "${GOOGLETEST_SHA}" 
MYIR-MYD-JX8MP-SW-DG-ZH-L5.10.9                                                     
 - 19 - 
#download_and_extract "${ABSL_URL}" "${DOWNLOADS_DIR}/absl" "${ABSL_SHA}
" 
#download_and_extract "${NEON_2_SSE_URL}" "${DOWNLOADS_DIR}/neon_2_sse
" 
#download_and_extract "${FARMHASH_URL}" "${DOWNLOADS_DIR}/farmhash" "
${FARMHASH_SHA}" 
#download_and_extract "${FLATBUFFERS_URL}" "${DOWNLOADS_DIR}/flatbuffers"
 "${FLATBUFFERS_SHA}" 
#download_and_extract "${FFT2D_URL}" "${DOWNLOADS_DIR}/fft2d" "${FFT2D_S
HA}" 
#download_and_extract "${FP16_URL}" "${DOWNLOADS_DIR}/fp16" "${FP16_SHA}
" 
#download_and_extract "${CPUINFO_URL}" "${DOWNLOADS_DIR}/cpuinfo" "${CP
UINFO_SHA}" 
#download_and_extract "${RE2_URL}" "${DOWNLOADS_DIR}/re2" ${RE2_SHA} 

         然后,由于之前的下载没有将这个包下载完整,删除先前下载目录 : 
        PC$ rm downloads -rf 

        注意:这里的downloads并不是那个40G的那个文件,注意别删除错了,这个文件路径是/opt/myd-jx8mp-yocto/build-xwayland/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.4.0-r0/git/tensorflow/lite/tools/make/,删除 downloads之后,用户需要拷贝已经下载好的 download压缩包到该目录,然后解压,文件在目录 04-Source/tensorflow_lite-downloads.tar.gz

        修改完成之后,重新构建系统,构建完成之后,

        编译出来的镜像在”build-xwayland/tmp/deploy/images/myd-jx8mp“目录。

        如果修改完这两部分后,依然无法编译通过,还是报最开始的错误,尝试下删除下面文件
/opt/myd-jx8mp-yocto/sources/meta-myir/meta-sdk/recipes-fsl/images/myir-image-full.bb 中的 ${ML_PKGS} \ ,然后再重新编译。

        如果还是不行,那么就在房屋的东南西北角各烧一炷香,中间桌子摆上猪头拜一拜吧。。。博主也无能为力了。。。

        开个玩笑,还解决不了赶紧打电话联系技术支持吧!

2)在编译的时候,出现以下问题

使用 Yocto构建米尔MYIR-MYD-JX8MP开发板镜像----构建过程中的问题及解决办法_第1张图片

        首先,这个问题出现的原因也一般是因为网络问题没下载下来,多次尝试有可能会将它下载成功,不过不是绝对的,目前有两个解决办法:

        ①比较粗暴不讲道理的办法:直接将所有包删除重新来,首先删除掉downloads那个40G的大文件夹,然后再删除myd-jx8mp-yocto文件夹,然后,重启下电脑,再重新解压下这两个包,然后再执行编译指令,一般会解决。。。(博主自己尝试几次得出的结论,很奇怪,无法理解)

        ②科学且讲道理的办法,比较麻烦:

在文件夹中找到这个文件:

sources/meta-myir/meta-sdk/dynamic-layers/qt5-layer/recipes-fsl/packagegroup/packagegroup-qt5-imx.bb

然后,删掉 26 行的

“   ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nxp-demo-experience', '', d)}\   ”

再找到 sources/meta-myir/meta-sdk/recipes-fsl/images/imx-image-multimedia.bb 这个文件

 删掉82行的  “ nxp-demo-experience \”

然后再编译imx-boot, 编译前请仔细看下软件开发手册关于编译uboot的过程。

            1.需要现把uboot源码放到本地

            2.修改源码,提交commit

            3. 修改sources/meta-myir/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2020.04.bb 里面改成本地URI,comit值

            4. 编译imx-boot:bitbake -c cleansstate u-boot; bitbake imx-boot

        以上方法基本会解决 “nxp-demo-experience” 这个包下载不下来的问题,再次强调下,网速尽可能好,预留的内存一定要够,不然编译起来是真难受。。。

 3)执行:bitbake myir-image-full --runall=fetch ,提示如下错误:

NOTE: Reconnecting to bitbake server...

NOTE: Retrying server connection (#1)... (Traceback (most recent call last):

  File "/opt/myd-jx8mp-yocto/sources/poky/bitbake/lib/bb/main.py", line 453, in setup_bitbake

    server_connection = bb.server.process.connectProcessServer(sockname, featureset)

  File "/opt/myd-jx8mp-yocto/sources/poky/bitbake/lib/bb/server/process.py", line 573, in connectProcessServer

    sock.connect(os.path.basename(sockname))

BlockingIOError: [Errno 11] Resource temporarily unavailable

)

        这个错误意思是说bitbake 服务器链接异常,重启一下服务器再试下就行

4)编译时间非常长,几乎不动

可以选择,把编译个数减少, qt 和opencv编译都非常吃内存。把 build-xwayland/conf/local.conf 这个文件改下。 改多少可选, 一次编译一个包, 一个包采用几个线程编译

BB_NUMBER_THREADS = "1" 
PARALLEL_MAKE = "-j 1"

  另外开一个窗口,采用root权限,运行如下指令,每隔10分钟清理一下缓存: 

while [ 1 ];do echo 1 > /proc/sys/vm/drop_caches;sleep 600;done

   二、镜像文件烧写

1)通过UUU文件烧写,选择开发板启动模式,将拨码开关拨到 USB 下载模式 SW1(OFF,OFF,OFF,ON)。然后 连接好硬件,将开发板的 J11 TYPEC DPR接口与电脑连接。插入 12V电源适配器。注意:文档中说的是J4接口,这个是错误的!正常烧写过程如下:

使用 Yocto构建米尔MYIR-MYD-JX8MP开发板镜像----构建过程中的问题及解决办法_第2张图片

         可以一个接口J11烧写,另外一个接口J14链接串口助手,可以看到烧写过程的信息,完成后烧写软件就自动退掉了,串口信息如下:

使用 Yocto构建米尔MYIR-MYD-JX8MP开发板镜像----构建过程中的问题及解决办法_第3张图片

 

 

你可能感兴趣的:(嵌入式开发,linux,arm开发)