交叉编译工具制作
制作交叉编译器
做嵌入式开发少不了平台操作,因此也少不了使用交叉编译器,我们可以用的别人已经做好的编译器,但是有的时候别人的交叉编译器不一定适合我们,所以我们可以自己做一个属于自己的交叉编译器。
1、下载代码包
使用命令wget http://www.kegel.com/crosstool/crosstool-0.43.tar.gz,当然也可以使用windows 迅雷来下载buildroot-2011.11制作交叉编译器所需要的源码包,如果不提前下载的话,在编译buildroot-2011.11的时候linux也会自动下载,但是速度很慢,所以建议还是提前下载。并把所有所有的源码包都放在名为buildroot-2011.11-packet的文件夹下。(下载的代码包有:binutils-2.15.tar.bz2 、gcc-3.4.5.tar.bz2、 glibc-2.3.6.tar.bz2、glibc-linuxthreads-2.3.6.tar.bz2、linux-2.6.8.tar.bz2、linux-libc-headers-2.6.12.0.tar.bz2)
2、把代码包上传到linux上
2.1 修改/opt的权限
我们一般把检查编译器放在linux的/opt目录下,当然这不是绝对的。因为linux安装好后,/opt目录默认只有root才具有写的权限,所以要修改其权限。[yangzheng@centos6 ~]$ ls -ld /opt/
drwxr-xr-x. 2 root root 4096 11月 11 2010 /opt/
[yangzheng@centos6 ~]$ sudo chmod 777 /opt/
[sudo] password for yangzheng:
[yangzheng@centos6 ~]$ ls -ld /opt/
drwxrwxrwx. 2 root root 4096 11月 11 2010 /opt/
2.2 上传代码包
2.3 解压缩并制作源代码包[yangzheng@centos6 opt]$ tar -jxf buildroot-2011.11-packet/buildroot-2011.11.tar.bz2
[yangzheng@centos6 opt]$ ls
buildroot-2011.11 buildroot-2011.11-packet
2.4 再将上传的buildroot-2011.11-patcket这个文件夹移到buildroot-2011.11这个文件夹下,并重命名为dl。[yangzheng@centos6 opt]$ sudo mv buildroot-2011.11-packet/ buildroot-2011.11/dl
[sudo] password for yangzheng:
[yangzheng@centos6 opt]$ ls
buildroot-2011.11
[yangzheng@centos6 opt]$ ls buildroot-2011.11/
board CHANGES configs dl fs Makefile support toolchain
boot Config.in COPYING docs linux package target
[yangzheng@centos6 opt]$ ls buildroot-2011.11/dl/
binutils-2.21.1.tar.bz2 gmp-5.0.2.tar.bz2 uClibc-0.9.32.tar.bz2
buildroot-2011.11.tar.bz2 linux-2.6.37.tar.bz2 zlib-1.2.5.tar.bz2
ccache-3.1.4.tar.bz2 lzo-2.06.tar.gz
gcc-4.3.6.tar.bz2 mpfr-3.0.1.tar.bz2
[yangzheng@centos6 opt]$ ls
buildroot-2011.11
3、配置交叉编译器CPU类型
3.1 在开始编译之前我们配置交叉编译器,使用哪些依赖的软件包,及版本。首先make muneconfig(如果有乱码的话)export TERM=vt100 ,make menuconfig
3.2
这里矫正一个错误,2440的CPU应该是arm920t.
3.3 配置Buildroot Options
这里我们开始配置交叉编译器的"Build options --->"选项,如下:
大家可以看到这里的“($(TOPDIR)/dl) Download dir (NEW)”,这里的dl就是为什么之前我们要把源代码文件夹重命名为dl的原因。
“($(TOPDIR)/arm920t) Host dir”就是指定我们制作出来的交叉编译器所在的路径,注意这里大家设置为$(TOPDIR),而不是默认的${BASEDIR},否则以后用我的代码可能会有问题。
3.5 配置“Toolchain”选项
接下来我们配置Toolchain,这里主要是选择Linux内核头文件的版本,GNU/GCC相关工具链的版本等。具体选项如下:
注意上面在“Kernel Headers”先要设置“Linux 2.6 (manually specified version)”,然后再输入“linux version”的版本为2.6.37。
3.5 其它配置
在完成上面的配置后,剩下的配置就比较简单了:
“System configuration --->”使用默认的选项,不要作修改;
“Package Selection for the target --->”这里我们只选择今后经常需要的两个库文件:
Package Selection for the target --->
Libraries --->
Compression and decompression --->
[*] lzo
[*] zlib
“Filesystem images --->”全部取消,不要选;
“Bootloaders --->”全部取消,不要选;
3.6完成配置
在完成上面的所有配置后,我们选择“Save an Alternate Configuration File”保存这些配置,然后使用“Tab”键选择到“Exit”上退出。这时,我们就会在当前目录下,看到一个名为.config的掩藏文件。在之后的编译过程中,Makefile将根据这个文件来选择相应的软件包和特性来编译安装。
4、最后make 即可(大概需要30分钟),机器差一点的话可能一个小时。
5、测试一下!