因为我那块陈旧2440开发板自带的工具链,并不能成功编译最新的uboot和内核。所以先从Build最新工具链开始吧。
一,crosstool与crosstool-ng
本来从零开始编译一个工具链是一个很辛苦很繁琐的事情,但自从crosstool出现后,一切变得那么傻瓜化。
crosstool是一套自动编译工具链的工具,它会根据用户配置,自动从网上下载特定版本的GNU工具(如gcc,gdb,glibc,binutils等)和内核源码,编译生成用户自己的工具链。
crosstool-ng是crosstool next generation的意思。crosstool最后一个版本只支持到2.6.x版本的内核。而后出现了crosstool-ng,并一直在更新以支持最新的内核和工具链。
二,下载安装crosstool-ng
从http://www.crosstool-ng.org/download/crosstool-ng/可以下载到crosstool-ng。
最新的版本为1.20.0,该版本没有补丁,直接下载压缩包,解压,配置。
tar jxvf crosstool-ng-1.20.0.tar.bz2
cd crosstool-ng--1.20.0
./configure
make
sudo make install
配置的时候,如果报错,根据错误提示安装相应软件包即可。(ubuntu上直接用apt-get install xxx一切皆搞定)
安装好以后,就可以用命令ct-ng了。
三,下载zlib1g-dev和libexpat-dev
编译ct-ng前,请确保安装了上面两个包
四,配置和编译工具链
cp samples/arm-unknown-linux-gnueabi/crosstool.config .config
ct-ng menuconfig
使用图形界面来配置工具链,一切那么傻瓜化,当然配置选项其实很多。如果想详细了解google一下就是。
配置在这里就用默认的即可,当然,把编译后的工具链的名称改了一下,改成了arm-jing2440-linux-gnueabi
注:在Toolchain options --->(tonghuix) Tuple's vendor string 这里可以修改成你自己的个性化名称,最后会生成形如arm-yourname-linux-gnueabi这样的编译器前缀。
配置好以后,保存配置。
输入编译命令:ct-ng build
漫长的下载和编译过程开始了,大约2~3个小时后,终于成功了,如下图:
生成的工具链如下图:
文章评论(0条评论)
登录后参与讨论