xilinx ultra96 2018.3以上版本BSP制作镜像时运行时间过长、内存耗尽的分析和解决

如果你的计算机有50G以上内存给petalinux用,请忽略本文章。

Avnet ultra96提供的2018.3和2019.1这两个BSP版本因加入对chrome浏览器的支持,编译时间在普通计算机上变得无限长,内存耗尽而最后出错退出。运算截图如下:
在这里插入图片描述
漫长时间后,程序出错退出
在这里插入图片描述
错误如下:
| collect2: fatal error: ld terminated with signal 9 [Killed]
| ERROR: Function failed: do_compile (log file is located at /home/john/ultra96v2/v2/build/tmp/work/aarch64-xilinx-linux/webkitgtk/2.18.6-r0/temp/log.do_compile.11461)
| ERROR: Task (/home/john/petalinux2018.3/components/yocto/source/aarch64/layers/core/meta/recipes-sato/webkit/webkitgtk_2.18.6.bb:do_compile) failed with exit code ‘1’

经查 fatal error: ld terminated with signal 9 [Killed——是由于内存不足造成,
在这里插入图片描述
我设想这是由于制作rootfs文件时出的错,因此尝试直接配置根文件
petalinux-build -c rootfs
在这里插入图片描述
在这里插入图片描述
经检查webkitgtk选项没有勾选,但编译时仍会编译webkitgtk, 经分析这个选项与项目无关,ultra96 BSP作为一个通用设置仍会编译这个选项,这种办法无效。

(/home/john/petalinux2018.3/components/yocto/source/aarch64/layers/core/meta/recipes-sato/webkit/webkitgtk_2.18.6.bb:do_compile) failed with exit code ‘1’

只有采用编辑文件的方式强行删除这个选项,找到webkitgkt所在的 recipe, /home/john/petalinux2018.3/components/yocto/source/aarch64/layers/core/meta/recipes-sato/webkit/webkitgtk_2.18.6.bb,删掉这个文件。

再执行petalinux-build时,发现如下错误:

Missing or unbuildable dependency chain was: [‘petalinux-user-image’, ‘packagegroup-petalinux-self-hosted’, ‘packagegroup-self-hosted’, ‘epiphany’, ‘webkitgtk’]

ERROR: Nothing PROVIDES ‘webkitgtk’ (but /home/john/petalinux2018.3/components/yocto/source/aarch64/layers/core/meta/recipes-gnome/epiphany/epiphany_3.24.3.bb DEPENDS on or otherwise requires it).

ERROR: Nothing RPROVIDES ‘epiphany’ (but /home/john/petalinux2018.3/components/yocto/source/aarch64/layers/core/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb RDEPENDS on or otherwise requires it)
在这里插入图片描述
epiphany.bb需要webkitgtk_2.18.6.bb,而packagegroup-self-hosted.bb需要epiphany.bb文件,因此我们必须修改packagegroup-self-hosted.bb,将文件备份后,将其中的选项epiphany一行删掉。

在这里插入图片描述
在这里插入图片描述
再编译程序,发现另一个程序chromium也耗时很长,内存耗尽
在这里插入图片描述
在这里插入图片描述
删掉后运行petalinux-build, 发现packagegroup-petalinux-ultra96-webapp需要chrome, petalinux-user-image.bb需要packagegroup-petalinux-ultra96-webapp, 如下图。

ERROR: Nothing RPROVIDES ‘packagegroup-petalinux-ultra96-webapp’ (but /home/john/ultra96v2/v2/project-spec/meta-plnx-generated/recipes-core/images/petalinux-user-image.bb RDEPENDS on or otherwise requires it)
ERROR: Nothing RPROVIDES ‘ultra96-startup-pages’ (but /home/john/petalinux2018.3/components/yocto/source/aarch64/layers/meta-petalinux/recipes-core/packagegroups/packagegroup-petalinux-ultra96-webapp.bb RDEPENDS on or otherwise requires it)
在这里插入图片描述
在这里插入图片描述
直接编辑/packagegroup-petalinux-ultra96-webapp.bb这个文件, 将packagegroup-petalinux-ultra96-webapp一行删掉。 在这里插入图片描述
总之,将两个安装包2018.3 petalinux本身自带的通用安装包epiphany和项目特定的安装包 packagegroup-petalinux-ultra96-webapp全部删除,即可避免过长时间编译、内存溢出。

下面作者采取了直接修改makefile文件的办法,我感觉很复杂,不好操作
http://downloads.element14.com/downloads/zedboard/ultra96/ultra96v2_oob_2019_1.zip?ICID=ultra96v2-datasheet-widget&

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值