由于先前使用的redhat 9对新硬件的支持不好,所以准备转向了Ubuntu了。用了一天的时间终于搞定了arm-linux-gcc的安装。
之前的几次失败经验就不再罗嗦了,直入正题。
注意:下面所有的youname需要用实际的用户名替代。1.准备以下软件包:
crosstool-0.42.tar.gz(必须)
以下软件包可选则下载(因为corsstool在安装过程中回自动下载)
gcc-3.3.6.tar.bz2
binutils-2.15.tar.bz2
linux-2.6.10.tar.gz
glibc-2.3.2.tar.gz
glibc-linuxthreads-2.3.2.tar.gz
linux-2.6.10.tar.gz
2.将crosstool-0.42.tar.gz放在$home目录下
代码:
cd $home
mkdir downloads
将以下包放在新建的downloads目录下(也可以空着,cross_tool会自动从网上下载)
gcc-3.3.6.tar.bz2
binutils-2.15.tar.bz2
linux-2.6.10.tar.gz
glibc-2.3.2.tar.gz
glibc-linuxthreads-2.3.2.tar.gz
linux-2.6.10.tar.gz
代码:
sudo mkdir /opt/crosstool
sudo chown youname /opt/crosstool
tar -xvzf crosstool-0.42.tar.gz
cd crosstool-0.42
cp demo-arm.sh arm.sh
vi arm.sh
修改arm.sh,内容如下:
代码:
#!/bin/sh
set -ex
TARBALLS_DIR=$home/downloads
RESULT_TOP=/opt/crosstool
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES
mkdir -p $RESULT_TOP
eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
echo Done.
代码:
vi arm.dat
修改arm.dat,内容如下:
代码:
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux
TARGET_CFLAGS="-O"
代码:
[b]vi gcc-3.3.6-glibc-2.3.2.dat[/b]
修改arm.dat,内容如下:
代码:
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.3.6
GLIBC_DIR=glibc-2.3.2
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
LINUX_DIR=linux-2.6.10
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
3.获得必要软件包
代码:
sudo apt-get install build-essential bison flex
sudo apt-get install gcc-3.4
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
注意:此处用gcc-3.4替代了系统自带编译器,待安装后可以用同样方法改回来4.安装(会出错)
代码:
./arm.sh
5.修改文件
代码:
vi $home/crosstool-0.42/build/arm-linux/gcc-3.3.6-glibc-2.3.2/build-glibc/csu/version_info.h
修改version_info.h文件,内容如下:
代码:
"Compiled on a Linux >>2.6.24-19-generic<< system on 2008-10-11."
"Available extensions:"
"GNU libio by Per Bothner\n"
"crypt add-on version 2.1 by Michael Glad and others\n"
"linuxthreads-0.10 by Xavier Leroy\n"
"BIND-8.2.3-T5B\n"
"libthread_db work sponsored by Alpha Processor Inc\n"
"NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk\n"
6.再次安装(时间较长)
代码:
./arm.sh
export PATH=/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/bin:$PATH
sudo vi /etc/bash.bashrc
在文件最后一行加入:
代码:
export PATH=/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/bin:$PATH
7.安装完毕
代码:
cd /opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/bin
ls
备注:
1.上述4,5,6步骤可以变通一下,手动将glibc-2.3.2.tar.gz解压,修改version_info.h文件后再编译
2.如果采用不同版本软件包可以参看
3.本方法参考了网上一些资料,对这些资料的作者表示感谢!