u-boot移植(一)---準備工作
一、工具鏈的制作
1.1 工具
軟件工具:crosstool-ng
下載地址:git clone https:
//github.com/crosstool-ng/crosstool-ng
crosstool-ng的環境需要libncurse5-dev
sudo apt-
get
install libncurse5-dev
安裝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 install
export PATH="${PATH}:`pwd`/crosstool/bin"
1.2 開始制作
1.2.1 建立目標文件夾
根目錄下建立三個文件夾:
mkdir src x-tools crosstool
1.2.2 環境
進入crosstool目錄:cd ~/.crosstool
執行:ct-ng list-samples
選擇arm-unknown-linux-gnueabi 作為交差編譯工具鏈的模版
執行命令:ct-ng show-arm-unknown-linux-gnueabi,查看編譯交差編譯工具鏈所需要的配置
下載gcc 6.3.0:wget http://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz
執行命令:ct-ng arm-unknown-linux-gnueabi
執行命令:ct-ng menuconfig
選擇 Target options
*** Target optimisations ***
(armv7-a) Architecture level :指令集架構,exynos4412為armv7-a架構,-march=name
(arm920t) Emit assembly for CPU :CPU核心類型, -mcpu=name
(cortex-a9) Tune for CPU:對CPU的優化,具體可以查看芯片手冊,-mtune=name
最新版本的crosstool-ng只需要選擇第一二項目就好了。
選擇 toolchain options:
保存退出。
1.2.3 編譯
執行命令:ct-ng build
編譯成功:
建立環境變量:
PATH=~/x-tools/arm-s3c2440a-linux-gnueabihf/bin:$PATH/
arm-s3c2440a-linux-gnueabihf-gcc -v
u-boot移植(一)---準備工作