在 yocto 上安装 python-twisted

Installing python-twisted on yocto

我已经成功构建了 yocto core-image-sato 并且进展顺利。现在我正在尝试将配方添加到构建中。我想安装 python-twisted,但失败得很惨。

我发现python-twisted在yocto里好像没有,在openembedded里有。所以我从这里克隆了 openembedded 仓库:

http://git.openembedded.org/meta-openembedded/

然后我将必要的目录添加到 bblayers.conf 中:

BBLAYERS ?= " \
  /home/git/poky/meta \
  /home/git/poky/meta-yocto \
  /home/git/poky/meta-yocto-bsp \
  /home/git/poky/meta-openembedded/meta-oe \
  /home/git/poky/meta-openembedded/meta-python \
  "

当我使用 bitbake -p 解析食谱时,出现以下错误:

Loading cache: 100% |###########################################| ETA:  00:00:00
Loaded 765 entries from dependency cache.                                       
ERROR: ParseError at /home/git/poky/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb:12: Could not inherit file classes/bash-completion.bbclass                                                           

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

我尝试删除有问题的文件,因为我怀疑我是否需要它,但这会导致更严重的错误。

我不知道从这里去哪里。我怀疑问题可能是我从 openembedded 获得的文件与文件 yocto 项目不匹配。但是我不知道该怎么办。

任何有关如何将 python-twisted 添加到 core-image-sato 的帮助将不胜感激。

找不到文件错误,如错误中所述,bb 文件 networkmanager_1.0.10.bb 无法继承 类 下的文件。

解决方法: 如果您尝试从打开的嵌入式复制配方,请尝试复制所有相关文件并根据 yocto.c 进行修改。 在你的情况下

inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection

bash-completion.bbclass 在 类 中缺失。因此,解析错误即将到来。

尝试在可以找到 bbclass 的地方添加 oe-core/classes

这可以在 openembedded-core/meta/classes/ 中找到 https://github.com/openembedded/openembedded-core/tree/master/meta/classes

那么,使用基于 OpenEmbedded 的构建系统时的第一条规则是,确保所有层都使用正确的分支!

查看您要使用的每个附加层中的 READMEREADME 应该指定还需要哪些层,以及这些层的哪些分支。

bash-completion.bbclass 最近被添加到 OE-Core(2016 年 1 月底)。因此,它只是 master 分支的一部分,没有版本包含 class.

networkmanager_1.0.10.bb 仅在 meta-openembedded 的 master 分支中可用。我假设您使用的是 poky (2.0) 的 jethro 版本,以及 meta-openembedded 的主分支。请解决这个问题。

附带说明一下,如果您合并了在 运行 bitbake 时获得的图层信息,那么对您的帮助会容易得多。