二、PowerPC-405-linux交叉编译环境的建立
需要下载的软件:
crosstool-0.43.tar.gz
gcc-4.1.0.tar.bz2
glibc-2.3.6.tar.bz2
gdb-6.5.tar.tar
binutils-2.16.1.tar.tar
linux-2.6.15.4.tar.bz2
gcc-3.3.6.tar.bz2
linux-libc-headers-2.6.12.0.tar.bz2
glibc-linuxthreads-2.3.6.tar.bz2
在安装交叉编译环境之前,脚本就会根据crosstool-0.43的demo-powerpc-405.sh脚本中定义的软件去网上找相应版本的gcc,gdb,glibc,内核等,下载并编译安装。具体所消耗的时间是和你的网速息息相关的。如果你所在的网络速度很慢,建议你还是不要尝试了,你可以看看脚本中TARBALLS_DIR目录的值,然后自行下载所需要的各种工具以及内核的源码包。唯一需要注意的就是,你自己下载的环境工具源码包的版本需要和demo-powerpc-405.sh里面指定的版本一致。上述这些软件是根据demo-powerpc-405.sh脚本以及相应.dat文件中规定的版本。我们自行下载这些文件,然后放在TARBALLS_DIR=$HOME/downloads目录下。
步骤:
(1)解压crosstool-0.43.tar.gz
tar –xzvf crosstool-0.43.tar.gz
(2) 查看并修改demo-powerpc-405.sh文件
在使用之前,需要先对脚本编辑一下。打开demo-powerpc-405.sh,TARBALLS_DIR是相关下载资源的存放地,因为在安装交叉编译环境之前,脚本就会根据你所修改的选项,去网上找相应版本的gcc,gdb,glibc,内核等,下载并编译安装。具体所消耗的时间是和你的网速息息相关的。如果你所在的网络速度很慢,建议你还是不要尝试了,或者你可以看看脚本中TARBALLS_DIR目录的值,然后自行下载所需要的各种工具以及内核的源码包。唯一需要注意的就是,你自己下载的环境工具源码包的版本需要和demo-powerpc-405.sh里面指定的版本一致。RESULT_TOP的值是安装后的目录,自行根据需要修改。
#!/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=$HOME/downloads
RESULT_TOP=$PREFIX/crosstool
export TARBALLS_DIR RESULT_TOP #先定义再导出
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES #先定义再导出
export TARGET=powerpc-405-linux
export PREFIX=/opt/crosstool/${TARGET}
unset LD_LIBRARY_PATH
# 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 powerpc-405.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.3.6-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.3.6-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat powerpc-405.dat gcc-4.1.0-glibc-2.3.5.dat` sh all.sh --notest
eval `cat powerpc-405.dat gcc-4.1.0-glibc-2.3.6.dat` sh all.sh --notest
echo Done.
(3)根据demo-powerpc-405.sh文件的内容要求,在/opt目录下自己建一个crosstool目录,并将其权限改为可写:
sudo mkdir /opt/crosstool
sudo chown $USER /opt/crosstool
(4)安装语法分析程序生成器bison/flex,执行
sudo apt-get install bison flex
(5)将/bin/sh的连接对象从dash改为bash,这是由于我选择的glibc-2.3.6和dash有bug冲突。就算你不是用的glibc-2.3.6,也建议修改。先用
ls -la /bin/sh
看看你的sh链接到底是什么。如果是dash,就要通过
sudo ln -sf /bin/bash /bin/sh
来更改。
(6)执行脚本
sh demo-powerpc-405.sh
等待xxx分钟……
(7)The final step is to add the cross-compiler's bin directory to your search path.