Yocto构建目录:
需要更好地理解在我的${TMPDIR}/work下自动创建的目录以及用于什么的目录。
我克隆了poky存储库,并为core-image-minimal运行了一个基本构建,这只是为了我的练习。
我在${TMPDIR}/work下创建了以下目录
$~/mrv_dev/yocto-training/build/tmp/work$ ls -la
total 16K
drwxr-xr-x 8 barak barak 4.0K Jun 24 07:25 all-poky-linux
drwxr-xr-x 84 barak barak 4.0K Jun 24 07:25 core2-64-poky-linux
drwxr-xr-x 11 barak barak 4.0K Jun 24 08:41 qemux86_64-poky-linux
drwxr-xr-x 145 barak barak 4.0K Jun 24 07:28 x86_64-linux不知道哪个是哪个。
根据约克托参考手册,预期有两个目录:${PACKAGE_ARCH}-poky-${TARGET_OS} ${MACHINE}-poky-${TARGET_OS}
我的env值是:
$ bitbake -e --dry-run core-image-minimal | grep "^MACHINE="
MACHINE="qemux86-64"
$ bitbake -e --dry-run core-image-minimal | grep "^PACKAGE_ARCH="
PACKAGE_ARCH="qemux86_64"
$ bitbake -e --dry-run core-image-minimal | grep "^PACKAGE_EXTRA_ARCHS="
PACKAGE_EXTRA_ARCHS="x86_64 core2-64"core2-64-poky-linux的预期是什么?这是${PACKAGE_ARCH}-poky-${TARGET_OS}吗?我在这里看到,所有的食谱都是在他们的工作目录下提取和构建的。
qemux86_64-poky-linux的预期是什么?这是${MACHINE}-poky-${TARGET_OS}吗?我看到core-image-minimal的rootfs和最终图像是在这里生成的。
x86_64-linux和all-poky-linux轮胎的用途是什么?
我很乐意澄清这一点。
谢谢,巴拉克
发布于 2022-06-27 14:29:05
all-poky-linux保存着与体系结构无关的菜谱,比如脚本。x86_64-linux:用于保存为构建主机构建的菜谱,用于为目标机器构建其他菜谱。有关更多信息,请查看此链接qemux86_64-poky-linux:保存特定于机器的菜谱,比如core-image-minimal,因为它是一个映像,包含包和仅针对qemux86_64的引导/内核二进制文件/配置。core2-64-poky-linux:保存特定于体系结构的菜谱,只在该架构上运行的菜谱。它运行在qemux86_64机器上,也可以运行在与该体系结构兼容的其他机器上。发布于 2022-07-06 10:19:18
最好先从tmp子文件夹开始,因为它们也是在构建过程中创建的:
buildstats是执行"do_“操作的每个菜谱的详细列表。包括执行时间、状态等。
缓存是已经构建并可重用的组件。
deploy是生成的映像、包以及许可证信息的位置持有者。
hosttools是构建系统所依赖的主机工具的存储。
log是炊具构建日志的位置持有人。
pkgdata保存每个包(RPM或DEB或IPKG等)的列表。
sstate-control是由每个特定的菜谱"do_“操作生成的文件列表。
邮票散列每个菜谱每个"do_“动作
sysroots-components是在发生“本机”(即在构建主机上执行)时,要放置到目标rootfs或构建rootfs的每个菜谱构件的列表。
sysroots-uninative是构建rootfs的工具链共享库部分。
work是一组菜谱生成结果工件,包括菜谱依赖项。
下面是work示例列表:
all-poky-linux是一个平台不可知论的non-executable配方构件。通常包含图形、音频、设置文件、证书等。
armv7vet2hf-neon-poky-linux-gnueabi是一个特定于"machine“的配方构件,构建它是为了与通常在前缀中提到的处理器族兼容的。示例"armv7vet2hf-neon“
usx8001cnl-poky-linux-gnueabi是一个“分发版”特定的配方工件,构建用于在特定硬件设计上执行。名称前缀是产品的实际PCB设计/家族。示例"usx8001cnl“
x86_64-linux是poky提供的一种主机工具菜谱,用于实际交叉编译yocto构建时使用而不是本地主机工具,并且包含在构建环境的路径变量中。例如," x86_64 “前缀是为执行x86_64 (AMD64)体系结构而构建的工具,但如果主机系统是基于ARM64的,也可以是"aarch64”。
https://stackoverflow.com/questions/72768131
复制相似问题