linaro交叉编译工具安装配置

一、交叉编译工具配置

在Linaro官网下载交叉编译工具链:https://www.linaro.org/downloads/
linaro交叉编译工具安装配置_第1张图片
选择arm developer website
根据自己的平台下载对应的交叉编译工具链,我用的是PC环境虚拟机下的UBUNTU,所以选择

x86_64 Linux hosted cross compilers;

目标是用于ZYNQ linux平台,所以选择

AArch32 target with hard float (arm-linux-none-gnueabihf)

(如果是ultrascale+平台,虽然和zynq很像,但是需要选择AArch64 GNU/Linux target (aarch64_be-none-linux-gnu))
最终下载得到
gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz文件
放进虚拟机里解压。

对于交叉编译工具链的讲解可参考以下文章,感觉写的挺细致的
arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别_凌风探梅的专栏-CSDN博客

二、配置arm交叉编译器arm-linux-gnueabihf-,设置环境变量

export PATH=$PATH:/home/用户名/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin

上述为临时增加环境变量,关闭teminal后就无效了,所以在在 “/home/用户名” 目录下的 “.bashrc” 隐藏文件或直接在 “/etc/profile”文件中增加以上语句

三、更换阿里云的源

sudo vim /etc/apt/sources.list

http://mirrors.aliyun.com/ubuntu/dists/
该地址为阿里云的源,由于我用的是ubuntu20.04 lts,代号为focal,所以更改阿里云源如下所示。

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

更改后输入以下指令更新交叉编译工具所用的依赖库

sudo apt-get update

此时提示错误,愿意是需更改dns,编辑

sudo vi /etc/resolv.conf

并删除原有的(必须删除!)

nameserver 127.0.0.53

添加

nameserver 8.8.8.8
nameserver 8.8.4.4

(如果vi过程中,出现滚动鼠标滑轮、或按方向键,出现自动输入字母AB之类的,直接更新一下vi就可以了 apt-get install vim)

四、安装32位依赖库

此时若直接make,如编译uboot,在u-boot-master文件夹下使用make menuconfig编译u-boot一般会各种报错,是因为其依赖库未安装。

#安装各种库

apt-get install lib32z1 lib32ncurses5-dev lib32stdc++6 libbz2-1.0:i386
apt-get install libssl-dev
apt-get install device-tree-compiler
apt-get install libncurses5-dev 
apt-get install u-boot-tools
apt-get install bison –y
apt-get install flex

五、完成后可通过arm-none-linux-gnueabihf-gcc -v查看交叉编译链的版本

Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/home/innocent/zynq/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/../libexec/gcc/arm-none-linux-gnueabihf/10.3.1/lto-wrapper
Target: arm-none-linux-gnueabihf
Configured with: /data/jenkins/workspace/GNU-toolchain/arm-10/src/gcc/configure --target=arm-none-linux-gnueabihf --prefix= --with-sysroot=/arm-none-linux-gnueabihf/libc --with-build-sysroot=/data/jenkins/workspace/GNU-toolchain/arm-10/build-arm-none-linux-gnueabihf/install//arm-none-linux-gnueabihf/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/data/jenkins/workspace/GNU-toolchain/arm-10/build-arm-none-linux-gnueabihf/host-tools --with-mpfr=/data/jenkins/workspace/GNU-toolchain/arm-10/build-arm-none-linux-gnueabihf/host-tools --with-mpc=/data/jenkins/workspace/GNU-toolchain/arm-10/build-arm-none-linux-gnueabihf/host-tools --with-isl=/data/jenkins/workspace/GNU-toolchain/arm-10/build-arm-none-linux-gnueabihf/host-tools --with-arch=armv7-a --with-fpu=neon --with-float=hard --with-mode=thumb --with-arch=armv7-a --with-pkgversion='GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.3.1 20210621 (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 

你可能感兴趣的:(linux,ubuntu)