问题描述
我正在尝试使用 Yocto 为 Xilinx 评估板 ZCU104 构建我的第一个映像。由于我只是一个初学者,我安装了使用 Poky 所需的软件包并坚持以下简单步骤:
- 我克隆了 Poky:
git clone git://git.yoctoproject.org/poky
-
source oe-init-build-env
:创建了一个构建目录。 - 在构建目录中,我克隆了 meta-xilinx 层:
git clone git@github.com:Xilinx/meta-xilinx.git
- 我阅读了 meta-xilinx/meta-xilinx-bsp 中的
README.md
和README.building.md
文件,以了解接下来要做什么。 - 我使用命令
bitbake-layers add-layer
添加以下图层:meta-xilinx-bsp
、meta-xilinx-standalone
和meta-xilinx-contrib
。我可以在bblayers.conf
中看到这些层。 - 我在 local.conf 中编辑了 MACHINE:
MACHINE ?= zcu104-zynqmp
- 我觉得我很高兴,所以我打电话给
bitbake -k core-image-minimal
并期待构建成功。
Bitbake 开始解析,直到抛出以下错误:
错误:解析错误在 //poky/build/meta-xilinx/meta-xilinx-bsp/recipes-bsp/uboot-device-tree/uboot-device-tree.bb:11: 无法继承文件 classes/xsctdt.bbclass
我在 /meta-xilinx-bsp/classes 下寻找那个类,但它不在那里,但我在 meta-xilinx 存储库中找到了它,所以我开始想知道为什么我没有得到那个类(以及其他类)。 请注意,我还没有切换到任何分支(yocto 或 meta-xilinx),我留在主分支上。从两个项目切换到最新标签后,我再次尝试,但出现以下错误:
错误:xilinx 层与核心层不兼容 支持这些系列:gatesgarth(层与zeus兼容)
接下来我应该尝试什么?我应该结账其他分行吗?如果是这样,是否有任何索引可以链接正确的 yocto 和 meta-xilinx 分支? 无论如何,当我克隆它时,我怎么会从存储库中缺少必要的类? 非常感谢!
解决方法
检查在您使用的每个层中以相同方式命名的分支(包括 poky)。分支通常以 Yocto 版本命名。通常明智的做法是避免使用 master 分支。
如果某个层没有给定 Yocto 版本的分支,请查看似乎是最近的分支并检查 conf/layer.conf
以获取 LAYERSERIES_COMPAT
变量。找到一个带有 LAYERSERIES_COMPAT
的分支,其中包含您要使用的 Yocto 版本。如果没有,您需要将 Yocto 版本添加到所述变量并在此过程中修复问题,直到它编译并且一切正常。
c.f.:https://docs.yoctoproject.org/ref-manual/variables.html#term-LAYERSERIES_COMPAT