yocto通常是如何收集recipes:
在Yocto中,通过以下方式收集recipes:
层(Layers)
- Yocto项目使用层来组织recipes。层是包含配置文件、recipes和其他相关文件的目录结构。每个层有自己的目录,其中 recipes-* 目录用于存放recipes。例如, recipes-core 可能存放核心组件的recipes, recipes-connectivity 存放网络连接相关组件的recipes。
- 构建系统会查找各个启用层中的这些recipes目录来收集recipe文件。这些文件通常以 .bb (BitBake recipe)或 .bbappend (用于对已有recipe进行追加修改)为后缀。
目录结构和命名约定
- 按照特定的目录结构和命名规范,在 recipes-* 目录下,分类存放不同软件包或组件的recipes。这样构建系统在遍历这些目录时能够识别并收集它们。
例如,一个名为 my-package 的软件包recipe可能存放在 recipes-mycategory/my-package 目录下,其中 mycategory 是自定义的类别,方便组织和管理。
配置文件指定路径
- conf/bblayers.conf 文件在构建系统中起着关键作用。它指定了要包含在构建中的层路径列表。通过修改这个文件,可以添加或移除包含recipes的层,从而控制哪些recipes会被收集用于构建镜像。构建过程中,BitBake工具会根据这个配置文件所指定的层路径去查找和收集recipes。
加入成熟的bb文件
如果有一个完整的 .bb 文件,可按以下步骤加入Yocto进行编译:
添加层
- 首先创建一个新层或者将 .bb 文件放入现有层中。若创建新层,可使用 yocto-layer 脚本工具(如果有)或手动搭建层目录结构。一个典型的层目录包含 conf 、 recipes - * 等目录。
- 把 .bb 文件放入新层的 recipes - * 目录下合适的子目录中,尽量按照软件类型或者功能来分类放置,方便管理。
配置层
- 在 conf/bblayers.conf 文件中添加新层的路径。这样Yocto构建系统才能找到该层以及其中的 .bb 文件。
- 根据需要,在 conf/local.conf 中设置相关的编译选项,例如目标架构( MACHINE )、镜像类型等变量,确保新加入的 .bb 文件的编译环境正确。
编译
- 在Yocto构建目录下,运行 bitbake <your - recipe - name> 命令。其中 <your - recipe - name> 是 .bb 文件的文件名(不含 .bb 后缀),这样就可以开始编译这个新加入的recipe了。