yocto bbappend
时间: 2023-12-19 15:05:46 浏览: 233
```shell
bbappend文件是位于配方(recipe)文件所在目录的文件,用于对原始配方进行扩展。比如,如果某个配方文件位于如下路径: /work/open_source/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb ,那么对应的bbappend文件可以是 /work/open_source/openbmc/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bbappend 。
bbappend文件中通常包含变量的值基本配方名称和版本,但没有任何特殊配方名称后缀(即 -native、lib64- 等)。 BP 由组成为${BPN}-${PV},其查看示例为: ~/work/bmc/build$ bitbake -e obmc-phosphor-image | grep ^BP BP="obmc-phosphor-image-1.0" 。```
相关问题
yocto里*.inc怎么通过bbappend做加法
在Yocto项目(Yocto Project)中,`.inc` 文件通常代表"include"文件,它们是用来组织和复用变量、设置和功能的部分。如果你想要通过 `bbappend` (build-time override) 对某个`.inc` 文件的内容进行添加(即“加法”操作),你需要在另一个 `.bbappend` 文件中完成这个修改。
`bbappend` 的工作原理是在基础配置(`base.inc`)的基础上增加或覆盖一些属性。你可以添加新的变量、函数调用或者修改已有值。例如,假设你有一个名为 `foo.inc` 的文件定义了一些变量:
```bash
FOO_VAR = "default value"
BAR_FUNC()
```
要在另一个 `local.conf` 或者单独的 `bbappend` 文件中添加自定义内容,如改变 `FOO_VAR` 并新增一个函数 `BAZ_FUNC()`,你可以这样做:
```bbappend
file://foo.inc:
FOO_VAR += " custom addition"
do_foo() {
BAR_FUNC()
BAZ_FUNC()
}
```
这里,`+=` 表示对 `FOO_VAR` 的原有值追加文本,而 `do_foo()` 函数则是添加了一个新功能。
记住,`bbappend` 只能用于增强默认的行为,不能删除原有的内容;如果需要删除,应直接在 `bbappend` 中提供相反的值。
Yocto Project常用命令
Yocto Project 中常用的几个关键命令包括:
1. **bitbake**: 这是最基本也是最重要的命令,用于执行构建过程。它会根据你指定的配置(`conf/local.conf`)和配方(recipes)来编译和安装软件包[^1]。例如:
```shell
bitbake <package_name>
```
2. **poky**: Poky 是 Yocto Project 的基础,它包含了 OpenEmbedded 构建系统的框架。你可以使用 `poky init` 来初始化一个新的 Yocto 项目。
3. **bbappend**: 这个命令允许你在不改变原始配方的情况下添加或修改特定配置。例如,对 `meta-filesystems` 原始配方做扩展:
```shell
bitbake-layers add-layer path/to/new_layer
edit-file meta-filesystems/recipes-*/*-append.bbappend
```
4. **bitbucket**: 用于查看构建进度和日志。例如:
```shell
bitbucket status
```
5. **oe-init-build-env**: 创建一个干净的工作环境,便于开发和测试。
6. **bitbake-distribute**: 分发构建好的镜像到目标设备或文件系统。
更多详细信息可以在官方文档中找到,特别是 BitBake 用户手册。
阅读全文