如何列出用于使用bitbake构建特定包的所有.bb和.bbappend文件?

时间:2015-06-07 02:20:52

标签: linux embedded-linux yocto bitbake

让我们考虑一下“虚拟/内核”包。 我想知道构建此软件包涉及哪个.bb和.bbappend文件。

我知道我可以通过以下方式获取包裹名称:

  

bitbake -e virtual / kernel | grep ^ BP =

这个命令为我提供了用于构建虚拟/内核的包的名称,在我的例子中是linux-fslc-4.0+gitAUTOINC+19ebefd40a。 但是,我不知道如何获取用于构建linux-fslc-4.0+gitAUTOINC+19ebefd40a包的.bb和.bbappend文件列表(包括其位置)。

3 个答案:

答案 0 :(得分:7)

您可以使用

bitbake-layers show-appends

列出使用.bbappend文件扩展的所有配方。它将指示所有此类文件的优先级和位置。

答案 1 :(得分:6)

首先,您应该意识到构建单个程序包可能涉及许多文件,尤其是构建复杂的程序包(如Linux内核)时。

如果将'bitbake -e foo'的输出传输到文件然后分析其内容,则可以获得更多信息。像

这样的东西
$ bitbake -e virtual/kernel >kernel.env

例如,在输出的早期,您可以找到包含列表作为bitbake扫描并读取类文件链。同样非常有用,但与问题没有直接关系的是,您可以看到对变量进行的累积更改,因为这些包含文件已被读入和解析。

如果隔离那些设置变量的行,则可以有效地构建包构建中涉及的文件列表。像这样:

$ cat kernel.env | egrep '^#[ ]*append|^#[ ]*set' | cut -d ':' -f 1 | awk '{print $3}' | sort | uniq

...应该生成一个bitbake文件列表(* .conf,* .bb,* .bbclass等),这些文件与构建软件包有关。丑陋,但它有效;)

你也可以考虑在freenode IRC上加入#oe和#yocto,那里有许多非常聪明的人,他们比我更了解这些东西!祝你好运。

答案 2 :(得分:0)

尝试以下操作:

显示配方的.bb文件

RECIPE_NAME="linux-yocto"
bitbake -e  $RECIPE_NAME | grep ^FILE=

显示配方的.bbappend文件

RECIPE_NAME="linux-yocto"
bitbake-layers show-appends linux-yocto

旧版本的 bitbake 可能不支持使用 bitbake-layers show-appends linux-yocto 查询特定配方。改用 bitbake-layers show-appends