第一步在Fedora 8下用crosstool-ng建立arm-linux交叉编译环境(TQ2440 S3C2440)--->完结,测试通过

Linux系统:Fedora8(2.6.23版本的内核)

Linux localhost.localdomain 2.6.23.1-42.fc8 #1 SMP Tue Oct 30 13:55:12 EDT 2007 i686 i686 i386 GNU/Linux

一、手动安装termcap

#tar zxvf termcap-1.3.1.tar.gz
#cd termcap-1.3.1
#sudo  ./configure  prefix=/usr
#sudo make 
#sudo make install
 

二、准备crosstool-ng的安装环境(建议在第五步编译的过程中,根据错误提示来安装相应版本的工具。)

bison
flex
texinfo
automake
libtool
patch
gcc-java(原名叫gcj手动安装)
cvs
cvsd(手动安装)
gawk

glibc-static(手动安装)

在Fedora下,可使用命令 $ yum install xxx 依次安装。
PS:手动安装,就是自己去下载安装包,然后按照termcap的安装方法安装就可以了。有些工具没有yum源,所以需要自己手动安装。

三、下载解压crosstool-ng-1.9.3、打补丁(如果有)并建立工作目录

将下载下来的crosstool-ng-1.9.3.tar.bz2解压到你为她准备的工作目录,并建立安装和编译目录。

#tar xjvf crosstool-ng-1.9.3.tar.bz2 -C /work/crosstool-ng-1.9.3

# cd ../ #进入上级目录

#mkdir crosstool-ng-1.9.3_build   #这是编译新交叉编译器的工作目录

#mkdir crosstool-ng-1.9.3_install #这是crosstool-ng的安装目录


#cd  crosstool-ng-1.9.3   #进入解压后的 crosstool-ng-1.9.3目录

#patch -p1 < 补丁文件      #如果有补丁,打补丁

#./configure --prefix=/work/crosstool-ng-1.9.3_install   #配置crosstool-ng

#sudo make                    #编译crosstool-ng

#sudo make install            #安装crosstool-ng

# echo "PATH=$PATH:/work/crosstool-ng-1.9.3_install/bin" >> ~/.bashrc #为后面调用ct-ng命令增加环境变量
# source ~/.bashrc #环境变量立即生效

# ct-ng help


四、配置交叉编译工具链
$ cd ~                        #root用户根目录

$mkdirdevelopment
$ cd development

$ mkdir src                               #  建立保存源码包目录
$ mkdir x-tools                           #  建立交叉编译器的安装路径

$cd /work/crosstool-ng-1.9.3_build/

$ cp /work/crosstool-ng-1.9.3/samples/arm-unknown-linux-gnueabi/crosstool.config .config #拷贝默认配置文件
$ ct-ng menuconfig

   此时会出现crosstool-ng的配置窗口,针对armv4t体系架构,开始对其进行修改配置:
1、已下载好的源码包路径和交叉编译器的安装路径。
Paths and misc options  --->
  (${HOME}/development/src) Local tarballs directory            #保存源码包路径HOME代表当前用户目录,/home/xxx,我使用的root目录,所以HOME目录代表~。
  (${HOME}/development/x-tools/${CT_TARGET}) Prefix directory  #交叉编译器的安装路径
2、修改交叉编译器针对的构架
Target options  --->
           *** Target optimisations ***
           (armv4t) Architecture level
           (arm9tdmi) Emit assembly for CPU   
           (arm920t) Tune for CPU
通过查找资料,这个应该是指令集的架构,对于S3C2410/S3C2440,都是ARM920T的核心,架构指令是armv4t,所以,如果要编译2410/2440的,就选armv4t。以此类推S3C6410 ARM1176JZF-S核心 使用的是armv6架构,就选armv6,那么具体都支持哪些架构呢?可以用man gcc来查询,搜索arm,再搜索-march=就可以找到本gcc支持的处理器核心列表了。
3、增加编译时的并行进程数,以增加运行效率,加快编译。
Paths and misc options  --->
   *** Build behavior ***
   (4) Number of parallel jobs
   这个数值不宜过大,应该为CPU数量的两倍。由于我的CPU是双核的,所以我填了4.
4、一些个性化的修改(可以不修改)
Toolchain options  --->
       *** Tuple completion and aliasing *** 
       (s3c2440) Tuple's vendor string
这样产生的编译器前缀就是:arm-s3c2440-linux-gnueabi-
5、C compiler  --->(可以不修改)
       (crosstool-NG-${CT_VERSION}-s3c2440) gcc ID string
    以上红色字体部分即为修改之处。


五、编译工具链

   配置完后,在crosstool-ng-1.9.3_build目录下执行命令:$ ct-ng build.4。    

   接下来,就是漫长的等待。crosstool-ng会自动下载相应的包,内核文件,然后解压,配置,编译,链接。

   如果下载某些包出错的话,请手动下载对应版本,并把包移动到/work/crosstool-ng-1.9.3_build/targets/tarballs文件夹中。

     对啦,这些下载好的软件包应该放到哪呢?放到crosstool-ng-1.9.3_build目录下的targets/tarballs文件夹中。


六、增加环境变量

$ echo "PATH=${PATH}:${HOME}/development/x-tools/arm-s3c2440-linux-gnueabi/bin" >>/etc/profile。#增加环境变量

$ source /etc/profile                                              #生效环境变量                               

$ arm-s3c2440-linux-gnueabi-gcc 

arm-s3c2440-linux-gnueabi-cc: no input files
                                                             //测试命令OK

大家如果遇到问题无法解决,可以去看这个http://www.crifan.com/files/doc/docbook/crosstool_ng/release/htmls/crosstool_ng_features.html网站的第五章的详细介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值