目录
特别说明,正点原子
I.MX6U
出厂系统就由
Yocto 编译出来的,不建议读者重复编译 Yocto
,重复造轮子,因为编译
Yocto
是非常困难的!
安装 Git 与配置 Git 用户信息
Yocto
项目需要用到
Git
(用
Git
作版本控制)。如果您已经有安装过
git
并且已经设置过本
地用户
git
信息就跳过此小节。
sudo apt-get install gitgit config --global user.name "alientek" // 配置 Git 用户名,输入个人用户名git config --global user.email 12345678@qq.com // 输入 email 地址git config --list // 查看个人配置的信息
获取 Yocto 项目
repo
是一个构建在
Git
之上的工具,它可以更容易地管理包含多个存储库的项目,而这
些存储库不需要位于同一台服务器上。
repo
很好地补充了
yocto
项目的分层特性,使用户可以
更容易地将自己的层添加到
BSP
中。简单来说,
repo
用来管理多个
git
工程。
首先立工程项目文件夹,文件夹名称可随意。
mkdir fsl-release-bspcd fsl-release-bsp
拷 贝压缩包到上面我们创建的 fsl-release-bsp
目录下。
tar xf repo.tar.bz2
获取
Yocto
项目,克隆
imx-4.1-krogoth
分支(此分支就是
I.MX6U 4.1.15 Linux
分支)。
ht
tps://source.codeaurora.org/external/imx/fsl-arm-yocto-bsp
为新的仓库地址,在
i.MX_Yocto_Projec
t_User's_Guide.pdf
这本手册里,旧的地地址已经不能使用!
chmod u+x repo./repo init -u https://source.codeaurora.org/external/imx/fsl-arm-yocto-bsp -b imx-4.1-krogoth
如无法获取,请重新执行。在获取的过程中会要求确认第
1.1
小节里配置的
Git
信息。连
续按下两次
Enter
后,再输入两次
y
即可!
获取完成后,如下图,可以看到目录下多了一个
.repo
文件夹。
ls -a
执行
repo sync
,同步
NXP
官方
fsl-arm-yocto-bsp.git
项目的
imx-4.1-krogoth
分支。此过
程可能十分漫长,建议在早上执行,作者测试过早上比较快。可能早上网络使用的不多吧,所
下同步的时间比较快。同步过程中可能因为网络问题出错,解决办法只有重新执行!
./repo sync
同步完成后可以看到有如下文件。
开始构建 Yocto 文件系统
构建
Yocto
的文件系统镜像,
freescale
(
NXP
)提供了几种镜像供我们构建,文件系统镜
像支持的功能越多,文件系统就越大,读者可自行选择一个来构建。
下面是发行版(
DISTRO
)的四种配置:
fsl-imx-x11 -
只有
X11
图形
fsl-imx-wayland - Wayland weston graphics
fsl-imx-xwayland - Wayland graphics and X11
。不支持使用
EGL
的
X11
应用程序
fsl-imx-fb -
帧缓冲图形
-
没有
X11
或
Wayland
支持的
machine
有很多种,以下是按官方文档列出的几种。
imx6qpsabreauto
imx6qpsabresd
imx6ulevk
imx6ull14x14evk
imx6ull9x9evk
imx6dlsabreauto
imx6dlsabresd
imx6qsabreauto
imx6qsabresd
imx6slevk
imx6solosabreauto
imx6solosabresd
imx6sxsabresd
imx6sxsabreauto
imx7dsabresd
如下表格简单介绍了几种镜像
![](https://i-blog.csdnimg.cn/blog_migrate/d289d5c94723f80bb45b7b5fe39e20be.png)
官方提供了
fsl-setup-release.sh
脚本来构建项目,脚本语法如下:
DISTRO=<distro name> MACHINE=<machine name> source fsl-setup-release.sh -b <build d
ir>
参数解释:
DISTRO
:发行版类型
MACHINE
:机器类型
-b:
指定工程构建输出的目录
发行版我们选择
fsl-imx-x11
,正点原子的发布的系统需要运行
Qt5
程序,所以选择
fsl-imag
e-qt5
这个文件系统镜像来构建。我们开发板是
IMX6ULL
芯片,所以
MACHINE
选择是
imx6
ull14x14evk
。
fsl-setup-release.sh
这个脚本会解释用户配置的参数。
安装编译所必须的库。下面为一行指令,建议复两行复制。
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essentialchrpath socat libsdl1.2-dev curl
执行下面的指令开始配置,build 是构建的目录。
DISTRO=fsl-imx-x11 MACHINE=imx6ull14x14evk source fsl-setup-release.sh -b build
配置过程中请你阅读
EULA
内容,输入
q
退出阅读内容后再按
y
确认已经阅读,再继
续下一步。
构建的时长的因素与以下几点有关:计算机的性能(硬盘写入速度,
CPU
的核心数),网
络下载速度,还与您的
Ubuntu
虚拟机在安装时分配的核心数与分配的内存有关!构建过程中
可能会出错
(
报错的位置请根据提示的信息自行解决,没固定的解决方法
)
,可按
Ctrl +c
终止,
再次输入
bitbake fsl-image-qt5
构建。
Yocto
支持从断点处重新构建。因为构建过程中已经生
成缓存文件,重复构建时会跳过已经构建过的任务。注:编者
Ubuntu
分配
16GB
内存(用户
虚拟机能尽量分大内存就分大内存,否则可能出现编译不通过的情况),
16
个核心数,网速为
100M
,大约构建了
9
个小时!
开始构建含
Qt
库的根文件系统
bitbake fsl-image-qt5
构建完成后进入 build/tmp/deploy/images/imx6ull14x14evk 这个目录下。
我们需要的文件系统镜像压缩包是
fsl-image-qt5-imx6ull14x14evk-20190904030729.rootfs.tar.bz2
, 文件系统比较大,读者按需裁剪,或者按需修改 yocto
项目源文件再构建。
构建 SDK 工具
构建完成我们含
Qt5
的文件系统后,还需要构建
SDK
工具。
SDK
工具里面含交叉编译 Qt 工具链。
同样地在
build
目录下接着执行,即可构建。
bitbake meta-toolchain-qt5
构建成功后,进入
build/tmp/deploy/sdk
目录,查看生成的文件。其中
fsl-imx-x11-glibc-x86_64-
meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh
是我们需要的文件。