【Yocto】OpenEmbedded简介

33 篇文章 159 订阅

综述

OpenEmbeded是嵌入式Linux的构建框架,它提供了一个可用于交叉编译的方案,通过该方案开发者可以编译出用于嵌入式系统的Linux发行版。

OpenEmbeded解决的痛点有以下的几个:首先是嵌入式系统构建的交叉编译的问题,因为通常我们在x86的环境下做开发,但是目标对应的嵌入式硬件架构却可能是五花八门的;其次是一个可用的Linux系统包含引导模块、内核、文件系统,以及很多必要的应用程序,如果手动编译上述的这些东西(LFS就是一个例子),需要花费很大的力气而且容易出错,而使用OpenEmbeded只需要几个简单的命令即可自动完成整个构建的过程。

使用

在开始之前需要准备编译环境,这里使用Ubuntu 18.04。需要安装一些工具,如下所示,其中有些工具是已经安装了的,不过也没有关系。

sudo apt 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

之后就是下载OpenEmbedded环境(包括各类的配置文件,称为元数据)和bitbake工具:

git clone git://git.openembedded.org/openembedded-core oe-core
cd oe-core
git clone git://git.openembedded.org/bitbake bitbake

这里创建了一个oe-core目录来存放OpenEmbedded环境,并在该目录下增加bitbake工具。由于外网下载困难,这里选择使用另外的一套代码,称为Poky。Poky是基于OpenEmbedded的,它将bitbake和需要的元数据放在了一起,不需要分开下载,且以后介绍的Yocto项目也要用到Poky。Poky的代码可以在gitee上直接下载到,对应的命令:

git clone https://gitee.com/mirrors/poky.git 

代码会下载到poky目录下,之后在该目录下执行环境配置:

source ./oe-init-build-env build

这里的build是执行目录,是可选的,如果不选,也会默认在当前目录下创建一个名为build的目录。执行操作之后显示信息如下(下图跟实际情况稍有出入):

从这里可以看到,后续就是通过bitbake进行目标编译了,这里使用的目标是core-image-sato,执行命令如下:

bitbake core-image-sato

之后bitbake会接管后续的所有操作,包括下载、解压、打补丁、配置、编译,生成,等等。该过程及其漫长,跟网络环境和电脑性能有关,下面是过程显示:

操作完成之后,显示如下:

如果运行结束之后没有报错,就可以通过QEMU来启动创建的镜像,命令如下:

runqemu qemux86-64

这样创建的系统就运行起来了,结果如下:

本文到这里结束,这里只是简单介绍OpenEmbedded的下载和使用,后面将详细说明整个流程以及使用到的各种数据和工具。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值