如何查找哪个Yocto Project配方填充图像根文件系统上的特定文件

shi*_*ley 16 linux embedded-linux openembedded bitbake yocto

我在Yocto项目中工作了很多,而且常见的挑战是确定rootf上包含文件的原因(或从哪个配方开始).这可以从构建系统的环境,日志和元数据中获得.理想情况下,一组命令将允许将文件链接回源(即配方).

我通常的策略是对元数据执行搜索(例如grep -R filename ../layers/*)并在互联网上搜索所述文件名以找到可能负责任的食谱的线索.但是,这并不总是非常有效.在许多情况下,文件名未在配方中明确说明.此外,在许多情况下,文件名由多个配方提供,这导致额外的工作以找到最终提供它的配方.当然还有很多其他线索可以找到答案.无论如何,当构建系统看起来应该有足够的信息来简单地解决答案时,这种调查通常非常费力.

Tom*_*tny 23

这是oe-pkgdata-util脚本及其子命令的确切用例find-path.该脚本是openembedded-core的一部分.

请参阅此示例(在OE构建环境中执行,即bitbake工作):

tom@pc:~/oe/build> oe-pkgdata-util find-path /lib/ld-2.24.so
glibc: /lib/ld-2.24.so
Run Code Online (Sandbox Code Playgroud)

你可以清楚地看到这个库属于glibc配方.

oe-pkgdata-util有更多有用的子命令来查看有关包和食谱的信息,值得检查--help.