一、在构建镜像之前,确保网络环境稳定,网速不要太差,而且编译的时间较长,做好心理准备。
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)在编译的时候,出现以下问题
首先,这个问题出现的原因也一般是因为网络问题没下载下来,多次尝试有可能会将它下载成功,不过不是绝对的,目前有两个解决办法:
①比较粗暴不讲道理的办法:直接将所有包删除重新来,首先删除掉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接口,这个是错误的!正常烧写过程如下:
可以一个接口J11烧写,另外一个接口J14链接串口助手,可以看到烧写过程的信息,完成后烧写软件就自动退掉了,串口信息如下: