安装交叉编译工具链
使用环境:
Ubuntu 12.04 LTS
1. 安装基本开发包
$ sudo apt-get install bison flex patch libncurses5-dev texinfo automake libtool gcj-jdk cvs cvsd gawk gperf$ sudo apt-get install expat libexpat-dev
安装termcap:
$ tar zxvf termcap-1.3.1.tar.gz$ cd termcap-1.3.1$ ./configure --prefix=/usr$ make -j2$ sudo make install
2. 下载源码包
crosstool-ng可以自动去下载源码包,为减少时间可以提前下载以下源码包:
binutils-2.19.1a.tar.bz2 16M
dmalloc-5.5.2.tgz 651K
duma_2_5_15.tar.gz 235K
ecj-latest.jar 1.5M
expat-2.1.0.tar.gz 550K
gcc-4.3.2.tar.bz2 57M
gdb-6.8a.tar.bz2 16M
glibc-2.9.tar.bz2 16M
glibc-ports-2.9.tar.bz2 447K
gmp-4.3.2.tar.bz2 1.9M
libelf-0.8.13.tar.gz 146K
linux-2.6.32.61.tar.xz 51M
ltrace_0.5.3.orig.tar.gz 144K
mpfr-2.4.2.tar.bz2 1.1M
ncurses-5.9.tar.gz 2.7M
strace-4.5.19.tar.bz2 488K
3. 编译安装交叉编译工具链crosstool-ng
下载crosstool-ng:
$ tar jxvf crosstoo-ng-1.19.0.tar.bz2 -C /work/tools$ mkdir /work/tools/crosstool-ng-1.19.0_build$ mkdir /work/tools/crosstool-ng-1.19.0_install$ cd /work/tools/crosstool-ng-1.19.0$ ./configure --prefix=/work/tools/crosstool-ng-1.19.0_install$ make -j2$ make install
4. 配置crosstool-ng
$ cd /work/tool/crosstoo-ng-1.19.0_build$ cp ../crosstool-ng-1.19.0/sample/arm-unknown-linux-gnueabi/* .$ mv crosstool.config .config$ ../crosstool-ng-1.19.0_install/bin/ct-ng menuconfig
a)配置源码包路径和交叉编译器安装路径
Paths and misc options --->(/work/tools/src) Local tarballs directory #源码包路径(/work/tools/crosstool) Prefix directory # 交叉编译器的安装路径并把下载的源码包放入/work/tools/src目录下
b)配置交叉编译器针对体系结构
Target options --->*** Target optimisations ***( armv4t ) Architecture level( arm9tdmi ) Emit assembly for CPU( arm920t ) Tune for CPU相关参考信息可以参考:man gcc-4.3.2/gcc/doc/gcc.1
c)关闭JAVA编译器
C compiler --->*** Additional supported languages: ***[ ] Java
d)配置编译时使用的核数
Paths and misc options --->*** Build behavior ***( 4 ) Number of parallel jobs
e)配置使用的内核版本
Operating System --->Target OS (bare-metal) --->与下载的内核版本匹配
f)配置编译名称前缀
Toolchain options --->*** Tuple completion and aliasing ***(arm920t) Tuple's vendor string生成的编译器前缀:arm-arm920t-linux-gnueabi-
g)退出并保持配置
5. 编译交叉工具链
$ ../crosstool-ng-1.19.0_install/bin/ct-ng build
6. 配置交叉工具链环境变量
$ sudo vi /etc/profile
export PATH=$PATH:/work/tools/crosstool/bin
$ source /etc/profile$ arm-arm920t-linux-gnueabi-gcc -v