yocto 初学

概述

yocto 是一个系统编译整合工具,可以将各种软件集成在一起并制作成hddimg, iso 等镜像。类似的工具比如openwrt,用于路由器系统。

资源

官网

yocto 的资源基本都在官网上,最主要的是看其官网的文档。有使用,开发等相关信息。

结构

yocto 的版本有自己的代号,比如在本文写成之前,版本号为2.2,相应的代号为morty。可以在官网 download下看到。以及其所支持的平台等。 官方提供的是一个名为poky的源码,其它平台相关的会有专门的源码位置,需要整全到poky中来编译,使用。

编译

目前编译针对 intel 的平台做介绍。 需要准备的几个源码。

git clone -b morty git://git.yoctoproject.org/poky.git
git clone -b morty git://git.yoctoproject.org/meta-intel

这里只需要这两个文件目录。

  1. 建议一个目录,用于编译,比如 yocto
  2. poky, 放于yocto目录下,将meta-intel放到yocto/poky目录下
  3. 进入到yocto目录
  4. 执行. ./poky/oe-init-build-env
  5. 如果最后加参数,会生成对应参数的目录名,如果没有加,默认使用build名称
  6. 执行4之后,会自动进入build目录。
  7. 执行 bitbake core-image-sato即可进行编译

当然编译之前如果没有安装一些基础工具包,会提示错误,可以在官网找到需要安装的工具包有哪些。

本人在ubuntu 16.04测试成功,在ubuntu 16.10测试失败,centos 6.x版本测试失败。

build目录下会生成一些文件,需要关注的是conf目录下的bblayer.conf, local.conf,在bblayer.conf下面要将meta-intel目录加入进去,加入到BBLAYERS的变量后面,否则会找不到meta-intel相关的东西。以后下载其它的meta-xx的软件也可以按这种方法添加,meta-xx有自己的目录规则,具体可能见官方文档。

local.conf则是一些重要参数的配置。这里比较重要的一个参数是MACHINE 要设置成intel-corei7-64,其它平台则有自己的设置方法。官方文档上也有说明这一点。此配置文件下有许多环境变量可以设置,在官方文档reference manual的最后有对这些变量的用法的说明。可以查看,找到用法。

生成

生成的镜像会被放到 build/tmp/deploy目录下。其中images是镜像位置,rpm是打包成rpm包的那些软件,sdk是在做编译链等工具时存放的位置。这些目录下的东西不要去手动删除,它并不会因为不存在而重新生成。

bitbake core-image-sato -c listtasks可以列出对应编译目标对应可以执行的命令。core-image-sato自然也可以换成对应的目标软件。如bitbake nginx -c clean可以对nginx进行清理。默认命令为build

原理

原理部分理解不透,只能做一些简单说明。

yocto 的编译工具使用 python 来完成。对应meta下面都有对应的classes目录,里面存放的是*.bb文件,这些文件就是对应的编译规则。

转载于:https://my.oschina.net/u/145591/blog/1618981

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值