查看: 2334|回复: 0

[原创] [MYD-Y6ULX试用][3]I.MX6UL交叉编译链安装

[复制链接]
  • TA的每日心情
    开心
    2019-12-26 22:21
  • 签到天数: 310 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2018-3-30 12:11:15 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 风之山谷 于 2018-3-30 18:24 编辑

    在初步体验了原装系统之后,我就打算开始尝试自己构建自己的系统,在米尔MYD-Y6ULX上编写我们的应用软件。在做这些之前,我需要一个编译工具——交叉编译链工具。交叉编译链工具,就是能够在其他架构的计算机(比如我们个人电脑)上编译成处理器能运行的二进制文件(比如I.MX6UL运行的程序),这个编译链包括了预处理、编译、汇编、链接等功能,能够让我们在速度更快、内存更大、储存空间更大的计算机上快速地从源文件编译好我们在I.MX6UL上跑的程序。由于这次拿到焊在大板上的米尔MYC-Y6UL核心板采用了256Mb内存和256Mb Nand Flash,528MHz主频处理器,编译起像Linux kernel和QT这样大型的软件就很吃力了,甚至资源还不足够。因此需要我们在电脑上使用交叉编译链工具编译好然后传输给板子,然后在板子上运行。

    米尔MYD-Y6ULX开发板上自带的光盘上就自带了两个整合好的交叉编译链工具,分别是Linaro交叉编译链和Yocto交叉编译链。当然有能力的网友可以自己尝试打包自制交叉编译链,但是一般情况下不建议自制,因为NXP官方的U-boot和Linux Kernel并不是对应使用最新版本的工具,使用新版工具可能会不兼容这些官方的代码,由此产生各种各样奇怪的问题。

    Linaro是一个各大厂商联合的公司,提供开源软件工具,其提供了I.MX6ul(ARM Cortex-A7)的交叉编译链工具,GCC version 4.9.3 20141031 (prerelease) (Linaro GCC 2014.11);Yocto是一个开源的项目,它是一个构建Linux的项目,其也提供了交叉编译链工具,GCC version 5.3.0 (GCC)。

    接下来,我将在X64处理器的电脑、Ubuntu 16.04.4 LTS 64位系统下安装以上两个交叉编译工具。


    软件包预安装

    首先需要安装一些依赖软件包,以便安装过程不会报错。在终端中输入以下命令:
    1. sudo apt-get install build-essential git-core libncurses5-dev \
    2. flex bison texinfo zip unzip zlib1g-dev gettext u-boot-tools \
    3. g++ xz-utils mtd-utils gawk diffstat gcc-multilib python git \
    4. make gcc g++ diffstat bzip2 gawk chrpath wget cpio texinfo
    复制代码
    这个遇到问你是否安装,选Y就好了。 Snipaste_2018-03-28_14-36-48.png


    Linaro交叉编译工具链安装

    首先把米尔光盘中 03-Tools/Toolchain/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz文件复制到硬盘上,例如我放在~/Y6ULX_dev/03-Tools/Toolchain。

    Snipaste_2018-03-28_15-06-40.png

    Snipaste_2018-03-28_15-55-16.png

    注意,拷贝光盘之后权限会丢失!!!因此需要使用chmod命令调整权限:
    1. chmod ug+rwx gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz
    复制代码

    然后在Toolchain文件夹下执行以下命令进行解压:
    1. tar <font color="#ff0000">-xvJf</font> gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz
    复制代码

    Snipaste_2018-03-28_16-50-59.png

    每次使用之前输入以下代码:
    1. <blockquote>export PATH=$PATH:$DEV_ROOT/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin
    复制代码
    其实也不需要安装,然后输入以下命令验证以下是否正常:
    1. arm-linux-gnueabihf-gcc --version
    复制代码

    Snipaste_2018-03-28_16-54-27.png

    输出以上即为运行正常。


    Yocto交叉编译工具链安装

    同样地,先把文件从米尔提供的光盘中拷出,我放在~/Y6ULX_dev/03-Tools/Toolchain,然后用chmod调整权限。

    Yocto提供的工具链有两种,一种是底层开发的meta-toolchain,另一种是用于应用开发的工具链。前者和Linaro类似,后者包含应用开发中的相关库,可以直接使用pkg-config工具来解决头文件或库文件的依赖关系。MYD-Y6ULX的资源包中有提供三种工具链。

    form1.png

    下面以安装core-image-base为例,输入以下命令:
    1. ./myir-imx-fb-glibc-x86_64-core-image-base-cortexa7hf-neon-toolchain-4.1.15-2.0.1
    复制代码
    然后它会让你选择安装在哪里,一般安装在/opt/<自己命名的文件夹>,用文件夹来区分这三个。

    Snipaste_2018-03-28_15-58-50.png

    安装完成之后,输入以下命令测试是否安装成功:
    1. source /opt/myir-imx-fb/4.1.15-2.0.1/CIB/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
    2. arm-poky-linux-gnueabi-gcc --version
    复制代码

    成功的话如图:

    Snipaste_2018-03-30_18-16-41.png

    其他的类似,我就放图了。

    Snipaste_2018-03-28_16-01-43.png

    Snipaste_2018-03-28_16-04-30.png


    以上就是I.MX6UL的两种交叉编译链的安装方法~


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 06:10 , Processed in 0.111952 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.