Yocto Scarthgap版本meta-raspberrypi层兼容问题及BSP构建求助
问题描述
我下载了meta-raspberrypi层并切换到Scarthgap分支(LTS版本):
meta-raspberrypi(folder)$git branch -r ... origin/scarthgap ... meta-raspberrypi(folder)$git checkout -b scarthgap //set branch scarthgap
随后遵循官方快速开始指南操作,下载Yocto poky并切换到Scarthgap分支,执行以下命令初始化构建环境:
poky(folder)$ source oe-init-build-env ../rpi-build ../rpi-build$
尝试添加meta-raspberrypi层时失败:
rpi-build$ bitbake-layers add-layer ~/workspace/yocto/meta-raspberrypi/ NOTE: Starting bitbake server... ERROR: Layer raspberrypi is not compatible with the core layer which only supports these series: scarthgap (layer is compatible with walnascar styhead) ERROR: Parse failure with the specified layer added, exiting.
手动修改bblayers.conf添加该层后,执行bitbake core-image-minimal仍报错:
Parsing of 958 .bb files complete (0 cached, 958 parsed). 1914 targets, 72 skipped, 0 masked, 0 errors. ERROR: No recipes in default available for: /home/daniel/workspace/yocto/meta-raspberrypi/recipes-graphics/mesa/mesa-gl.bbappend /home/daniel/workspace/yocto/meta-raspberrypi/recipes-graphics/mesa/mesa.bbappend
作为Yocto新手,请问操作有误吗?或者如何使用Yocto Scarthgap构建树莓派BSP?
解决方案
1. 修正meta-raspberrypi分支兼容性问题
报错显示meta-raspberrypi层仅兼容walnascar/styhead版本,说明你本地的scarthgap分支内容未适配Yocto Scarthgap,按以下步骤修正:
- 进入meta-raspberrypi目录,拉取最新远程分支代码:
cd ~/workspace/yocto/meta-raspberrypi git fetch origin - 重新基于远程scarthgap分支创建本地分支(覆盖旧分支):
git checkout -B scarthgap origin/scarthgap - 检查
conf/layer.conf文件中的兼容性配置,确认LAYERSERIES_COMPAT_raspberrypi字段包含scarthgap:
正常输出应为grep LAYERSERIES_COMPAT_raspberrypi conf/layer.confLAYERSERIES_COMPAT_raspberrypi = "scarthgap"或包含该值;若仍显示旧版本代号,说明该分支暂未适配,可尝试使用meta-raspberrypi的master分支(需确认master是否兼容Scarthgap),或等待官方更新scarthgap分支。
2. 解决mesa bbappend找不到recipe的问题
meta-raspberrypi依赖meta-openembedded的多个子层,缺少这些层会导致bbappend文件找不到对应主recipe,按以下步骤添加:
- 下载meta-openembedded仓库并切换到Scarthgap分支:
cd ~/workspace/yocto git clone https://git.openembedded.org/meta-openembedded cd meta-openembedded git checkout scarthgap - 在构建目录中添加必要的依赖层:
cd ~/workspace/yocto/rpi-build bitbake-layers add-layer ~/workspace/yocto/meta-openembedded/meta-oe bitbake-layers add-layer ~/workspace/yocto/meta-openembedded/meta-multimedia bitbake-layers add-layer ~/workspace/yocto/meta-openembedded/meta-networking - 重新执行构建命令:
bitbake core-image-minimal
内容的提问来源于stack exchange,提问作者user1911091
相关产品推荐
相关产品推荐

