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