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(版本清单名称),它将检索早期版本。示例见自述文件在上面提供的链接。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: i.MX6U是一款NXP(原Freescale)公司推出的嵌入式处理器,Yocto Project是一种用于构建根文件系统的开源项目。 要构建i.MX6U上的Yocto根文件系统,需要进行以下步骤: 1. 准备环境:首先需要在开发主机上安装Yocto Project开发环境。可以通过官方网站获取最新的Yocto Project版本,然后按照指南进行安装。 2. 获取代码:通过Git工具获取Yocto Project的源代码。可以使用以下命令进行克隆: git clone http://git.yoctoproject.org/git/poky 这将克隆Yocto Project的主要代码库。 3. 配置环境:进入代码目录,并执行以下命令: source oe-init-build-env 这将配置构建环境并创建一个"build"目录。 4. 配置构建:在"build"目录下,可以使用文本编辑器打开"conf/local.conf"文件和"conf/bblayers.conf"文件,进行环境变量和层配置。 a. 在"conf/local.conf"文件中,可以设置交叉编译工具链、目标硬件平台、软件包等配置项。 b. 在"conf/bblayers.conf"文件中,可以添加额外的层(比如meta-fsl-arm)来支持i.MX6U平台。 5. 构建根文件系统:在"build"目录下,执行以下命令进行构建: bitbake core-image-minimal 这将使用Yocto Project工具链和配置来构建一个精简的根文件系统镜像。 6. 导出根文件系统:构建完成后,可以在"build/tmp/deploy/images"目录下找到生成的根文件系统镜像文件。将它们拷贝到目标设备上即可使用。 这些步骤只是基本的流程,根据具体需求,还可以进行其他的配置和扩展。通过以上步骤,我们能够成功构建适用于i.MX6U的Yocto根文件系统,以满足特定的嵌入式应用需求。 ### 回答2: i.MX6U是一款基于ARM架构的处理器,而Yocto是一款针对嵌入式系统的开源构建工具。构建根文件系统时,我们可以使用Yocto项目来生成适用于i.MX6U平台的定制化文件系统。 首先,我们需要安装Yocto构建工具,并设置好相应的环境变量。然后,我们需要克隆i.MX6U的Yocto层,该层包含了i.MX6U特定的配置和软件包。在给定的i.MX6U Yocto层中,我们可以找到一个位于conf目录下的local.conf文件,该文件中包含了构建根文件系统所需的各种配置选项,如目标硬件平台、内核版本、文件系统类型等。 接着,我们需要在local.conf中配置构建参数。例如,我们可以指定使用哪个内核版本、选择文件系统类型(如ext4、ubifs等)、设置根文件系统的大小、选择需要安装的软件包等等。我们还需要指定i.MX6U的目标硬件平台和编译选项。 接下来,运行bitbake命令进行构建。bitbake命令会根据我们在local.conf中的配置选项来下载源代码、编译软件包、生成根文件系统映像等。整个构建过程可能需要一些时间,具体时间取决于我们选择的软件包和系统组件。 最后,构建完成后,我们可以在output目录中找到生成的根文件系统映像。这个映像可以烧录到i.MX6U平台上并运行。我们还可以在根文件系统中添加或修改软件包、配置文件等,以满足我们的特定需求。 总之,通过使用Yocto项目来构建根文件系统,我们可以灵活定制适用于i.MX6U平台的嵌入式系统,并满足特定的功能需求。 ### 回答3: i.MX6U是一款NXP公司推出的嵌入式处理器,它在嵌入式系统中应用广泛。Yocto Project是一个开源的构建系统,用于创建嵌入式Linux发行版。我们可以使用Yocto Project来构建i.MX6U的根文件系统。 首先,我们需要准备一台运行Linux操作系统的开发主机,并安装好Yocto Project的相关工具。接下来,我们需要下载i.MX6U的Yocto Project BSP(Board Support Package)提供的代码。 下载完成后,我们可以开始进行配置。根据Yocto Project的文档,我们需要使用bitbake工具进行配置。bitbake可以根据配置文件生成用于构建根文件系统的Makefile,并自动下载和编译所需的组件。 在配置过程中,我们需要指定构建目标(i.MX6U)以及需要的软件包。Yocto Project提供了一些预定义的配置模板,我们可以根据需要选择适合我们的配置模板,或者自定义配置。 配置完成后,我们可以运行bitbake进行构建。bitbake会根据配置文件,自动下载和编译所需的软件包,并生成根文件系统的镜像文件。 构建完成后,我们需要将生成的根文件系统的镜像文件烧录到i.MX6U的存储设备中,然后启动i.MX6U开发板。根文件系统启动后,我们可以登录到i.MX6U的Linux系统,并开始进行应用程序和驱动程序的开发。 总结来说,构建i.MX6U的根文件系统需要使用Yocto Project的工具和BSP提供的代码,通过配置和编译生成根文件系统的镜像文件。然后将镜像文件烧录到i.MX6U的存储设备中,从而实现开发板的启动和应用程序的开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值