搜索

151

主题

508

帖子

3567

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3567
发表于 2020-7-6 13:01:53 5041 浏览 0 回复

I.MX6ULL终结者开发板构建yocto文件系统

     在我们的I.MX6UL精英和全能板上很早就适配了yocto的文件系统,接下来,我们来看下怎么构建yocto文件系统,并把它迁移到I.MX6ULL终结者开发板上。
参考文档:
     NXP官方文档:
     《i.MX_Yocto_Project_User's_Guid e.pdf》
注意事项:
        ubuntu14.04 及以上版本(作者 ubuntu 环境是 ubuntu16.04),推荐 ubuntu14 64bits或者教程里 ubuntu16.04 64bits。这两个版本都是作者测试没有问题的。ubuntu内存8G以上,越大越好,作者环境是8G。保证硬盘剩余空间至少80G。yocto构建时会在线下载很多文件,我们需要要保证ubuntu网络环境。所以操作均在非root用户下执行。
一.安装git
     安装搭建yocto环境所需要的软件包。
      使用命令“sudo apt-get install git”,输入密码,安装过程中询问信息按“y”继续,安装git,如下图所示:
设置git
     执行如下命令,填写名字和邮箱。
     git config --global user.name "Your Name"
     git config --global user.email "Your Email"
     git config --list
     如下图所示:
安装其他软件包
     使用命令
     “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”
二 获取yocto项目
     repo是谷歌用Python脚本写的调用git的一个脚本。主要是用来下载、多个Git仓库。
     (1)首先我们使用命令“mkdir yocto”创建yocto文件夹,之后步骤都会在这个文件内进行。然后使用命令“cd yocto/”如下图所示:
     (2)获取repo
     有两种方法。
     方法一,官方提供的下载地址,
     http://commondatastorage.googleapis.com/git-repo-downloads/repo
     方法二,笔者在网上找到一个下载地址,使用清华源下载。
     首先使用命令
     git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
     如下图所示:
     然后使用命令“mkdir .repo”,这里创建的是一个隐藏文件夹,我们使用命令“ll”查看。
     接下来使用“mv git-repo .repo/repo”,将“git-repo”移动到刚刚创建的“.repo”文件中,并将名称改为“repo”,如下图:
     然后使用命令“cp .repo/repo/repo ./”,将repo复制到当前目录。如下图:
     最后使用命令“chmod u+x repo”,修改repo操作权限。如下图所示:
三 repo同步
     这里选择yocto的分支,可以用浏览器打开网址
     http://git.freescale.com/git/cgit.cgi/imx/fsl-arm-yocto-bsp.git/
     查看freescale的yocto项目的分支。可以从下图看出imx-4.1-krogoth分支就是对应内核4.1.15-2.1.0的版本,所以我们选择imx-4.1-krogoth分支。
     首先执行命令
     ./repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-4.1-krogoth
     如下图所示:
     询问是否显示颜色,输入“y”即可。
      然后使用命令“./repo sync”同步源码,创建NXP官方fsl-arm-yocto-bsp.git项目的imx-4.1-krogoth分支。如下图所示:
     同步源码。需要的时间比较长,受网络影响比较大,耐心等待。
     同步完成后,使用命令“ls”即可查看。如下图所示:
四 构建文件系统
      我们查看nxp官方文档相关内容,可以了解到如下内容。
     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
     如下图所示:
     然后中间请阅读EULA内容,空格继续,阅读之后按y+回车,确认。如下图:
     接着配置完会直接进入刚才指定的的“build_x11”目录,如下图:
     然后使用命令“bitbake fsl-image-qt5”开始构建根文件系统。如下图:
     以下是构建过程中的截图。
     在tmp/deploy/images/imx6ull14x14evk目录下可以找到生成的镜像,如下图所示:
     这里面包含不同格式的uboot,内核,设备树,文件系统镜像。我们仅使用“tar.bz2”格式即可。
     我们将fsl-image-qt5-imx6ull14x14evk-*********.rootfs.tar.bz2文件拷贝到烧写工具目录下,并将名称修改为rootfs.tar.bz2。
     这里要强调的是,该文件系统编译出来很大,有300M左右,可以烧写到emmc版本核心板中,想要烧写到nandflash版本中,需要对文件系统进行裁剪。
     这个文件系统所需的uboot、内核、设备树均使用之前编译的或者资料里提供的,烧写即可。如下图:烧写时间较长,这是我们烧写到开发板,启动之后的画面。
五 构建SDK工具
    这一节我们主要讲解的是SDK工具的构建步骤。SDK工具里包含交叉编译工具,后期我们以yocto为系统,开发出来的qt程序,c程序,都需要用到。
我们新开启一个终端界面,还是使用普通用户登录。如下图所示:
    然后我们使用命令“cd yocto/”进入之前进行yocto项目操作的文件夹。如下图所示:
接着我们使用命令
“DISTRO=fsl-imx-x11 MACHINE=imx6ull14x14evk source fsl-setup-release.sh -b build_x11”
添加项目配置信息(生成目录还是之前的build_x11)。如下图所示:
然后使用命令“bitbake meta-toolchain-qt5”构建SDK工具。如下图所示:
耐心等待构建完成,该工具会在“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/”即可查看。如下图所示:
        执行这个脚本文件之后,编译器会自动安装到“/opt”目录下,这个交叉编译器可用于编译uboot,内核,文件系统,以及c程序,qt程序。在之后的yocto程序开发中会讲到。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表