[yocto]yocto配方文件中的task详解

do_install

设置系统服务:配置软件包启动和停止时机

SysVinit

  • 内核启动以后,派生init进程,然后按照进程优先级按序启动
  • 此时do_install必须把任务start-stop-script安装进恰当的目录中,通常是/etc/init.d
  • 然后服务需要通过创建从资源控制目录(/etc/rc0.d/etc/rc6.d)到脚本的链接来启用
  • 这是通过update-rc.d类来完成的,update-rc.d类(update-rc.d.bbclass)使用菜谱需要继承的update-rc.d工具
  • 需要配置三个变量
    • INITSCRIPT_PACKAGES:包含用于这个软件包init脚本的包列表
      • 这个变量是可选的,并且默认成INITSCRIPT_PACKAGES=“${PN}”
    • INITSCRIPT_NAME:init脚本的名字
    • INITSCRIPT_PARAMS:传递到update-rc.d的参数
      • 这可以是例如"defaults 8020"的字符串,用来在进入运行级别2、3、4、5时启动服务和在进入运行级别0、1、6时停止它

systemd

  • 软件包必须提供给systemd服务脚本,并且菜谱必须在恰当的位置安装它,位置通常是/lib/systemd/system
  • 然后菜谱通过继承systemd类(systemd.bbclass
  • 提供下面的变量
    • SYSTEMD_PACKAGES:包含用于软件包的systemd服务文件的包列表
      • 这个变量是可选的,并且默认成SYSTEMD_PACKAGES="${PN}"
    • SYSTEMD_SERVICE:服务文件的名字

do_package

打包

包拆分(拆包)

  • 一次编译会生成多个产物,把这些不同的常务按照需求分到不同的包的过程叫做包拆分
  • 两个变量
    • PACKAGES:这个变量是空格分隔的包名字的列表;被定义在meta/conf/bitbake.conf中

      • 这个变量的默认值是
        PACKAGES="${PN}-dbg${PN}-staticdev${PN}-dev${PN}-doc${PN}-locale${PACKAGE_BEFORE_PN}${PN}"
      • do_package任务从左到右处理列表,首先创建最左侧的包,最后创建最右侧的包。顺序是重要的,因为包消耗与它相关联的文件
    • FILESFILES变量定义被放进特定包中的目录和文件的列表 理解为安装包的目标安装路径

      • 这个变量总是和条件赋值一起使用,例如:FILES:${PN}-dev = "${includedir}" FILES:${PN} = "${datadir}"
      • 其中files是空格分隔的、可以包含通配符以匹配用于do_install任务在其中创建目录和安装文件的目的目录D的目录结构部分的目录和文件列表
      • 默认路径定义在meta/conf/bitbake.conf
    • 可以新增除默认包之外的包名到PACKAGE,比如

      PACKAGE =+ "graphics"
      FILES:${PN}-graphics = "${datadir}/graph"
      

包质量检查

  • 可以使用变量WARN_QAERROR_QA来决定质量保证函数是否应该创建警告消息,其让构建继续,并且成功而不管警告;或者创建错误消息,其让构建失败
  • INSANE_SKIP:${PN} += "dev-so" 为动态库跳过符号链接检查

包架构

  • 修改包架构方法
    • 机器依赖包,设置:PACKAE_ARCH = "{MACHINE_ARCH}"
      • 配置 conf/local.conf文件中的MACHINE变量
    • 架构独立包,新增:inherit allarch
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Yocto是一种嵌入式Linux构建系统,可以用于构建家用电器、汽车、开发板等嵌入式设备的文件系统。Yocto使用BitBake构建工具进行构建,该工具在执行构建之前需要定义具体的构建环境、目标硬件板、软件包清单等信息。下面是Yocto构建文件系统的主要步骤: 1.准备构建环境:在构建之前需要确定构建环境,如编译工具链、内核版本、C库、硬件架构等,并且需要准备好相关的开发库和工具。 2.配置工程:将需要加入文件系统的软件包清单、内核、硬件板支持等配置信息生成对应的配置文件,以供BitBake使用。 3.执行构建:执行BitBake构建命令,按照配置文件构建文件系统。BitBake首先检查依赖关系,然后从各个源代码仓库下载软件包,将软件包编译成目标平台可执行的二进制文件。 4.生成镜像和文件系统:构建完成后,BitBake会将编译生成的二进制文件打包成可用于安装的IPK、RPM等软件包格式,并生成完整的文件系统镜像,其包括内核、根文件系统和设备树等。 总的来说,Yocto构建文件系统的过程需要经历一系列复杂的步骤。在整个过程,BitBake扮演着一个关键的角色,它不仅可以处理各种编译工具链和跨平台编译的问题,还能够自动解决依赖关系,提高构建效率。但是,由于Yocto的学习曲线比较陡峭,所以需要一些基本的Linux系统知识才能使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值