前言:
本文是来自哔哩哔哩网站上视频“正点原子[第二期]Linux之ARM(MX6U)裸机篇”的学习笔记,在这里会记录下正点原子Linux ARM MX6ULL 开发板根据配套的哔哩哔哩学习视频所作的实验和笔记内容。本文大量的引用了正点原子哔哔哩网站的教学视频和链接中的内容。
引用:
正点原子IMX6U仓库 (GuangzhouXingyi) - Gitee.com
使用crosstool-ng制作交叉编译工具链-CSDN博客
Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程_交叉编译环境的搭建-CSDN博客
嵌入式系统——交叉编译概念与环境搭建_交叉编译环境-CSDN博客
正文:
“正点原子[第二期]Linux之ARM(MX6U)裸机篇”第1.2 讲学习笔记,安装 ARM 交叉编译工具链。一般是在 x86 Ubuntu Linux 主机上编译给 ARM 开发板使用的镜像。在 x86 主机上编译出给 arm 开发板使用的可执行镜像,所以称为交叉编译。
ARM 交叉编译工具链,也成为了 toolchain ,ARM开发一般使用的是 Linaro 提供的已经已经预编译好的 x86 -arm 交叉编译工具链。访问 www.linaro.org 网站,可以下载需要的 x86-arm 交叉编译工具。
根据正点原子 Gitee 网站上提供的 I.MXU6LL 开发板的指导文档《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》
正点原子IMX6U仓库 (GuangzhouXingyi) - Gitee.com
在《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》文档里4.3.1 小结给出了下载 Linaro 交叉编译工具链的下载链接地址。
Linaro Releaseshttps://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/到该页面下载需要的Linaro ARM 交叉编译工具链,
有很多种 GCC 交叉编译工具链,因为我们所使用的 I.MX6U-ALPHA 开发板是一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf,点击后面的“Binaries”进入可执行文件下载界面。
在正点原子的《.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》文档里提到,当是正点原子测试时发现当时(2019年)最新的GCC编译器版本 gcc-7.3.1 工具链编译的uboot无法启动。
在写本教程的时候最新的编译器版本是 7.3.1,但是笔者在测试 7.3.1 版本编译器的时候发现编译完成后的 uboot 无法运行。所以这里不推荐使用最新版的编译器。笔者测试过 4.9 版本的编 译 器 可 以 正 常 工 作 , 所 以 我 们 需 要 下 载 4.9 版 本 的 编 译 器 , 下 载 地 址 为
因为我实在初学阶段,为了简单起见,直接参考 《.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》文档里的建议下载如下 gcc-4.9 版本的交叉编译工具链。
Linaro Releaseshttps://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
根据你Ubuntu虚拟机的系统来选择需要再下载的版本,32位Ubuntu虚拟机选择名字中有i686的,64位Ubuntu虚拟机选择名字中有x86_64的。我安装的的是Virtualbox x86 32位 Ubuntu-14.04 虚拟机,所以我下载的是 'gcc-linaro-2017.01-i686-arm-linux-gnueabifh.tar.xz’,根据实际情况选择你需要的版本。鼠标右键复制链接地址,进入Ubuntu虚拟机,使用'wget'命令下载需要的gcc-4.9交叉编译工具链
##把xxx替换成需要下载文件URL链接地址
wget xxx
查看下下载下来的交叉编译工具链
dimon@dimon-VirtualBox:~/I.MX6U/tool$ ls -l
total 77984
-rw-rw-r-- 1 dimon dimon 79854508 2月 27 2018 gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.xz
解压下载的交叉编译工具链'tar -xf '
tar -xf gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.xz
将加压好的交叉编译链工具路径添加到Ubuntu Linux虚拟机的环境变量 ‘PATH’ 中,编辑用户目录下的 'sudo vi ~/.profile' 文件,在文件的尾部加上一行(根据你实际把编译工具链路径替换成你自己的路径)。
##编辑用户目录下的 .profile 文件
sudo vi ~/.profile
在文件的最后填上如下一句,把交叉编译工具链的路径添加了'PATH'环境变量中。
PATH=$PATH:/home/dimon/I.MX6U/tool/gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf/bin/
添加成功,退出保存文件修改。重新登录Ubuntu虚拟机,测试下对环境变量'PATH'的修改是否已经生效,执行命令'cat $PATH'确认下交叉编译工具链的路径已经添加到环境变零PATH中。
cat $PATH
测试执行下‘arm-linux-gnueabihf-gcc -v’ 命令可以执行成功,说明交叉编译环境已经配置好了。