07hnust

导航

交叉编译工具制作

制作交叉编译器

  做嵌入式开发少不了平台操作,因此也少不了使用交叉编译器,我们可以用的别人已经做好的编译器,但是有的时候别人的交叉编译器不一定适合我们,所以我们可以自己做一个属于自己的交叉编译器。

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.bz2glibc-linuxthreads-2.3.6.tar.bz2linux-2.6.8.tar.bz2linux-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  --->”全部取消,不要选;

“Kernel  --->”全部取消,不要选;

3.6完成配置

  在完成上面的所有配置后,我们选择“Save an Alternate Configuration File”保存这些配置,然后使用“Tab”键选择到“Exit”上退出。这时,我们就会在当前目录下,看到一个名为.config的掩藏文件。在之后的编译过程中,Makefile将根据这个文件来选择相应的软件包和特性来编译安装。

4、最后make 即可(大概需要30分钟),机器差一点的话可能一个小时。

5、测试一下!

posted on 2013-07-29 18:21  07hnust  阅读(519)  评论(0编辑  收藏  举报