Chinaunix首页 | 论坛 | 博客
  • 博客访问: 524105
  • 博文数量: 87
  • 博客积分: 4086
  • 博客等级: 上校
  • 技术积分: 900
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-23 15:55
文章分类

全部博文(87)

文章存档

2012年(3)

2010年(13)

2009年(7)

2008年(64)

我的朋友

分类: LINUX

2008-08-05 19:28:52

使用的操作系统是Debian 4.0 。
 
在开始制作之前,需要先安装以下工具,不然配置的时候会出错:
 
apt-get install build-essential
 
apt-get install bison flex
 
好了,基本的配置完成后,就可以开始配置交叉编译环境了。
 
首先将下载的源码包全部放在一个目录,我的目录是/mnt/hgfs/e/tools,需要下载的源码包包括如下几个:
 
binutils-2.16.1.tar.bz2             binutils-2.17.tar.bz2
gcc-3.3.6.tar.bz2                   gcc-4.1.0.tar.bz2
gdb-6.5.tar.bz2                     glibc-2.3.2.tar.gz
glibc-2.3.6.tar.gz                  glibc-linuxthreads-2.3.2.tar.gz
glibc-linuxthreads-2.3.6.tar.bz2    linux-2.6.15.4.tar.bz2
linux-libc-headers-2.6.12.0.tar.bz2
 
然后,下载crosstool工具包,下载地址:
 
三个重要文件:
 
arm.dat

  KERNELCONFIG=`pwd`/arm.config
  TARGET=arm-linux #交叉编译软件的前缀,如arm-linux-gcc
  TARGET_CFLAGS="-O"

demo-arm.sh

#!/bin/sh

# This script has one line for each known working toolchain

# for this architecture. Uncomment the one you want.

# Generated by generate-demo.pl from buildlogs/all.dats.txt


set -ex
TARBALLS_DIR=/mnt/hgfs/e/tools #源码包位置
RESULT_TOP=/opt/crosstool #安装文件位置
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++" #选择语言
export GCC_LANGUAGES

# Really, you should do the mkdir before running this,

# and chown /opt/crosstool to yourself so you don't need to run as root.

mkdir -p $RESULT_TOP

#eval `cat arm.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest

#eval `cat arm.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-2.95.3-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.3.6-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.1.0-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest

eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest#这是我们要编译的交叉环境的版本

echo Done.

 

gcc-4.1.0-glibc-2.3.2-tls.dat

BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.0
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.15.4
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
GDB_DIR=gdb-6.5
GLIBC_EXTRA_CONFIG="$GLIBC_EXTRA_CONFIG --with-tls --with-__thread --enable-kernel=2.4.18"

 

然后,就可以运行./demo-arm.sh开始配置和编译了。注意,这个操作要在用户模式下完成,root模式下会出错,并退出。

注意,这个过程需要较长的时间,我在虚拟机下用了大概两个小时。安装完成以后,试着编译了一下uboot,版本为1.3.2,编译过程没有异常,得到的二进制文件也能正常使用。

祝你好运!

阅读(1220) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~