编译新版本的 U-boot和 Linux 内核需要选择比较新的 ARM 交叉编译工具链,如果使用的叉编译工具链版本比较低可能会导致编译不通过。这里要注意的一点是要根据虚拟机里Ubuntu 系统的位数来选择 64 位的交叉编译器工具链还是 32 位的交叉编译工具链。
1、Linaro 提供的 ARM 交叉编译工具链,可以到 Linaro 官网Linaro Releases去下载已经制作好的交叉编译工具链。
2.yagarto提供的 ARM 交叉编译工具链,可以到 yagarto 官网Yet another GNU ARM toolchain去下载已经制作好的交叉编译工具链。
以Linaro为例:
(1)首先在 Ubuntu 系统中安装相关的标准 C 开发环境库,在 Ubuntu 系统终端执行命令: $ sudo apt-get install gcc g++ libgcc1 libg++ make gdb
(2)完成相关库的安装。安装好相关库后,在/usr/local/目录下新建名为 ARM-toolchain的文件夹用于存放交叉编译工具链。接下来就是下载交叉编译工具链,相关命令如下:
$ cd /usr/local/ARM-toolchain
$ sudo wget http://releases.linaro.org/components/toolchain/binaries/6.1-2016.08/ar-m-linux-gnueabi/gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi.tar.xz
$ xz -d gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi.tar.xz
$ tar xvf gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi.tar
(3)接下来需要把交叉编译工具链的路径添加到 Ubuntu 系统的环境变量中去。在/etc/bash.bashrc 文件中添加如下内容:
# Add ARM toolschain path
if[ -d/usr/local/ARM-toolchain/gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi
] ; then
PATH=/usr/local/ARM-toolchain/gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnuea
bi/bin:"${PATH}"
fi
然后执行 source /etc/bash.bashrc 命令使新的环境变量生效。
(4)安装完成后,我们可以在终端执行 arm-linux-gnueabi-gcc –v 命令来查看交叉编
译工具链的版本信息,如下图所示:
图 1 交叉工具链版本信息