如何在Ubuntu上使用Yocto创建自己的Linux发行版

在本文中,我们的重点是使用Ubuntu平台上的Yocto项目创建最小的Linux发行版。 Yocto项目在嵌入式Linux世界中非常有名,因为它的灵活性和易用性。 Yocto项目的目的是为嵌入式硬件和软件制造商创建一个Linux发行版。 将为qemu创建一个新的最小的Linux发行版,因为(qemu是一个基本的软件仿真器)目标机,我们将在qemu中运行它。

开发机器的先决条件

  • 至少4 - 6 GB RAM。
  • 最近的Ubuntu操作系统(在这种情况下为16.04 LTS)。
  • 磁盘上至少有60-80 GB的可用空间。
  • 在创建新的Linux发行版之前安装以下软件包。
  • 下载最新的Yocto(Poky这是最小的开发环境)稳定的分支。
apt-get update
apt-get install wget git-core unzip make gcc g++ build-essential subversion sed autoconf automake texi2html texinfo coreutils diffstat python-pysqlite2 docbook-utils libsdl1.2-dev libxml-parser-perl libgl1-mesa-dev libglu1-mesa-dev xsltproc desktop-file-utils chrpath groff libtool xterm gawk fop

如下图所示,安装所需的开发包需要几乎1 GB的大小。

在本教程中,系统上克隆了“愚蠢”的稳定版本。

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

进入“poky”目录并运行以下命令来设置/导出一些用于yocto开发的变量。

source oe-init-build-env

如下图所示,运行开放式嵌入式(oe)构建环境脚本后,终端中的路径位置将更改为“build”目录,以进一步配置和编译新的分发。

上面的屏幕截图显示了在“conf”目录中创建的“local.conf”文件。 这是yocto的配置文件,其中指定了目标机器的详细信息以及所需架构的SDK。

如下图所示,设置目标机“qemux86-64”。

取消注释“local.conf”文件中的参数,如屏幕截图所示。

DL_DIR ?= "${TOPDIR}/downloads"

SSTATE_DIR ?= "${TOPDIR}/sstate-cache"

TMPDIR ?= "${TOPDIR}/tmp"

PACKAGE_CLASSES ?= "package_rpm"
SDKMACHINE ?= "i686"

如下图所示,为基于Yocto的Linux设置一个空白密码,并在local.conf文件中包含以下参数。 否则,用户将无法登录新的发行版。

EXTRA_IMAGE_FEATURES ?= "debug-tweaks"

我们没有使用任何GUI工具(如烤面包机(不再支持))来创建Linux操作系统。

Yocto编制和建设过程

现在运行bitbake实用程序的以下命令,以启动所选目标机器的软件包的下载和编译。

bitbake core-image-minimal

以普通的Linux用户而不是root用户身份运行上述命令很重要。 如以下sscreenshot所示,当以root用户运行bitbake命令时,会生成错误。

再次运行环境变量脚本(oe-init-build-env)的导出,并重新运行相同的命令来启动下载和编译过程。

如下所示,构建脚本实用程序的第一步是解析配方。

以下截图显示构建脚本的解析步骤的完成。 它还显示了将生成新的基于yocto的发行版的构建系统的细节。

下载SDK和必要的库后,下一步是下载和编译软件包。 以下屏幕截图显示了新发行版的任务。 这个步骤需要2-3个小时,因为首先,它下载所需的软件包,然后编译新的Linux发行版。

以下屏幕截图显示了任务列表的完成。

目标机器类型“qemux86-64”的编译新映像位于“build / tmp / deploy / images / qemux86-64”路径内,如下所示。

如下所示,如果在Putty中运行,以上命令将产生错误。

以上命令再次通过Ubuntu平台上的rdp在终端内运行。

另一个屏幕为qemu模拟器打开了新的基于yocto的Linux发行版。

新发行版的登录屏幕如下所示,同时显示了yocto项目的参考版本。 默认用户名为root,空白密码。

最后,用root用户名和空密码登录新的发行版。 如下面的屏幕截图所示,基本命令(date,ifconfig和uname)在最小版本的Linux中运行。


本文的目的是了解使用yocto项目创建新的Linux发行版的过程。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏