让我们考虑一下“虚拟/内核”包。 我想知道构建此软件包涉及哪个.bb和.bbappend文件。
我知道我可以通过以下方式获取包裹名称:
bitbake -e virtual / kernel | grep ^ BP =
这个命令为我提供了用于构建虚拟/内核的包的名称,在我的例子中是linux-fslc-4.0+gitAUTOINC+19ebefd40a
。
但是,我不知道如何获取用于构建linux-fslc-4.0+gitAUTOINC+19ebefd40a
包的.bb和.bbappend文件列表(包括其位置)。
答案 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
。