• crosstool-ng编译交叉工具链


    一、准备工作

    1. 建立工作文件夹

    2.下载crosstool-ng

    git clone https://github.com/crosstool-ng/crosstool-ng
    

     

    crosstool-ng的环境需要libncurse5-dev 

    sudo apt-get install libncurse5-dev
    

     3.安装

    安装autoconf:  sudo apt-get install autoconf
    进入crosstool-ng目录,执行./bootstrap,生成 configure 执行文件

    检查安装环境,报什么错,就安装什么软件:
    ./configure --prefix=`pwd`/crosstool

    需要的软件有:sudo apt-get install gperf bison flex texinfo help2man gawk

    执行命令 make
    执行命令 make instal
    export PATH="${PATH}:`pwd`/crosstool/bin"

    二、编译链制作

    1.根目录下建立三个文件夹

    mkdir src x-tools crosstool

    进入crosstool目录:

    cd ~/.crosstool

    执行:ct-ng list-samples
    

     

    ct-ng show-arm-cortexa9_neon-linux-gnueabihf
    

     

    ct-ng arm-cortexa9_neon-linux-gnueabihf
    

     

    ct-ng menuconfig
    

       Target options  --->     从datasheet中的 BLOCK DIAGRAM 中可以看到
               *** Target optimisations ***
               (armv7-a) Architecture level :指令集架构,exynos4412为armv7-a架构,-march=name
               (cortex-a9) Emit assembly for CPU  :CPU核心类型,  -mcpu=name
               (cortex-a9) Tune for CPU:对CPU的优化,具体可以查看芯片手册,-mtune=name

      这些参数都可以gcc里面对应,man gcc然后查找关键字即可

    工具链的分类:http://blog.csdn.net/ccskyer/article/details/16864173

    kernel下载:https://www.kernel.org/pub/linux/kernel/v4.x/

    gcc-linaro下载:http://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/

    其他工具下载:http://ftp.gnu.org/gnu/

    执行编译命令:ct-ng build,开始进行工具链的构建

    2. 编译完成

    ls ~/x-tools/arm-cortexa9_neon-linux-gnueabihf/
    

     

    建立环境变量:

    PATH=~/x-tools/arm-cortexa9_neon-linux-gnueabihf/bin:$PATH/
    arm-cortexa9_neon-linux-gnueabihf-gcc -v
    

     

    3.编译内核

    make ARCH=arm CROSS_COMPILE=arm-cortexa9_neon-linux-gnueabihf- exynos_defconfig
    

     

    exynos_defconfig是内核自带的配置文件,具体目录在 /arch/arm/config/ 目录中
    make ARCH=arm CROSS_COMPILE=arm-cortexa9_neon-linux-gnueabihf- zImage modules
    

     

    三、报错

    1. build failed int step 'Retrieving needed toolchain components' tarballs'

      查看log可知道,isl下载出错,进行手动下载:http://isl.gforge.inria.fr/

      然后重新编译。

    gcc-linaro-6.3-2017.02.tar.xa:http://releases.linaro.org/components/toolchain/gcc-linaro/6.3-2017.02/

  • 相关阅读:
    Laravel 5.1 简单学习
    Laravel5.1 报错:控制器不存在
    集电极开路、漏极开路、上拉电阻、下拉电阻等接口相关基本概念
    UDS(ISO14229-2006) 汉译(No.7 应用层协议)
    Freescale 车身控制模块(BCM) 解决方案
    汽车控制器LIMPHOME电路设计
    区分整流二极管和稳压二极管
    耦合电容和滤波电容的区别
    二极管钳位电路
    开关二极管工作原理
  • 原文地址:https://www.cnblogs.com/kele-dad/p/6697155.html
Copyright © 2020-2023  润新知