Bitbake 目标列表

33

感谢阅读, 我正在一个项目中工作,我们创建一个secimage(linux yocto image)。

我不熟悉那里使用的所有工具,也不熟悉要使用的技术术语。因此,这个问题可能非常愚蠢,但我就是想不明白。

我们有一个YOCTO...某些东西...和所有那些配方(debian软件包),我们需要在我们的(结果)操作系统上使用,我们使用(不知道这是否明显)bitbake来构建我们的镜像。

我知道我们有一些位于bitbake命令中的目标(例如:一个用于生产镜像的目标和一个用于开发目的的镜像的目标,它们在安装的软件包方面显然不同,只是举个例子:gdb-server)。

由于我是后来加入这个项目的,我不知道他们如何命名这些目标...所以我只想知道:

我如何获取目标列表?

(我尝试搜索,但由于我甚至不熟悉要使用的所有技术术语,因为我不是YOCTO的开发人员,所以我可能没有搜索正确的术语)

不想列出任务,我只想创建一个开发镜像,我知道有一个为此配置的目标,但我不知道它的名称(我的同事们都不在这里,也不会很快出现)。

编辑

David的答案似乎最接近,但评论中还有其他方法;-)。感谢大家的帮助,非常感谢。


没事了,我刚刚执行了一条grep -rnw #theOneTargetNameIKnew#命令,并得到了指向/#YOCTO#/#OurDistroMetaDirectory#/recipes-core/images/#target#.bb的(很多)结果。这些似乎是目标。如果任何人有一个bitbake命令来获取这些列表,那就太好了。谢谢! - MDeero
4
请查看Yocto Mega手册-第27章。镜像 章节,了解输出目标是什么。通常,每个镜像都应该放置在相应的_image_name_.bb配方的图像目录中的meta层中。如链接的章节所指出的那样,您可以通过调用以下命令来检查您的meta层而不是搜索整个工作区:$ ls meta*/recipes*/images/*.bb。使用Yocto愉快! - iksajotien
1
所以在bitbake二进制文件中绝对没有命令!?…(失望地摇了摇头)…是的,那个命令可以用,谢谢…稍微修改一下;-):ls meta*/recipes*/images/*.bb | sed -e 's/^.*\///g' | sed -e 's/\.bb$//g'---只是看到,在@h0ch5tr4355命令中也有这个。 - MDeero
哦,还有一个巨大的感谢您提供的超级手册...我还没有找到它(我很高兴我不需要在YOCTO镜像上工作)。 - MDeero
6个回答

33

你可以轻松地列出工作区中所有目标/配方(.bb文件)的方法是:

您可以通过以下方式轻松地列出您的工作区中的所有目标/配方(.bb文件):

bitbake-layers show-recipes

如果您只想获取图像的配方,请执行以下操作:

bitbake-layers show-recipes "<image_name>"

这只是一个食谱列表,而不是图片列表。所以这并不是我想要的内容,但是如果已知所需图片具有特定前缀/中缀/后缀,则给出的第二个命令可能很有用。(如果有人对上述内容有困难,请记得设置环境“source oe-init-build-env”。) 谢谢 David - MDeero
我希望你在你的帖子中包含这个答案的限制(前缀/中缀/后缀),但是像h0ch5tr4355一样,我也认为这是最接近的答案(只要没有一种方法可以仅使用一个命令查找图像,但看起来并不像)。 我会接受这个。谢谢。 - MDeero
6
bitbake 不会针对不同的食谱进行区分,您有两种选择:一种是假设镜像食谱始终位于“images”文件夹中;另一种是假设食谱名称中包含“image”。第二种方法也可以使用以下命令实现:bitbake-layers show-recipes "*-image-*" - h0ch5tr4355

9
要列出预定义的Yocto镜像,请从您的目录下运行以下命令:
ls meta*/recipes*/images/*.bb

这是根据Yocto手册的正确答案: https://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html#ref-images - user8908459

4

要列出所有元文件中预定义的 Yocto 镜像,请从您的 poky 目录运行以下命令:

find . -type f -path '*images/*' -name '*.bb'

4

其他SDK通常使用自定义脚本来设置yocto的构建环境(主要是指来自yocto的oe-init-build-env)。

我从Freescale SDK 1.9中提取了安装脚本的一部分(fsl-setup-env),并创建了一个脚本来显示图像。它可以类似于这样:

get-images.sh

# top level directory of your yocto project
POKYROOTDIR=/home/poky

echo "Images:"
for i in `ls $POKYROOTDIR/meta*/recipes-*/images/*.bb 2>/dev/null`;do
    i=`basename $i`;i=`echo $i |sed -e 's,^\(.*\)\.bb,\1,'`
    echo "    $i";
done

根据假设,每个菜谱都放在一个名为images的目录中,这应该是一种惯例。


1
还要看一下评论中iksajotien的解决方案,这是这个问题的简短版本。 - h0ch5tr4355
我总是忘记在sed中需要转义花括号,这很好,但不是bitbake命令,我看到我没有明确要求bitbake命令,但我会等待看看是否有人知道一个用于bitbake的命令。谢谢。 - MDeero
我删除了我的评论并在David Bensoussan的解决方案中进行了修改。 - h0ch5tr4355
最好将POKYROOTDIR变量设为通用型,并使用pwd获取路径,如下所示:POKYROOTDIR=pwd; - Vendetta V

2

这里提供了与NXP网站此处提供的类似命令。

bitbake-layers show-recipes "*image*"

0

我喜欢这个解决方案:

ziga@ziga--hypervisor:~/yocto$ ag -g .bb poky/meta | grep image

poky/meta/recipes-sato/images/core-image-sato.bb
poky/meta/recipes-sato/images/core-image-sato-dev.bb
poky/meta/recipes-sato/images/core-image-sato-sdk.bb
poky/meta/recipes-sato/images/core-image-sato-ptest-fast.bb
poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
poky/meta/recipes-graphics/xorg-lib/xcb-util-image_0.4.0.bb
poky/meta/recipes-graphics/images/core-image-clutter.bb
poky/meta/recipes-graphics/images/core-image-x11.bb
poky/meta/recipes-graphics/images/core-image-weston.bb
poky/meta/recipes-rt/images/core-image-rt-sdk.bb
poky/meta/recipes-rt/images/core-image-rt.bb
poky/meta/classes/image-live.bbclass
poky/meta/classes/kernel-uimage.bbclass
poky/meta/classes/image-combined-dbg.bbclass
poky/meta/classes/testimage.bbclass
poky/meta/classes/license_image.bbclass
poky/meta/classes/image-postinst-intercepts.bbclass
poky/meta/classes/core-image.bbclass
poky/meta/classes/image-mklibs.bbclass
poky/meta/classes/image-prelink.bbclass
poky/meta/classes/image_types_wic.bbclass
poky/meta/classes/image-buildinfo.bbclass
poky/meta/classes/image_types.bbclass
poky/meta/classes/kernel-fitimage.bbclass
poky/meta/classes/image.bbclass
poky/meta/classes/image-container.bbclass
poky/meta/recipes-extended/images/core-image-testmaster.bb
poky/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
poky/meta/recipes-extended/images/core-image-kernel-dev.bb
poky/meta/recipes-extended/images/core-image-full-cmdline.bb
poky/meta/recipes-core/ovmf/ovmf-shell-image.bb
poky/meta/recipes-core/images/core-image-minimal-mtdutils.bb
poky/meta/recipes-core/images/core-image-minimal.bb
poky/meta/recipes-core/images/core-image-base.bb
poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
poky/meta/recipes-core/images/core-image-minimal-dev.bb
poky/meta/recipes-core/images/core-image-tiny-initramfs.bb
poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接