You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yocto构建${TMPDIR}/work目录下各子目录用途问询

Yocto ${TMPDIR}/work 目录用途说明

${TMPDIR}/work下的目录是按照构建产物的运行场景、架构绑定关系拆分的独立工作区,你看到的四个目录分别对应四类不同的构建任务,和参考手册描述不冲突——参考手册提到的两类是目标架构相关的核心目录,另外两个是通用场景的固定目录,逐个说明如下:


1. core2-64-poky-linux 目录

这个目录确实属于${PACKAGE_ARCH}-poky-${TARGET_OS}类目录,对应你配置中PACKAGE_EXTRA_ARCHS包含的core2-64通用x86-64基础架构层级。

  • 存储内容:所有架构相关、但不绑定特定硬件机器的目标系统包构建工作区。
  • 你观察到大部分配方都在这个目录完成解压构建是正常现象:绝大多数通用用户态包(比如核心系统库、通用命令行工具、标准系统服务)都不需要依赖qemux86-64的专属硬件特性,编译出的二进制可以在所有兼容core2-64指令集的x86-64设备上运行,放在这个目录下可以被同架构的不同机器复用,避免重复构建。

2. qemux86_64-poky-linux 目录

这个目录确实属于${MACHINE}-poky-${TARGET_OS}类目录,对应你配置的MACHINE="qemux86-64"目标机器。

  • 存储内容:所有和当前目标机器强绑定的内容构建工作区。
  • 你观察到core-image-minimal的rootfs、最终镜像在这个目录生成是正常的:这个目录下的内容换其他机器就无法复用,包含机器专属的配置(内核配置、bootloader参数、硬件适配补丁)、机器专属包(内核、内核模块、专属固件),以及镜像组装类任务(rootfs生成、镜像打包、启动盘制作等)。

3. x86_64-linux 和 all-poky-linux 目录

这两个是所有Yocto构建都会生成的通用目录,不属于参考手册提到的目标包架构/机器架构分类:

  • x86_64-linux:构建主机侧原生工具的工作区。目录名没有-poky-字段,代表里面的包是为你当前执行构建的x86_64主机编译的,不会打包进目标镜像,只服务于构建流程本身,比如构建过程依赖的bison、flex、cmake、原生QEMU、原生Python等工具,都在这个目录下编译,产出的二进制直接在你的主机上运行。
  • all-poky-linux:架构无关目标包的工作区。对应PACKAGE_ARCH="all"的配方,比如纯Shell/Python脚本、全局配置文件、字体、文档、通用静态资源等,这些内容不包含架构相关的二进制,在x86、ARM等任何架构的设备上都能运行,只需要构建一次就可以给所有目标架构复用,所以统一放在这个目录下。

内容的提问来源于stack exchange,提问作者badam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:15:44