Yocto Linux OS 构建指南

在开发基于Intel® Galileo和Intel® Edison板的创新解决方案时,开发者可能需要一个完整的开发环境来编译、部署和测试他们的解决方案。有时,不能直接在硬件上进行操作,或者提供的SDK不足以满足开发计划。本文将展示如何在YoctoLinuxOS上编译整个框架、运行时及其依赖项,并在QEMU软件模拟器中测试,以及如何在Hypervisor(如Windows上的Microsoft Hyper-V)中运行。

教程前提条件

要使用本教程,需要满足以下条件:

  • Debian/Ubuntu操作系统(在Debian 8.2 amd64上测试)
  • 互联网连接
  • 至少100GB的磁盘空闲空间

构建机器的初步准备

以root用户(或通过"sudo")运行以下命令:

# 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:前一个命令的成功取决于使用的Ubuntu/Debian版本。最终,为了解决软件包的依赖关系,可以运行"aptitude"并强制安装所需的正确版本的软件包(例如,"aptitude install libsdl1.2-dev")。

注意2:对于其他Linux发行版,如RadHat、CentOS、Fedora、SuSe、Gentoo等,建议使用正确的包管理器检查前一个包的相应版本(例如,zypper、yum等)。

第一步:设置工作文件夹

以普通用户身份(无root权限):

# cd # mkdir yocto-2.0 # cd yocto-2.0 # wget http://downloads.yoctoproject.org/releases/yocto/yocto-2.0/poky-jethro-14.0.0.tar.bz2 # tar xvjf poky-jethro-14.0.0.tar.bz2 # cd poky-jethro-14.0.0/

注意3:可以选择其他开发分支的Yocto发布版本,链接如下:

https://www.yoctoproject.org/downloads

在本教程中,将使用当前最新的发布版本"Jocto Poky 2.0.14.0.0代号Jethro"。

注意4:如果想获取Yocto源代码的最新开发版本,可以获取主开发分支,需要将wget操作替换为以下操作:

# git clone git://git.yoctoproject.org/poky.git # cd poky

注意5:还可以选择特定的开发分支,使用其代号。例如:

# git clone -b jethro git://git.yoctoproject.org/poky.git

第二步:为系统Shell设置环境变量

Yocto开发者提供了一个非常易用的脚本。

# . ./oe-init-build-env

运行脚本后,如果成功,位置将更改为构建子目录,这将是新工作空间。类似于:

/home/<your user>/yocto-2.0/poky-jethro-14.0.0/build/

执行前一个脚本后,会创建一个conf/local.conf文件。

配置文件需要设置Bitbake,Yocto的构建引擎(Yocto项目的核心组件)。

使用喜欢的文本编辑器编辑bitbake配置文件。在本教程中,将使用nano,这是一个简单的命令行界面文本编辑器,用于类Unix环境,如下所示:

# cd conf/ # nano local.conf

取消以下行的注释:

DL_DIR ?= "${TOPDIR}/downloads" SSTATE_DIR ?= "${TOPDIR}/sstate-cache" TMPDIR ?= "${TOPDIR}/tmp" SDKMACHINE ?= "i686"

建议构建所有可用的额外特性到镜像中。生成的镜像将很重(每个大约8GB),但绝对完整,绝对适用于开发需求。

EXTRA_IMAGE_FEATURES = "dbg-pkgs dev-pkgs ptest-pkgs tools-sdk tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks"

现在,保存对文件local.conf所做的更改,使用CTRL+X键盘组合。然后:

# cd .. # hob

现在,Hob(BitBake的GTK2基础图形用户界面)的实例应该启动,检查构建系统的正确性。

现在选择qemux86作为下拉菜单中的机器。等待Hob完成解析BitBake配方并生成依赖树。然后,从上面的菜单中选择要构建的首选目标镜像。在这个示例中,将选择没有GUI的完整核心镜像:

core-image-full-cmdline

现在点击"高级配置"。

在"镜像类型"面板中,如果想构建最新的稳定版本,请在"发行版"菜单中留下poky。然后在"镜像类型"字段中选择需要的格式:通常,选择".iso"、".vdi"和".vmdk",它们是最有用和最舒适的格式。

在"输出"面板中,请选择最适合需求的选项。建议至少为镜像添加4GB的空闲存储空间,以填充i686架构的SDK(如果正在使用Edison开发板)。此外,发现将"deb"设置为根文件系统的打包格式非常有用。如下所示:

好的,保存。现在,已经准备好构建镜像了!点击"构建镜像"按钮!

Hob将为启动一个实例:

bitbake core-image-full-cmdline

带有最喜欢的设置。

注意7:这个过程将需要很长时间来构建最终的镜像。但是,根据主机机器的能力,可以在构建操作中更改使用的处理器核心数,通过"BitBake并行线程"和"Make并行线程"。可以从Hob设置窗口修改这些变量:

注意8:最后,Hob为提供了决定想要包含在将要构建的镜像中的软件包的机会。要做到这一点,在开始构建镜像之前,可以选择"编辑镜像配方"。

然后,通过以下窗口选择要包含的软件包:

现在,构建过程结束后,将能够直接尝试新生成的镜像!点击"运行镜像",Hob将为启动一个QEMU实例来运行新创建的qemux86镜像。

但是,系统会要求提供超级用户权限密码:

另一个UNIX命令行控制台窗口将打开,显示Yocto Project OS的加载状态和启动画面。

现在准备好登录新创建的Yocto镜像的root帐户了。记住:在conf/local.conf中的EXTRA_IMAGE_FEATURES变量中插入debug-tweaks参数,将能够登录root,留下密码字段为空。否则,需要在构建镜像之前在配方中设置root密码。

现在准备好开始使用Yocto QEMU虚拟机了。

注意9:按照本教程构建Yocto镜像后,驱动器上占用了89.8GB的空闲空间。

~/yocto-2.0/poky-jethro-14.0.0/build/tmp/deploy/images/qemux86/*
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485