yocto 手册

yocto 手册

关键词: yocto bitbak

了解bitbake语法,大概了解即可,等需要的时候回来查。

主要内容:

  • bitbake语法
  • bitbake函数

文档参考:

  • 官方手册:https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user-manual-metadata.html

最新文档 https://taotaodiy-yocto.readthedocs.io/en/latest/yocto/yocto-syntax.html

yocto-taotaodiy

bitbake语法

参考:https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user-manual-metadata.html

基本语法

运算符

  • = 赋值
  • ?= 设置默认值 如果变量具有值,则可以保留该值,无则赋值
  • ??= 弱默认值 任何" =“或”?=“分配都将覆盖用” ?? ="设置的值
  • += =+ 这些运算符在当前值和前置或附加值之间插入一个空格
  • .= =. 附加或添加值不插入空格
  • _append 前追加
  • _prepend后追加 在可变扩展时间应用的,而不是立即应用的
  • _remove 移除 在可变扩展时间应用的,而不是立即应用的
  • unset 完全删除变量或变量标志
  • export 将变量导出到环境

内联Python变量扩展

DATE = "${@time.strftime('%Y%m%d',time.gmtime())}"
#DATE变量设置为当前日期。
#此功能最常见的用途可能是从BitBake的内部数据字典中提取变量的值d。
#以下各行分别选择软件包名称及其版本号的值:
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"

向环境导出变量

export ENV_VARIABLE
ENV_VARIABLE = "value from the environment"

export ENV_VARIABLE = "variable-value"

#通常导出到环境中的变量是CC和 CFLAGS,许多构建系统都会使用和。

bb文件引入和继承

BitBake允许通过包含文件(.inc)和类文件(.bbclass)共享元数据。
例如,假设您具有一项通用功能,例如要在多个配方之间共享的任务定义。在这种情况下,创建.bbclass包含通用功能的文件,
然后inherit 在配方中使用指令继承类将是共享任务的通用方法。

主要包括 include, inherit, INHERIT, and require BitBake

  • inherit 编写配方或类文件时,可以使用inherit
    指令继承类(.bbclass)的功能,覆盖配方中继承类的任何值和函数。
  • include
    解析您指定的任何文件,并将该文件插入该位置,路径是相对路径,找不到文件时,include指令不会产生错误。
  • require
    解析您指定的任何文件,并将该文件插入该位置,找不到文件时,require指令会产生错误。
  • INHERIT 创建配置文件(.conf)时,可以使用 INHERIT配置指令来继承类。

依赖关系

  • 构建依赖项
  1. DEPENDS变量来管理构建时间依赖性
    [deptask]任务的varflag表示其中列出的每个项目的任务DEPENDS必须先完成,然后才能执行该任务。
  2. do_configure[deptask] = “do_populate_sysroot”
    do_populate_sysroot每个项目的任务DEPENDS必须先完成,然后do_configure才能执行。
  • 运行时依赖
  1. PACKAGES,RDEPENDS和RRECOMMENDS 变量来管理运行时依赖项。
  2. PACKAGES变量列出了运行时软件包。每个这些软件包可以拥有RDEPENDS和RRECOMMENDS运行时依赖。在
    [rdeptask]对任务标志用于表示,能够执行任务前,必须完成每个项目的运行时依赖的任务。
  • 递归依赖性
  1. recrdeptask标志来管理递归任务依赖性。
  • 任务间依赖性
  1. depends标志来管理任务间依赖性

bitbake函数

函数

BitBake支持以下类型的函数

  • Shell函数:用Shell脚本编写并直接作为函数和/或任务执行的函数。也可以由其他Shell函数调用它们。
  • BitBake样式的Python函数:用Python编写的函数,并由BitBake或其他Python函数执行
    bb.build.exec_func()。
  • Python函数:用Python编写并由Python执行的函数。
  • 匿名Python函数:在解析过程中自动执行的Python函数。

BitBake支持Shell和Python函数

  • d.getVar(“X”, expand) 返回变量" X"的值。使用" expand =
    True"扩展值。如果变量" X"不存在,则返回" None"。
  • d.setVar(“X”, “value”) 将变量" X"设置为"值"
  • d.appendVar(“X”, “value”) 在变量" X"的末尾添加"值"。就像变量"
    X"不存在一样。d.setVar(“X”, “value”)
  • d.prepend
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贪贪贪丶慎独

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值