我正在学习Yocto,并尝试使用非常详细的example。
当我尝试构建图像(qt5.image
)时,它在解析配方后会返回一些错误:
$bitbake qt5-image
...
ERROR: No recipes available for:
/home/dev/yocto/poky/meta-raspberrypi/recipes-bsp/u-boot/u-boot_2019.07.bbappend
/home/dev/yocto/poky/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16%.bbappend
该错误非常清楚,但是由于这些元数据不是我的而是从官方存储库git://git.yoctoproject.org/meta-raspberrypi
下载的,因此我不确定为什么会发生此错误。
我可以自己修理一些东西吗?
更新:
这里bblayer.conf
的内容我已经调整了路径,但它与上面链接的示例相同:
$ cat conf/bblayers.conf
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
${HOME}/yocto/poky/meta \
${HOME}/yocto/poky/meta-poky \
${HOME}/yocto/poky/meta-openembedded/meta-oe \
${HOME}/yocto/poky/meta-openembedded/meta-multimedia \
${HOME}/yocto/poky/meta-openembedded/meta-networking \
${HOME}/yocto/poky/meta-openembedded/meta-perl \
${HOME}/yocto/poky/meta-openembedded/meta-python \
${HOME}/yocto/poky/meta-qt5 \
${HOME}/yocto/poky/meta-raspberrypi \
${HOME}/rpi/meta-rpi \
"
答案 0 :(得分:2)
该错误消息告诉您,meta-raspberrypi层正在尝试修改它预期存在于另一层中的配方。在这种情况下,u-boot和gstreamer1.0-omx配方来自“元”(因此yocto / openembedded主层)。
您应该检查所有图层是否都使用相同的分支(并且都是最新的)。我猜测您的元层(通常来自poky git)在某个发行分支上,而您的meta-raspberrypi使用的是master。在这种情况下,构建会像您的构建一样失败(例如,gstreamer1.0-omx将是1.14.4版本,而bbappend将寻找另一个版本)。
答案 1 :(得分:2)
我遇到了同样的问题,我所做的是用与poky分支相对应的分支来检出meta-raspberrypi:
git clone -b warrior git://git.yoctoproject.org/poky
cd poky
git clone -b warrior git://git.yoctoproject.org/meta-raspberrypi
source oe-init-build-env
bitbake rpi-basic-image
答案 2 :(得分:1)
您可以确保bblayers.conf文件中包含“ meta-raspberrypi”。您可以检查
中包含的这一层build-*/conf/bblayers.conf
如果不包含此层,则将该层添加到bblayers.conf中的bbpath中并重新构建。
如果仍然可用,请发送完整的错误日志?