一、准备工作

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/

crosstool-ng编译交叉工具链的更多相关文章

  1. X86上搭建交叉工具链,来给龙芯笔记本编译本地工具链(未完待续)

    故事的背景是,我买了一台龙芯2F的笔记本来装B. 为什么说是装B呢?因为不但操作系统是Linux,而且CPU还是龙芯的. 一般人有这么酷的装备吗?简直是装B大圣啊. 这里一定要申明一点,本人不是IT技 ...

  2. FriendlyARM交叉工具链以及编译第一个arm9应用

    不记录什么都会忘光!!!这两天又要用到开发板来做项目,可是好久没有碰了,最近一直在搞上层的东东,对rails和前端感兴趣,我这是不要毕业的节奏了吗?好吧,既然什么都忘光掉了,那就干脆来个痛快,重新装机 ...

  3. 【嵌入式】使用Cross Toolchain构建交叉工具链

    Preface 前面编译linux内核的时候,用各种cross版本都不行啊,真是纠结,于是就想着自己也要会编译交叉工具的方法,然后各种尝试,各种问题啊,最后还是没解决(还有其它事情),步骤我都走熟了, ...

  4. 【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705  参考博客 : [嵌入式开发]嵌入式 开发环境 (远 ...

  5. X86给龙芯笔记本编译本地工具链(未完待续)

    我买了一台龙芯2F的笔记本来当玩具. 买回来发现,这台笔记本上没法安装软件,因为既没有软件仓库,也没有GCC. 因此需要构建交叉工具链和构建本地工具链. 下面是我研究如何搞定着一切的笔记. 工具链组件 ...

  6. linux driver ------ 交叉工具链(cross toolchain)

    在 ARM Linux 的开发中,人们趋向于使用 Linaro(http://www.linaro.org/)工具链团队维护的 ARM 工具链,它以每月一次的形式发布新的版本,编译好的可执行文件可以网 ...

  7. 交叉工具链和makefile

    交叉工具链: arm-linux-gcc:交叉编译器 arm-linux-ld:交叉连接器 arm-linux-readelf:交叉ELF文件工具 arm-linux-objdump:交叉反汇编器 a ...

  8. gcc 交叉工具链中工具使用(arm-linux-xxx)

    在Ubuntu系统中使用 gcc 系列工具是在PC机上使用 arm-linux-gcc 编译的目标 是在 arm CPU上使用 一.安装交叉编译工具链 1. 编译工具怎么获取 1)从官网 http:/ ...

  9. ARM裸机开发之交叉工具链和MakeFile工程管理

    一.交叉工具链 嵌入式Linux开发采用交叉开发,简单来说就是在宿主机(PC机)上面编译出能够在其他硬件平台上面运行的程序.在这个过程中,需要用到许多的交叉工具,这些交叉工具的集合就叫做交叉工具链.下 ...

随机推荐

  1. luogu3811 乘法逆元

    逆元定义:若a*x=1(mod p),(a,p互质),则x为a mod p意义下的逆元 做法见https://www.luogu.org/blog/zjp-shadow/cheng-fa-ni-yua ...

  2. EEPROM

    EEPROM (Electrically Erasable Programmable read only memory),带电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片. EEPROM 可 ...

  3. springcloud干货之服务注册与发现(Eureka)

    springcloud系列文章的第一篇 springcloud服务注册与发现 使用Eureka实现服务治理 作用:实现服务治理(服务注册与发现) 简介: Spring Cloud Eureka是Spr ...

  4. String:字符串常量池

    String:字符串常量池 作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三个问题,去理解字符串常量池: 字 ...

  5. Jupyter Notebook的安装

    依赖安装 pandoc texlive-xetex texlive-lang-cjk 安装Jupyter Notebook 本文不讲解在Anaconda中安装. 安装方法 sudo python -m ...

  6. java 一个类调用另一个类的方法

    在要调用的类B中对调用类A实例化(在B中:A a = new A();a.function();)

  7. nginx搭建分布式简单配置

    1.下载安装nginx 2.编辑nginx.conf文件 upstream 172.100.10.52 { ip_hash; #保证每一个用户访问同一个网站 server 172.100.10.21: ...

  8. Haproxy 安装初体验

    20180916 haproxy Haproxy简介 Haproxy是一款免费的.快速的和稳定的解决方案,提供HA和LB功能,同时对基于TCP的应用和HTTP的应用进行代理,对于流量很大的web站点来 ...

  9. maomao的每日动向

    \(2019.02.04\) \(Nothing\) \(to\) \(do\). \(2019.02.05\) - 早上睡到\(12\)点 - 中午下午:吃饭串门拜年 - 晚上:吹爆<流浪地球 ...

  10. 【清北学堂2018-刷题冲刺】Contest 6

    Task 1:子集 [问题描述]  若一个集合S中任意两个元素x和y,都满足x⊕y<min⁡(x, y) ,则称集合S是"好的".其中⊕为按位异或运算符.现在给定一个大小为n ...