i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统

文章目录

  • 1 安装软件包与配置git
    • 1.1 安装git
    • 1.2 设置git
    • 1.3 安装其他软件包
  • 2 获取Yocto项目
    • 2.1 下载repo
    • 2.2 repo同步
  • 3 构建文件系统
  • 4 构建SDK工具

1 安装软件包与配置git

1.1 安装git

安装搭建yocto环境所需要的软件包。
使用命令“sudo apt-get install git”,输入密码,安装过程中询问信息按“y”继续,安装git,如图 1.1.1所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第1张图片

图 1.1.1

1.2 设置git

执行如下命令,填写名字和邮箱。
git config --global user.name “Your Name”
git config --global user.email “Your Email”
git config --list
如下图所示:
在这里插入图片描述

图 1.2.1

1.3 安装其他软件包

使用命令“sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev”
“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”安装其他依赖软件包,如图 1.3.1和图 1.3.2:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第2张图片

图 1.3.1

i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第3张图片

图 1.3.2

可以多运行几次,确保安装成功。

2 获取Yocto项目

2.1 下载repo

repo是谷歌用Python脚本写的调用git的一个脚本。主要是用来下载、多个Git仓库。
(1)首先我们使用命令“mkdir yocto”创建yocto文件夹,之后步骤都会在这个文件内进行。然后使用命令“cd yocto/”如图 2.1.1所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第4张图片

图 2.1.1

(2)获取repo
有两种方法。
方法一,官方提供的下载地址,需要
http://commondatastorage.googleapis.com/git-repo-downloads/repo
方法二,笔者在网上找到一个下载地址,使用清华源下载。
首先使用命令“git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo”获取,如图 2.1.2所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第5张图片

图 2.1.2

然后使用命令“mkdir .repo”,这里创建的是一个隐藏文件夹,我们使用命令“ll”查看。
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第6张图片

图 2.1.3

接下来使用“mv git-repo .repo/repo”,将“git-repo”移动到刚刚创建的“.repo”文件中,并将名称改为“repo”,如图 2.1.4:
在这里插入图片描述

图 2.1.4

然后使用命令“cp .repo/repo/repo ./”,将repo复制到当前目录。如图 2.1.5:
在这里插入图片描述

图 2.1.5

最后使用命令“chmod u+x repo”,修改repo操作权限。如图 2.1.6所示:
在这里插入图片描述

图 2.1.6

2.2 repo同步

这里选择yocto的分支,可以用浏览器打开网址:
http://git.freescale.com/git/cgit.cgi/imx/fsl-arm-yocto-bsp.git/
查看freescale的yocto项目的分支。可以从图 59.2.2.2.1看出imx-4.1-krogoth分支就是对应内核4.1.15-2.1.0的版本,所以我们选择imx-4.1-krogoth分支。
在这里插入图片描述

图 2.2.1

首先执行命令“./repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-4.1-krogoth”如图 2.2.2所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第7张图片

图 2.2.2

询问是否显示颜色,输入“y”即可。
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第8张图片

图 2.2.3

然后使用命令“./repo sync”同步源码,创建NXP官方fsl-arm-yocto-bsp.git项目的imx-4.1-krogoth分支。如图 2.2.4所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第9张图片

图 2.2.4

同步源码。需要的时间比较长,受网络影响比较大,耐心等待。
同步完成后,使用命令“ls”即可查看。如图 2.2.5所示:
在这里插入图片描述

图 2.2.5

3 构建文件系统

我们查看《i.MX_Yocto_Project_User’s_Guide.pdf》相关内容,可以了解到如下内容。
我们需要使用脚本“fsl-setup-release.sh”构建项目。
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第10张图片

图 3.1

DISTRO:发行版类型
MACHINE:机器类型
-b:指定工程构建输出的目录
DISTRO有如下四种设置:
fsl-imx-x11 —仅支持X11图型
fsl-imx-wayland — Wayland weston graphics
fsl-imx-xwayland —Wayland graphics 和 X11,不支持使用 EGL 的 X11 应用
fsl-imx-fb ----帧缓冲图形,没有X11或Wayland
支持的machine有很多种,在“sources/meta-fsl-arm/conf/machine/”文件夹中都有给出,以下是按官方文档列出的几种。

imx6qpsabreauto
imx6qpsabresd
imx6ulevk
imx6ull14x14evk
imx6ull9x9evk
imx6dlsabreauto
imx6dlsabresd
imx6qsabreauto
imx6qsabresd
imx6slevk
imx6solosabreauto
imx6solosabresd
imx6sxsabresd
imx6sxsabreauto
imx7dsabresd

同样的官方提供了多种镜像:

core-image-minimal			---只允许设备启动的小镜像
core-image-base				---目标设备硬件的纯控制台镜像
core-image-sato				---镜像支持X11与Sato主题和使用Pimlico应用程序
fsl-image-machine-test		---带控制台,无图形界面,FSL Community核心镜像
fsl-image-gui					---带图形界面,不支持qt
fsl-image-qt5					---支持qt5

更多内容可以阅读官方文档了解。
发行版我们选择fsl-imx-x11,选择fsl-image-qt5构建支持qt的文件系统。开发板是IMX6ULL芯片,所以MACHINE选择是imx6ull14x14evk。fsl-setup-release.sh这个脚本会解释用户配置的参数。
我们使用如下命令构建文件系统:
DISTRO=fsl-imx-x11 MACHINE=imx6ull14x14evk source fsl-setup-release.sh -b build_x11
如图 3.2所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第11张图片

图 3.2

然后中间请阅读EULA内容,空格继续,阅读之后按y+回车,确认。如图 3.3:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第12张图片

图 3.3

接着配置完会直接进入刚才指定的的“build_x11”目录,如图 3.4:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第13张图片

图 3.4

然后使用命令“bitbake fsl-image-qt5”开始构建根文件系统。如图 3.5:
在这里插入图片描述

图 3.5

图 3.6是构建过程中的截图。
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第14张图片

图 3.6

此过程时间较长,请耐心等待,会有十几个小时,与网速,电脑配置,虚拟机配置有关,中间有出错情况可用,Ctrl+C终止,在此使用“bitbake fsl-image-qt5”构建,yocto会在跳过之前已经完成的工作,继续任务。
鼠标滚轮上翻即可看到我们之前的一些构建信息。如图 3.7:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第15张图片

图 3.7

最后编译完成,如图 3.8所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第16张图片

图 3.8

编译生成的镜像都在“tmp/deploy/images/imx6ull14x14evk”目录下,我们使用命令“ls tmp/deploy/images/imx6ull14x14evk”即可查看,如图 3.9所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第17张图片

图 3.9

这里面包含不同格式的uboot,内核,设备树,文件系统镜像。我们仅使用“tar.bz2”格式即可。
我们将fsl-image-qt5-imx6ull14x14evk-*********.rootfs.tar.bz2文件拷贝到烧写工具目录下,并将名称修改为rootfs.tar.bz2。如图 3.10:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第18张图片

图 3.10

这里要强调的是,该文件系统编译出来很大,有300M左右,可以烧写到emmc版本核心板中,想要烧写到nandflash版本中,需要对文件系统进行裁剪。
这个文件系统所需的uboot、内核、设备树均使用之前编译的或者资料里提供的,烧写即可。如图3.11:烧写时间较长,这是我们烧写到开发板,启动之后的画面。
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第19张图片

图 3.11

4 构建SDK工具

这一节我们主要讲解的是SDK工具的构建步骤。SDK工具里包含交叉编译工具,后期我们以yocto为系统,开发出来的qt程序,c程序,都需要用到。
我们新开启一个终端界面,还是使用普通用户登录。如图 4.1所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第20张图片

图 4.1

然后我们使用命令“cd yocto/”进入之前进行yocto项目操作的文件夹。如图 4.2所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第21张图片

图 4.2

接着我们使用命令“DISTRO=fsl-imx-x11 MACHINE=imx6ull14x14evk source fsl-setup-release.sh -b build_x11”添加项目配置信息(生成目录还是之前的build_x11)。如图 4.3所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第22张图片

图 4.3

然后使用命令“bitbake meta-toolchain-qt5”构建SDK工具。如图 4.4所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第23张图片

图 4.4

耐心等待构建完成,该工具会在“tmp/deploy/sdk”文件下生成。文件名为“fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh ”,使用命令“ls tmp/deploy/sdk/”即可查看。如图 4.5所示:
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第24张图片

图 4.5

执行这个脚本文件之后,编译器会自动安装到“/opt”目录下,这个交叉编译器可用于编译uboot,内核,文件系统,以及c程序,qt程序。在之后的yocto程序开发中会讲到。
i.MX6ULL终结者Yocto文件系统构建篇在线构建文件系统_第25张图片

你可能感兴趣的:(#,第五部分,Linux构建文件系统,i.MX6ULL终结者,linux,开发平台,嵌入式)