yocto初学

yocto初学

tips:

  • yocto和buildroot一样用于设计编译自己的linux系统

  • buildroot中是很多模块写好了(在package中),只需要我们去用y开启模块(只能在他有限的已有里选);而yocto中是里面没有直接集成好,需要我们去编写bb文件(或者直接在网站OpenEmbedded Layer Index - layers下载别人写好的bb文件),然后install到系统中(所以我们想加入什么都可以,更自由)。并且yocto支持差量编译,即会识别出差异并编译进去

  • yocto中包含三个部分:自动构建的工具+poky+openembedded构建系统(里面包括bitbake)

  • 数个bb(bitbake配置文件)集成一个recipe,数个recipe又组成meta layer

  • yocto中的layer概念:其实就是meta(recipe的集合)。

  • layer配置文件(在meta目录中的conf/xx.conf)书写方式:

     

  • poky/meta/conf/bitbake.conf中配置了bitbake很多重要的全局变量,bitbake运行的第一件事就是要找这个conf

  • .bbclass这种文件是类文件,提供bb共有的内容,所以base.bbclass是所有bb文件的公共基类(在poky/meta/classes中)

  • 如果要让bitbake能找到某个菜谱,需要在poky/meta/conf/layers.conf中的BBFILES加入

  • bitbake -s可以列出工程中已有的软件包(有bb,和bbclass)

  • 参考文档:Yocto_Document_EN_CN/Chapter3_CommonTasks_CN.md at master · KimChan2013/Yocto_Document_EN_CN · GitHub

bb文件书写语法:

  • DEPENDS变量要构建时候的依赖,是其他recipe的名字

  • FILESPATH是当SRC_URII变量指定本地文件的时候会搜索的目录集合,FILESEXTRAPATHS是用来扩展该搜索目录的,不可以用:=来强制改变

  • THISDIR是 bb文件所在的目录,bbappend里的这个变量也是其对应的bb文件的目录

  • PN是配方名;PV为配方版本;PR为配方修订版本;BPN为更简洁的PN

  • ${S}源码目录 ${B}编译目录 ${D}安装目录,默认为image目录

  • TOPDIR是工程根目录

  • FILES_${PN}表示了该bb中需要被打包进镜像的文件是xx,但是该软件包是否参与打包,是需要在其他地方配置的

  • bb中的任务书写:

    • do_configure[noexec] = "1"这种类似的意思是禁止xxx,如这里是禁止配置

    • do_configure任务会根据你的软件包编译时基于autotools还是cmake/make来使用不同变量来添加配置其他选项,之后就是do_compile编译——do_install安装

    • do_rootfs任务会创建根文件系统,其最后会打包到image中。do_image任务则是优化压缩生成image

    • bbclass文件种用addtask来添加任务,如addtask build,就是表示继承该类的bb必须执行do_build任务,该任务要写在bb文件中

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值