I.MX6U Yocto 构建根文件系统
原子哥在线教学:www.yuanzige.com
论坛:www.openedv.com
I.MX6U Yocto 构建根文件
系统 V1.0
1
I.MX6U Yocto 构建根文件系统
原子哥在线教学:www.yuanzige.com
论坛:www.openedv.com
广州市星翼电子科技有限公司
淘宝店铺 1:http://eboard.taobao.com
淘宝店铺 2:http://openedv.taobao.com
技术支持论坛 (开源电子网) :www.openedv.com
原子哥在线教学:www.yuanzige.com
官方网站:www.alientek.com
最新资料下载链接:http://www.openedv.com/posts/list/13912.htm
E-mail: 389063473@qq.com QQ: 389063473
咨询电话:020-38271790
传真号码:020-36773971
团队:正点原子团队
正点原子,做最全面、最优秀的嵌入式开发平台软硬件供应商。
友 情 提 示
如果您想及时免费获取“正点原子”最新资料,敬请关注正点原子
微信公众平台,我们将及时给您发布最新消息和重要资料。
关注方法:
(1)微信“扫一扫”,扫描右侧二维码,添加关注
(2)微信→添加朋友→公众号→输入“正点原子”→关注
(3)微信→添加朋友→输入“alientek_stm32” →关注
2
I.MX6U Yocto 构建根文件系统
原子哥在线教学:www.yuanzige.com
论坛:www.openedv.com
文档更新说明
版本
版本更新说明
负责人 校审 发布日期
初稿:
V1.0
正点原
子 linux
团队
2019.10.26
3
I.MX6U Yocto 构建根文件系统
原子哥在线教学:www.yuanzige.com
论坛:www.openedv.com
前言 .................................................................................................................................................... 5
一、在线构建根文件系统 ................................................................................................................ 5
1.1 安装与配置 git ........................................................................................................................ 5
1.1.1 安装 git .............................................................................................................................................. 5
1.1.2 配置 git 用户信息 ............................................................................................................................. 6
1.2 获取 yocto 项目 ....................................................................................................................... 6
1.2.1 下载 repo .......................................................................................................................................... 6
1.2.2 获取 yocto 项目 ................................................................................................................................ 7
1.2.3 构建根文件系统 ............................................................................................................................. 10
1.2.4 构建 SDK 工具................................................................................................................................ 17
二、离线构建根文件系统 .............................................................................................................. 18
2.1 构建根文件系统 .................................................................................................................... 19
2.2 构建 SDK 工具 ....................................................................................................................... 19
4
I.MX6U Yocto 构建根文件系统
原子哥在线教学:www.yuanzige.com
前言
论坛:www.openedv.com
yocto:yocto 是这个开源项目的名称,该项目旨在帮助我们自定义 Linux 系统,更多 yocto
介绍在此就不作解释了。相信网上的解释会比作者解释的更详细。以下文档内容仅供构建 yocto
根文件系统参考,yocto 是一个非常大的开源项目,并非作者一个文档就能说的清楚,作者也在
与大家共同学习 yocto。所以作者写这个文档是让读者初步去了解如何构建根文件系统,减少初
学者在构建过程中可能遇到的错误,更多 yocto 的详细与教程请参照正点原子的其他文档与官
方文档。
NXP 官方已经有详细的 yocto 项目使用手册,文档名字为《i.MX_Yocto_Project_Ubuntu's_
Guide_Linux.pdf》,光盘资料路径为\开发板光盘 A-基础资料\4、参考资料\。网上也有很多 yoct
o 相关教程,同学们也可以借鉴参考。文档内容经过作者的实践与试验,已经成功构建文件系
统。若在学习以下文档内容有疑问,请与作者或正点原子技术支持沟通与联系。谢谢!
备注:freescale 已经与 NXP 合并,以下文档内容不区分他们的名字。
版本说明:
Ubuntu 版本:ubuntu-14.04 或以上(作者 ubuntu 环境是 ubuntu-14.04)
Yocto 版本:4.1.15-4.2.1.0
注意事项:
yocto 构建根文件系统需要预留足够的硬盘空间,I.MX yocto 手册上标明至少要留 120G 的
空间。
yocto 构建根文件系统需要非常长的时间,不建议用低配置的电脑进行构建。否则可能需要
一两天的构建时间。
yocto 构建的根文件系统包括了官方评估板所用的一切东西,文件系统十分巨大,需要读者
自行裁剪。
作者考虑到了上面的因素,为读者准备了一个在线构建根文件系统的方法,也就是按照手
册的步骤来构建根文件系统(此方法耗时很长很长,由读者亲自体验与学习)。另一种离线构建
根文件系统(快餐式构建根文件系统),是作者准备好 yocto 项目源文件(正点原子修改过的)
和下载好的相关资源文件,直接给读者直接构建。可以节省读者在构建 yocto 根文件系统所用
的时间,直接构建出与正点原子 ALPHA 开发板一样功能的文件系统。
一、在线构建根文件系统
本节适用于 yocto 初学者,作者将一步步与大家分享 NXP yocto 项目的搭建方法。如果读
者使用离线构建根文件系统的方法,可略过第一节的 1.1.1~1.2.2 小节。
1.1 安装与配置 git
1.1.1 安装 git
因为 yocto 需要使用 git(用 git 来作版本控制),如果您已经有安装过 git 并且已经设置过
本地用户 git 信息就跳过此步。
Ubuntu# sudo apt-get install git
5
I.MX6U Yocto 构建根文件系统
原子哥在线教学:www.yuanzige.com
论坛:www.openedv.com
图 1.1.1. 1 安装 git
1.1.2 配置 git 用户信息
Ubuntu# git config --global user.name "Your Name"
Ubuntu# git config --global user.email "Your Email"
Ubuntu# git config --list
参数解释:
⚫
--global user.name :添加用户名
--global user.email :添加用户的 email
⚫
--list
⚫
比如作者设置个人的信息如下
:查看列表信息
Ubuntu# git config --global user.name "DZM@alientek"
Ubuntu# git config --global user.email "12345678@qq.com"
Ubuntu# git config --list
图 1.1.2. 1 查看配置的 git 用户信息
1.2 获取 yocto 项目
1.2.1 下载 repo
repo 简介:
repo 是一个构建在 Git 之上的工具,它可以更容易地管理包含多个存储库的项目,而这些
6
I.MX6U Yocto 构建根文件系统
原子哥在线教学:www.yuanzige.com
存储库不需要位于同一台服务器上。repo 很好地补充了 yocto 项目的分层特性,使用户可以更
容易地将自己的层添加到 BSP 中。
论坛:www.openedv.com
简单来说,repo 用来管理多个 git 工程,git 是无法将 freescale 的在存储库里面的某个项目
给 clone 下来,如果我们只需要 freescale 的 yocto 项目,(要想知道 freescale 可不只有 yocto 项
目呢),使用 Git 下载却把个存储库项目都下下来了。这就是为什么要用 repo 来管理更庞大的项
目的原因了。
首先立工程项目文件夹(文件夹名称可随意)。
Ubuntu# mkdir fsl-release-bsp
Ubuntu# cd fsl-release-bsp
图 1.2.1. 1 创建 fsl-release-bsp 文件夹
获取 repo,由于国内外网络环境的原因,官方手册里下载 repo 的链接需要翻墙。下面提供
获取 repo 的两种方法,如果您的网络环境不能翻墙,建议使用方法二。(备注:网上下载的 repo
有很多种,经过作者实验网上有很多 repo 在 init 时会出错(需要修改 repo 里面的 REPO_URL
地址才能用)!所以作者已经把测试过 repo 上传到的 github 里。提供给读者参考与使用。)
方法一,官方提供的下载地址,需要翻墙
http://commondatastorage.googleapis.com/git-repo-downloads/repo
方法二,正点原子提供的下载链接
https://raw.githubusercontent.com/dzm2018/alientek-git-repo-downloads/master/repo
本次演示的是方法二:
Ubuntu# curl https://raw.githubusercontent.com/dzm2018/alientek-git-repo-downloads/master/r
epo > ./repo
修改 repo 文件的权限,注意不要使用 root 用户!(注:官方文档这里将 repo 导出环境变量
图 1.2.1. 2 下载 repo
里,作者这里并不这样做。)
Ubuntu# chmod u+x repo
图 1.2.1. 3 赋予 repo 可执行权限
1.2.2 获取 yocto 项目
这里教大家选择 yocto 的分支,可以用浏览器打开网址 http://git.freescale.com/git/cgit.cgi/im
x/fsl-arm-yocto-bsp.git/查看 freescale 的 yocto 项目的分支。根据我们源码内核发布的版本号是 4.
1.15-2.10,可以从下图看出 imx-4.1-krogoth 分支就是对应内核 4.1.15-2.1.0 的版本,所以我们选
择 imx-4.1-krogoth 分支。
7
I.MX6U Yocto 构建根文件系统
原子哥在线教学:www.yuanzige.com
论坛:www.openedv.com
图 1.2.2. 1 选择 imx-4.1-krogoth
获取 freescale yocto 项目的 imx-4.1-krogoth 分支,在当前目录下执行下面的指令,执行过
程如下。过程中还会确认您的 git 用户信息是否是您在 1.1 节中配置的信息。
Ubuntu# ./repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-4.1-krogoth
连续输入三次 y,完成后可以看到 repo 初始化在当前目录下,使用 ls 指令可以查看隐藏文
图 1.2.2. 2 克隆 imx-4.1-krogoth 分支
件夹.repo。
图 1.2.2. 3 确认 git 用户信息
8