Yocto Project开发(二):快速构建

Yocto 专栏收录该内容
15 篇文章 10 订阅

这篇简短的文档将引导您完成使用Yocto Project进行典型镜像构建的过程。你将使用Yocto Project构建一个名为Poky的参考嵌入式操作系统。

构建主机配置

构建主机要符合如下要求:

  • 50 GB的磁盘空间
  • 运行一个主流的Linux发行版(Fedora, openSUSE, CentOS, 或者 Ubuntu),我们这里运行Ubuntu 16.04
  • Git 1.8.3.1或者更高版本
  • tar 1.27或者更高版本
  • Python 3.4.0或者更高版本

另外还需要按照如下软件包:

 $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
 build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
 xz-utils debianutils iputils-ping libsdl1.2-dev xterm

使用Git下载Poky

使用下面的命令克隆Poky仓库

     $ git clone git://git.yoctoproject.org/poky
     Cloning into 'poky'...
     remote: Counting objects: 428632, done.
     remote: Compressing objects: 100% (101203/101203), done.
     remote: Total 428632 (delta 320463), reused 428532 (delta 320363)
     Receiving objects: 100% (428632/428632), 153.01 MiB | 12.40 MiB/s, done.
     Resolving deltas: 100% (320463/320463), done.
     Checking connectivity... done.

进入poky目录,看一下所有的tags

$ cd poky
$ git fetch --tags
$ git tag
1.1_M1.final
1.1_M1.rc1
.
.
.
yocto-2.5.2
yocto-2.6
yocto-2.6.1
yocto_1.5_M5.rc8

基于yocto-2.6.1版本创建分支:

 $ git checkout tags/yocto-2.6.1 -b my-yocto-2.6.1
Switched to a new branch 'my-yocto-2.6.1'

构建镜像

使用以下步骤构建镜像,构建过程创建整个Linux发行版,包括工具链。

  1. 初始化构建环境:在poky目录中,运行 oe-init-build-env 环境设置脚本以在构建主机上定义Yocto Project的构建环境。
$ cd ~/poky
$ source oe-init-build-env 

### Shell environment set up for builds. ###

You can now run 'bitbake <target>'

Common targets are:
    core-image-minimal
    core-image-sato
    meta-toolchain
    meta-ide-support

You can also run generated qemu images with a command like 'runqemu qemux86'

除此之外,该脚本还创建了 构建目录build,它位于源目录poky中。脚本运行后,您当前的工作目录将设置为构建目录。稍后,当构建完成时,构建目录包含构建期间创建的所有文件。

  1. 检查本地配置文件:在新设置的构建环境里面,该脚本增加了一个conf并且把一个名为local.conf的配置文件放在里面,他是构建环境的主要配置文件。
  2. 启动构建:继续使用以下命令为目标构建操作系统镜像,在此示例中使用core-image-sato
$ bitbake core-image-sato
  1. 使用QEMU模拟镜像:构建此特定镜像后,您可以启动QEMU,它是Yocto项目附带的Quick EMUlator
$ runqemu qemux86
  1. 退出QEMU: 通过单击关闭图标或键入Ctrl-C退出QEMU

为特定硬件定制化构建

到目前为止,我们只是快速构建一个仅适用于仿真的镜像。本节介绍如何通过在Yocto Project开发环境中添加硬件层来自定义特定硬件的构建。

通常,图层(layer)是包含相关指令集和配置的存储库,这些指令和配置告诉Yocto Project要执行的操作。将相关元数据隔离到功能特定的层中有助于模块化开发,并且更容易重用层元数据。

注意
按照惯例,图层名称以字符串“meta-”开头。

请按照以下步骤添加硬件层:

  • 查找图层:Yocto项目源存储库有许多硬件层。此示例添加了 meta-altera 硬件层。
  • 克隆图层: 使用Git在您的计算机上制作图层的本地副本。
$ cd ~/poky
$ git clone https://github.com/kraj/meta-altera.git
Cloning into 'meta-altera'...
remote: Enumerating objects: 92, done.
remote: Counting objects: 100% (92/92), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 1225 (delta 48), reused 56 (delta 23), pack-reused 1133
Receiving objects: 100% (1225/1225), 170.46 KiB | 0 bytes/s, done.
Resolving deltas: 100% (576/576), done.
Checking connectivity... done.
  • 将配置更改为特定硬件平台的构建:local.conf文件中的MACHINE变量指定构建的硬件平台,将MACHINE变量设置为"cyclone5",使用的配置是:https://github.com/kraj/meta-altera/blob/master/conf/machine/cyclone5.conf.

  • 将图层添加到图层配置文件: 在使用图层之前,必须将其添加到bblayers.conf文件中,该文件位于构建目录的conf目录中。使用bitbake-layers add-layer命令将图层添加到配置文件:

$ cd ~/poky/build
$ bitbake-layers add-layer ../meta-altera
NOTE: Starting bitbake server...
Parsing recipes: 100% |##################################################################| Time: 0:00:32
Parsing of 918 .bb files complete (0 cached, 918 parsed). 1401 targets, 123 skipped, 0 masked, 0 errors.

完成这些步骤后,meta-altera层已添加 到Yocto Project开发环境中,可以查看bblayers.conf文件查看:

POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /home/h310588/yocto_project/poky/meta \
  /home/h310588/yocto_project/poky/meta-poky \
  /home/h310588/yocto_project/poky/meta-yocto-bsp \
  /home/h310588/yocto_project/poky/meta-altera \
  "

创建自己的通用图层

您可以使用该bitbake-layers create-layer命令创建自己的常规图层 。

$ cd ~/poky
$ bitbake-layers create-layer meta-mylayer
NOTE: Starting bitbake server...
Add your new layer with 'bitbake-layers add-layer meta-mylayer'

该命令自动创建了如下图层目录结构:

$ tree meta-mylayer 
meta-mylayer
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
└── recipes-example
    └── example
        └── example_0.1.bb

3 directories, 4 files

参考链接:Yocto Project Quick Build

  • 2
    点赞
  • 4
    评论
  • 13
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
“Linux典藏大系”自2010年陆续出版以来,因其内容丰富、讲解细腻、通俗易懂和实用性强等特色而深受广大读者的喜爱,2014年2月“Linux典藏大系“全新升级版第2版正式出版,第2版图书迎合了Linux技术的*发展,全部采用当前最流行和稳定的Linux发行版或者相关工具,是Linux爱好者学习Linux的好帮手。 《Linux典藏大系ARM嵌入式Linux系统开发详解第2版》是获得了大量读者好评的“Linux典藏大系”中的《ARM嵌入式Linux系统开发详解》的第2版。《Linux典藏大系ARM嵌入式Linux系统开发详解第2版》由浅入深,全面、系统地介绍了基于ARM体系结构的嵌入式Linux系统开发所涉及的方方面面技术,并提供了大量实例供读者实战演练。另外,《Linux典藏大系ARM嵌入式Linux系统开发详解第2版》提供了9小时多媒体教学视频及书中涉及的实例源程序,便于读者高效、直观地学习。 Linux典藏大系ARM嵌入式Linux系统开发详解第2版》共分4篇。第1篇介绍了嵌入式系统入门、嵌入式软硬件系统、ARM处理器、嵌入式Linux、软件开发环境建立和第一个Linux应用程序;第2篇介绍了Linux应用程序编程基础、开发多进程/线程程序、网络通信应用、串行口通信编程、嵌入式GUI程序开发和软件项目管理;第3篇介绍ARM体系结构及开发实例、深入Bootloader、解析Linux内核、嵌入式Linux启动流程、Linux文件系统、建立交叉编译工具链、命令系统BusyBox、Linux内核移植,以及内核和应用程序调试技术;第4篇结合5个案例介绍了Linux设备驱动、网络设备驱动、Flash设备驱动和USB驱动的开发过程,以此提高读者的实战水平。 《Linux典藏大系ARM嵌入式Linux系统开发详解第2版》适合广大从事嵌入式Linux系统开发的人员、对嵌入式Linux系统开发有兴趣的爱好者及大中专院校相关专业的学生阅读。
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值