i.MX Yocto项目用户指南 -- 上
Posted chocolate2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了i.MX Yocto项目用户指南 -- 上相关的知识,希望对你有一定的参考价值。
i.MX Yocto项目用户指南 – 上
1概述
本文档描述了如何使用Yocto Project构建环境构建i.MX单板的映像。它描述了i.MX发布层和特定于i.MX的用法。
Yocto项目是一个开源协作项目,专注于嵌入式Linux OS开发。有关Yocto项目的更多信息,请参见Yocto项目页面:www.yoctoproject.org/. Yocto项目主页上有几个文档详细描述了如何使用这个系统。遵循Yocto项目快速入门在www.yoctoproject.org/docs/current/
yocto-project-qs/yocto-project-qs.html。
FSL Yocto项目社区BSP(位于freescale.github.io)是NXP之外的一个开发社区,为Yocto项目中的i.MX单板提供支持环境。i.MX加入了Yocto Project社区,提供了一个基于Yocto Project框架的版本。
社区网页上提供了FSL社区BSP使用的具体信息。本文档是社区BSP文档的扩展。
用于构建图像的文件存储在层中。层包含不同类型的自定义,并且来自不同的来源。一个层中的一些文件被称为菜谱。Yocto Project recipes包含了检索源代码、构建和打包组件的机制。下面的列表显示了这个版本中使用的层。
概述
i.MX发布层
meta-fsl-bsp-release
meta bsp - 更新meta-freescale、poky和meta-openembedded层
meta-sdk – 更新meta-freescale-distros
Yocto项目社区层
meta-freescale:为基础和i.MX Arm参考板提供支持。
meta-freescale-3rdparty:为第三方和合作伙伴单板提供支持。
meta-freescale-distro:额外的项目,以帮助发展和应用单板的能力。
fsl-community-bsp-base:通常重命名为base。提供FSL社区BSP的基本配置。
meta-openembedded:OE核心世界的层集合。请参见layers.openembedded.org/。
poky:poky中的基本Yocto项目项。有关详细信息,请参阅Poky自述。
meta-browser:提供多个浏览器。
meta-qt5:提供qt5。
本文中对社区层的引用适用于Yocto项目中除meta-fsl-bsp版本之外的所有层。i.MX板在meta-fsl-bsp-release和meta-freescale层中配置。这包括U-Boot、Linux内核和参考板的具体细节。
i.MX提供了一个额外的层,叫做i.MX BSP Release,叫做meta-fsl-bsp-release,用来集成新的i.MX Release和FSL Yocto Project Community BSP。meta-fsl-bsp-发布层的目的是为Yocto项目中现有的meta-freescale和meta-freescale-distro层上尚未可用的新版本发布更新的和新的Yocto项目配方和机器配置。i.MX BSP Release层的内容是菜谱和机器配置。在许多测试用例中,其他层实现食谱或包含文件,i.MX发布层通过添加到当前食谱或包含组件并使用补丁或源位置更新来提供食谱的更新。大多数i.MX发布层配方都非常小,因为它们使用社区提供的内容,并更新每个新包版本所需的内容,而这些新包版本在其他层中是不可用的。
i.MX BSP发布层还提供了包含系统映像引导所需的所有组件的映像配方,使用户更容易引导。组件可以单独构建,也可以通过映像recipe(将映像中所需的所有组件导入一个构建过程)构建。
通过i.MX公共git服务器访问i.MX内核和U-Boot版本。但是,在i.MX镜像中有几个组件是以包的形式发布的。基于包的菜谱从i.MX镜像(而不是git位置)中提取文件,并生成所需的包。
所有以二进制形式发布的包都是在构建时启用硬件浮点数的,这些硬件浮点数由每个机器配置文件中定义的DEFAULTTUNE指定。从jethro发行版开始就没有提供软件浮点包。
发行版L4.14.98-2.0.0_ga为Yocto Project 2.5(Sumo)发布的。Yocto项目2.5的相同配方将会在Yocto项目发布的下一个版本中上线并提供。Yocto项目的发布周期大约持续6个月。
meta-fsl-bsp-release中的配方和补丁程序被上传到社区层。在为一个特定的组件完成这个操作之后,meta-fsl-bsp-release中的文件就不再需要了,而FSL Yocto Project Community BSP将提供支持。社区支持i.MX参考板、社区板和第三方板。完整的列表可以在freescale.github.io/doc/release notes/2.2/index.html#document bsp scope中找到。本文档中的所有电路板参考仅与i.MX机器配置文件相关。
1.1最终用户许可协议
在Freescale Yocto项目社区BSP的环境设置过程中,会显示NXP最终用户许可协议(EULA)。要继续使用i.MX专有软件,用户必须同意本许可证的条款。协议条款允许Yocto项目构建从i.MX镜像中解压包。
注意
在安装过程中仔细阅读此许可协议,因为一旦接受,i.MX Yocto项目环境中的所有进一步工作都与此接受的协议相关。
1.2参考文献
i.MX在软件中支持多个家族。以下是列出的家庭和每个家庭的soc。i.MX Linux Release Notes描述了当前版本中支持的SoC。一些以前发布的soc可以在当前版本中构建,但如果它们处于以前的验证级别,则不能进行验证。
i.MX 6系列:6QuadPlus、6Quad、6DualLite、6SoloX、6SoloLite、6SLL、6UltraLite、6ULL、6ULZ
i.MX 7系列:7Dual、7ULP
i.MX 8系列:8QuadMax
i.MX 8M系列:8M Quad, 8M Mini
i.MX 8X系列:8QuadXPlus
此版本包括以下参考资料和其他信息。
•i.MX Linux® Release Notes (IMXLXRN) – 提供发布信息.
•i.MX Linux® User's Guide (IMXLUG) - 包含有关安装U-Boot和Linux操作系统以及使用i.MX的特定信息.
•i.MX Yocto Project User's Guide (IMXLXYOCTOUG) - 包含在Yocto项目中设置和构建Linux操作系统的说明.
•i.MX Reference Manual (IMXLXRM) - 包含有关i.MX的Linux驱动程序的信息.
•i.MX Graphics User's Guide (IMXGRAPHICUG) - 介绍图形功能.
•i.MX BSP Porting Guide (IMXXBSPPG) -包含有关将BSP移植到新板的说明.
•i.MX VPU Application Programming Interface Linux® Reference Manual (IMXVPUAPI) -提供参考i.MX 6 VPU上的VPU API信息.
快速入门指南包含板上的基本信息和设置。他们在NXP的网站上。
SABRE平台快速入门指南(IMX6QSDPQSG)
SABRE Board快速入门指南(IMX6QSDBQSG)
i. MX 6UltraLite EVK快速入门指南(IMX6ULTRALITEQSG)
i. MX 6ULL EVK快速入门指南(IMX6ULLQSG)
SABRE汽车信息娱乐快速入门指南(IMX6SABREINFOQSG)
i. MX 6SoloLite评估工具包快速入门指南(IMX6SLEVKQSG)
i. MX 7Dual SABRE-SD快速入门指南(SABRESDBIMX7DUALQSG)
i. MX 8M Quad评估工具包快速入门指南(IMX8MQUADEVKQSG)
i. MX 8M迷你评估套件快速入门指南(8MMINIEVKQSG)
i. MX 8QuadXPlus Multisensory Enablement Kit Quick Start Guide(IMX8QUADXPLUSQSG)文档可在nxp.com在线获取。
i. MX 6信息位于nxp.com/iMX6series
i. MX SABRE信息位于nxp.com/imxSABRE
i. MX 6SoloLite EVK信息请访问nxp.com/6SLEVK
i. MX 6UltraLite信息请访问nxp.com/iMX6UL
i. MX 6ULL信息请访问nxp.com/iMX6ULL
i. MX 7Dual信息位于nxp.com/iMX7D
i. MX 7ULP信息请访问nxp.com/imx7ulp
i. MX 8信息请访问nxp.com/imx8
i. MX 6ULZ信息请访问nxp.com/imx6ulz
2特点
i. MX Yocto项目发布层具有以下功能:
Linux内核配方
内核配方驻留在recipes-kernel文件夹中,并集成了从i.mx git服务器下载的源代码中的i.MX内核。这是由项目中的配方自动完成的。
L4.14.98-2.0.0_ga是为Yocto项目发布的Linux内核。
U-Boot配方
U-Boot recipe驻留在“recipes-bsp”文件夹中,并集成i.MX uboot-imx.git,从i.MX git服务器下载源代码。
某些i.MX板使用不同的U-Boot版本。
i、 i.MX 6、i.MX 7、i.MX 8设备的MX发行版L4.14.98-2.0.0_ga使用更新的v2018.03 i.MX U-Boot版本。尚未针对所有i.MX硬件更新此版本。
i.MX Yocto项目社区BSP从主线使用u-boot-fslc,但这仅由UBoot社区支持,而L4.14.98内核不支持。
i.MX Yocto项目社区BSP经常更新U-Boot版本,因此随着新的U-Boot版本集成到meta freescale层,并且i.MX U-Boot-imx版本的更新集成到主线中,上述信息可能会发生变化。
图形配方
图形配方位于recipes-graphics文件夹中。
图形配方集成了i.MX图形包版本。对于具有GPU的i.MX板,imxgpu-viv配方打包了每个发行版的图形组件–X11、帧缓冲区(FB)、XWayland、Wayland后端和Weston合成器(Weston)。只有i.MX 6和i.MX 7支持X11和帧缓冲区。
Xorg-driver集成了xserver-xorg。
i. MX包配方
imx-lib、imx-test和firmware-imx驻留在recipes-bsp中,并从i.MX镜像中提取来构建并打包到image recipes中。
多媒体食谱
多媒体配方驻留在recipes-multimedia。
配方包括imx-codec, imx-parser, libvpuwrap, 和 imx-gstreamer-plugins插件,这些插件从i.MX镜像中提取来构建并打包到图像配方中。
有些配方是为受限制的编解码器提供的。i.MX镜像上没有这些包。这些套餐单独提供。联系你的i.MX市场代表获得这些。
核心配方
一些规则的配方(如udev)提供了要在系统中部署的更新的i.MX规则。这些配方通常是策略的更新,仅用于定制。版本仅在需要时提供更新。
演示食谱
演示配方位于meta-sdk目录中。此层包含图像配方和自定义配方,如触摸校准,或演示应用程序配方。
3主机设置
要在Linux主机上获得Yocto项目的预期行为,必须安装下面描述的包和实用程序。一个重要的考虑因素是主机所需的硬盘空间。例如,在运行Ubuntu的机器上构建时,X11后端所需的最小硬盘空间约为50GB。建议至少提供120GB,这足以将所有后端编译在一起。
建议的最低Ubuntu版本是16.04或更高版本。早期版本可能会导致Yocto项目构建安装失败,因为它要求python版本只能从ubuntu12.04开始。有关更多信息,请参阅Yocto项目参考手册。
ubuntu16.04用户对SDL构建过程中的错误发表了评论。要在local.conf中修复此注释,请按如下方式添加#字符
#PACKAGECONFIG_append_pn-qemu-native = " sdl"
#PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
3.1主机包
Yocto项目构建要求为Yocto项目下记录的构建安装一些包。转到Yocto Project Quick Start,检查您的构建机器必须安装的软件包。
重要的Yocto项目主机包是:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev
Ubuntu 12.04或14.04主机设置的i.MX层主机包包括:
$ sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc
仅适用于Ubuntu 12.04主机设置的i.MX layers主机包包括:
$ sudo apt-get install uboot-mkimage
仅适用于Ubuntu 14.04主机设置的i.MX layers主机包包括:
$ sudo apt-get install u-boot-tools
配置工具使用构建机器上的grep的默认版本。如果在您的路径中有不同版本的grep,它可能会导致构建失败。一个解决方案是将特殊版本重命名为不包含“grep”的内容。
3.2设置repo工具
Repo是一个构建在Git之上的工具,它可以更轻松地管理包含多个存储库的项目,这些存储库不需要位于同一台服务器上。Repo很好地补充了Yocto项目的分层特性,使得用户更容易将自己的层添加到BSP中。
要安装“repo”实用程序,请执行以下步骤:
1在主目录中创建bin文件夹。
$ mkdir ~/bin(如果bin文件夹已存在,则可能不需要此步骤)
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
2在.bashrc文件中添加以下行,以确保~/bin文件夹位于PATH变量中。
export PATH=~/bin:$PATH
4 Yocto项目设置
首先用下面的命令确保git设置正确。
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --list
i.MX Yocto Project BSP Release目录包含一个sources目录,其中包含用于构建一个或多个构建目录的方法,以及一组用于设置环境的脚本。
用于构建项目的方法来自社区和i.MX。Yocto项目层被下载到sources目录。这将设置用于构建项目的配方。
下面的示例演示如何下载i.MX Yocto项目社区BSP配方层。对于本例,将为项目创建一个名为imx-yocto-bsp的目录。可以使用任何名称来代替此名称。
$ mkdir imx-yocto-bsp
$ cd imx-yocto-bsp
$ repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-sumo -m imx-4.14.98-2.0.0_ga.xml
$ repo sync
注意
https://source.codeaurora.org/external/imx/imx-manifest/tree/?h=imx-linux-sumo 提供了这个版本中支持的所有清单文件的列表。
完成此过程后,源代码将签出到目录imx-yocto-bsp/sources中。
您可以使用repo sync命令定期执行repo同步,以更新到最新代码。
如果在repo初始化期间发生错误,请尝试删除.repo目录并再次运行repo初始化命令。
已为该行的最新补丁配置了repo init。遵循index: imx-manifest中的说明。git检索原始GA。否则,默认选择GA +补丁。要从sumo-base获取早期版本,请在repo init行的末尾添加-m(版本清单名称),它将检索早期版本。示例见自述文件在上面提供的链接。
以上是关于i.MX Yocto项目用户指南 -- 上的主要内容,如果未能解决你的问题,请参考以下文章