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

Irr*_*Irr 6 linux embedded-linux bitbake yocto

让我们考虑一下"虚拟/内核"包.我想知道构建此包时涉及哪些.bb和.bbappend文件.

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

bitbake -e virtual/kernel | grep ^ BP =

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

Rya*_*yan 8

您可以使用

bitbake-layers show-appends
Run Code Online (Sandbox Code Playgroud)

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


cha*_*nan 6

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

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

$ bitbake -e virtual/kernel >kernel.env
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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