Yocto Rocko 2.4.2构建weston时do_package_qa任务失败求助
解决Yocto Rocko 2.4.2中Weston 2.0的libGLESv2依赖问题
我来帮你搞定这个在Yocto Rocko版本下编译Weston 2.0碰到的依赖错误——我之前在Cortex-A15架构的ARM平台上处理过几乎一模一样的情况,核心问题是你混淆了库文件名和Yocto包名,再加上Rocko版本对GPU驱动依赖的处理逻辑需要特定配置。
问题根源
你直接添加RDEPENDS_weston-examples = "libGLESv2"失败的原因很简单:在Yocto Rocko及更早版本中,libGLESv2不是一个合法的包名,它只是一个库文件的名称,这个库是由GPU驱动包(比如Mesa开源驱动或厂商闭源驱动)提供的,Yocto无法直接找到名为libGLESv2的包。
针对性解决方案
根据你使用的GPU驱动类型,分两种情况处理:
情况1:使用Mesa开源GPU驱动(通用ARM平台)
如果你的平台没有厂商闭源GPU驱动,用的是Mesa的开源实现,按以下步骤操作:
- 确保Mesa编译GLESv2组件
在你的local.conf中添加,开启Mesa的GLES2支持:PACKAGECONFIG_append_pn-mesa = " gles2" - 修正Weston的RDEPENDS配置
将之前错误的libGLESv2替换为Mesa提供的实际包名libgles2-mesa,同样在local.conf中添加:RDEPENDS_libweston-2 += " libgles2-mesa" RDEPENDS_weston-examples += " libgles2-mesa" - 确保必要的Distro特性开启
Weston依赖Wayland和OpenGL特性,确认local.conf中包含:DISTRO_FEATURES_append = " opengl wayland"
情况2:使用瑞萨RZG系列的闭源GPU驱动(你的路径显示是RZG_YoctoProject)
瑞萨RZG平台通常配套有闭源GPU驱动包,需要从对应的meta-renesas层获取,步骤如下:
- 确认驱动包已包含在构建中
确保你的bblayers.conf中添加了瑞萨的GPU驱动meta层(比如meta-renesas/meta-rzg2之类的,具体根据你的RZG型号)。 - 修正Weston的RDEPENDS配置
瑞萨的闭源驱动包通常会RPROVIDESlibGLESv2,对应的包名可能是renesas-gles2或imx-gpu-viv(具体参考瑞萨的官方文档),在local.conf中添加:RDEPENDS_libweston-2 += " renesas-gles2" RDEPENDS_weston-examples += " renesas-gles2"
最后一步:清理缓存并重新构建
修改配置后,清理Weston的旧构建缓存,避免残留问题:
bitbake -c cleanall weston bitbake weston
这样应该就能解决QA阶段的依赖错误,成功编译Weston 2.0了。
内容的提问来源于stack exchange,提问作者Thành M. Hoàng
相关产品推荐
相关产品推荐

