在linux下制作PSP的toolchain交叉编译环境
制作了arm的交叉工具链,顺便把之前做的psp工具链再新机上重做了一下。
到 http://ps2dev.org/ 下载制作工具链的工具 psptoolchain-20070626.tar.bz2。
-
wget http://ps2dev.org/psp/Tools/Toolchain/psptoolchain-20070626.tar.bz2.download
-
tar -xjvf psptoolchain-20070626.tar.bz2
-
cd psptoolchain
-
cat readme.txt
根据readme.txt的提示,设置好环境变量,主要是确保wget和svn可以使用,要通过这两个命令获取文件。
然后在修改登陆脚本 ~/.bashrc 在后面添加
-
export PSPDEV=/usr/local/pspdev
-
export PATH=$PATH:$PSPDEV/bin
重新开一个终端登陆进来
-
cd psptoolchain
-
su
-
./toolchain.sh
经过漫长等待,编译完成。编译后的结果路径在 /usr/local/pspdev 下,为了节约编译的时间,可以先手工下载一些文件到 build 目录下。
build/binutils-2.16.1.tar.bz2 build/gdb-6.4.tar.bz2 build/newlib-1.15.0.tar.gz build/gcc-4.1.0.tar.bz2 build/insight-6.4.tar.bz2
Popularity: 3% [?]
Related
在linux下使用crosstool-0.43制作自己的arm交叉编译环境
crosstool是个不错的软件,能够很方便的编译自己的交叉编译环境
目前最新版本crosstool-0.43 在地址 http://kegel.com/crosstool/crosstool-0.43.tar.gz 可以下载。
首先获取工具包,解压后进入其目录
-
wget http://kegel.com/crosstool/crosstool-0.43.tar.gz
-
tar -xzvf crosstool-0.43.tar.gz
-
cd crosstool-0.43
选择自己希望的模板,这儿是以arm9做试验玩,因此选择了 demo-arm9tdmi.sh 做模板。
-
cat demo-arm9tdmi.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=/home/lpsc/downloads RESULT_TOP=/home/lpsc/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 arm9tdmi.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest #eval `cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest eval `cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest echo Done.
其中红色字为自己修改的地方,看最后一个红色的行,表示我们要编译 gcc 4.1.0 的。
-
cat arm9tdmi.dat
可以看到
KERNELCONFIG=`pwd`/arm.config TARGET=arm-9tdmi-linux-gnu GCC_EXTRA_CONFIG="--with-cpu=arm9tdmi --enable-cxx-flags=-mcpu=arm9tdmi" TARGET_CFLAGS="-O"
其中红色的文字可以根据自己的需要做修改,一般是 arm-linux ,符合网上面很多编译情形的。
-
cat 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"
将红色的字对应的bz2包下载下来(这些文件我基本都是在 chinaunix 那儿下载的,下载速度很快),放到前面设定的 /home/lpsc/downloads目录中。不下载也可以,sh脚本中自己会用wget下载,但是会等很多时间,比自己直接下载多出了很多很多的时间(具体多多少,自己试验一下就知道了,保证你试了后会很后悔,呵呵^_^)。
然后执行
-
./demo-arm9tdmi.sh
然后出去逛逛街、拿本书看看,睡会觉听会音乐或打开一个电影看看什么都可以,
这个过程要有很长时间(在我的AMD64 2.8GCPU,1G内存SATA硬盘的台式机电脑上用了大约1个半小时的样子),足够干以上列出来的事了。
编译完成后,有目录 /home/lpsc/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/ 目录比较长,后来分析了一下all.sh脚本,发现可以通过设置PREFIX值来减少结果路径长度,不过编译一遍需要那么长的时间,就没有实际试验。
最后在~/.bashrc文件的最后加入:
-
export PATH=$PATH:/home/lpsc/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/bin
这样新打开的终端就可以使用 arm-linux-gcc 等命令了。
这儿有编译好的gcc-3.4.1和gcc-3.3.2版本的下载
这儿有几个更旧一点的包(有经典的2.95.3版本)
下载下来后使用
-
tar -xjvf arm-linux-gcc-3.3.2.tar.bz2 -C /
-
tar -xjvf arm-linux-gcc-3.4.1.tar.bz2 -C /
将交叉工具链释放到/usr/local/arm目录下。
再在~/.bashrc文件的最后加入
-
export PATH=$PATH:/usr/local/arm/3.4.1/bin
Popularity: 3% [?]