crosstool-ng编译交叉工具链
一、准备工作
1. 建立工作文件夹
2.下载crosstool-ng
1 | git clone https: //github.com/crosstool-ng/crosstool-ng |
crosstool-ng的环境需要libncurse5-dev
1 | sudo apt- get install libncurse5-dev |
3.安装
1 | 安装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 instalexport PATH= "${PATH}:`pwd`/crosstool/bin" |
二、编译链制作
1.根目录下建立三个文件夹
mkdir src x-tools crosstool
进入crosstool目录:
cd ~/.crosstool
1 | 执行:ct-ng list-samples |
1 | ct-ng show-arm-cortexa9_neon-linux-gnueabihf |
1 | ct-ng arm-cortexa9_neon-linux-gnueabihf |
1 | 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. 编译完成
1 | ls ~/x-tools/arm-cortexa9_neon-linux-gnueabihf/ |
建立环境变量:
1 2 | PATH=~/x-tools/arm-cortexa9_neon-linux-gnueabihf/bin:$PATH/ arm-cortexa9_neon-linux-gnueabihf-gcc -v |
3.编译内核
1 | make ARCH=arm CROSS_COMPILE=arm-cortexa9_neon-linux-gnueabihf- exynos_defconfig |
1 | exynos_defconfig是内核自带的配置文件,具体目录在 /arch/arm/config/ 目录中 |
1 | 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/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步