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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM