【i.MX6】 Yocto 项目编译

关键字 :i.MX6NXPYocto
本文是关于 i.MX6 平台搭建 Yocto 项目环境,主机环境是 Ubuntu16.04 ,硬件环境为 i.MX6ULEVK 。
ps:一个 Yocto 项目至少需要 120GB 的储存大小,所以在创建虚拟机时需要注意相关参数的设定。内存建议设定为 4GB。

 
一、Yocto 环境搭建

1. 安装 repo工具。
   
repo 是基于 git 的仓库管理工具,本质是一个python脚本。 repo 可使用的命令有很多,如初始化命令“repo init”,可用的参数有“-u”指定连接到的 manifest 仓库地址,“-m”选择仓库中的某个 manifest 文件,“-b”选择一个 manifest 仓库的某一分支。可以通过“repo help”对所有命令进行查看了解。
   
如下 repo 工具下载方法需要登录外网:

$ mkdir ~/bin

$ PATH=~/bin:$PATH

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

   
    ps:若无法登录外网,则可选择国内下载网址:https://mirrors.tuna.tsinghua.edu.cn/git/git-repo

2. 安装必要工具包。
    Yocto 项目的编译过程是根据已编写好的 Makefile 文件自动进行的,在编译过程中需要调用很多工具,且编译所花费的时间通常比较长,所以在准备阶段需要将工具包安装完备,减少不必要的纠错补正工作。本文对工具的具体使用方法暂不做详细描述。
    安装命令如下:

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential \

chrpath socat 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


3. 设定 git 账号。
   
Yocto 项目的代码是从 git 仓库中下载下来的,因此对应需要为本地环境设置 git 账号:

$ git config --global user.name "your name"

$ git config --global user.email your@example.com

 
4. Yocto 项目设定:

$ cd ~
$ 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


5. Yocto 项目生成后结果如下(链接文件自行用命令时“ln -s”创建):


二、Yocto BSP 编译

1. 设定编译参数和编译效能。
    ①
DISTRO 是发行版的选择,有四种不同的选择“fsl-imx-x11”、“fsl-imx-wayland”、“fsl-imx-xwayland”及“fsl-imx-fb”,这里我们选择 fsl-imx-x11,只支持 X11 graphics。

    ② MACHINE 是对开发板型号的选择,这里我们使用的MX6ULEVK ,则对应设定 imx6ulevk。
    ③
source 指定需要执行的脚本。
    ④
参数“-b”指定了建立的新文件夹的名称。

$ DISTRO=fsl-imx-x11 MACHINE=imx6ulevk source fsl-setup-release.sh -b build-x11

$ cd ~/imx-yocto-bsp

$ vim build-x11/conf/local.conf

   
    ⑤ 文件 local.conf 增加如下参数的设定,参数设置越大越吃资源,但效能也越高,具体要根据电脑自身能力设定:

BB_NUMBER_THREADS = “12”

PARALLEL_MAKE = “-j 1”                        //该参数不要改

 
2. 开始编译。
   
使用 bitbake 命令编译一个特定的项目,根据需要进行选择,这里选择不包含qt内容的GUI 编译 i.MX 镜像的“fsl-image-validation-imx”项目。
   
执行编译命令:

$ bitbake fsl-image-validation-imx

 

3. 编译结果:会在路径 build-x11/tmp/deploy/images/imx6ulevk 下生成:
    uboot:u-boot-sd-optee-2018.03-r0.imx                                    
    Kernel:zImage--4.14.98-r0-imx6ulevk-DATE.bin
    File System:fsl-image-validation-imx-imx6ulevk-DATE.rootfs.tar.bz2
    *DATE:编译日期的年/月/日/时/分/秒
4. 执行编译工具链命令:
 

$ bitbake fsl-image-validation-imx -c populate_sdk



5. 编译结果:会在路径 build-x11/tmp/deploy/sdk 下生成工具链安装脚本:
    fsl-imx-x11-glibc-x86_64-fsl-image-validation-imx-corexa7hf-neon-toolchain-4.14-sumo.sh
 
6. 除了以上对一个完整 Yocto 项目进行编译外,bitbake 命令还可以对 Kernel 、 u-boot 等进行单独编译,命令的使用基本相同,以 Kernel 为例,
    可执行如下命令:

$ bitbake -c compile linux-imx

$ bitbake -c deploy linux-imx

   
    其中“-c compile”是对 Kernel 进行编译,“-c deploy”是将编译好的镜像文件 update 到deploy 文件夹下面。

【参考资料】
1. NXP 官网:《i.MX_Ycoto_Project_User's_Guide》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论