当我构建 yocto 时,我在
build/tmp/deploy/images/<machine>/
中获取了内核镜像和设备树。设备树和覆盖层也位于同一位置。
我想将部署位置更改为子目录
kernel/
,并覆盖在kernel/overlays/
中。
配方中是否有内置变量可以执行此操作?
使用
openembedded-core/oe-init-build-env
shell 脚本生成用于在 yocto 中构建图像的环境,您可以更改 <build_dir>
。它是接收文件的第一个参数。然而,从那时起,yocto 结构需要保持相同,否则将无法找到配方的不同依赖项并构建图像。
您可以做什么,而不是仅仅使用环境变量
MACHINE
来生成构建文件夹,您可以添加另一个来在建筑物之间产生差异(仍然通过状态缓存和下载连接)。
例如,我使用环境变量
OEM_PROFILE
来分隔构建目录,并以一种有组织的方式来查找我创建的图像。尽管如此,您创建的每个构建文件夹的树结构将保持不变:
# Your building dir of choice
$ tree -L 1
.
├── bitbake-cookerdaemon.log
├── cache
├── conf
├── downloads
├── pn-buildlist
├── sstate-cache
├── task-depends.dot
├── tmp
└── workspace
# Now the root of the build folder could look like this
tree -L 1
.
├── build
├── build_1
├── build_2
├── build_3
├── downloads
└── sstate-cache
你必须小心,不要使用同一个终端来构建两个图像,因为你会弄乱你的设置。