Fedora-ARM
全部博文(241)
分类: LINUX
2007-08-16 18:01:08
|
#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. |
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-arm9tdmi.sh 时在${TARBALLS_DIR}目录下没有相应的源码包,会自动下载其.bz2源码包。但是建议事先用下载工具下好,这样更省时间。
根据《构建嵌入式Linux系统》中的介绍,如果为不同的内核编译交叉编译工具,交叉编译工具要根据其内核重新编译过。由于我想使用最新的2.6.22.2 内核,所以在编译完以上配置的工具链后,我将“LINUX_DIR=linux-2.6.15.4 ”改成“LINUX_DIR=linux-2.6.22.2 ”,并下载linux-2.6.22.2.tar.bz2到${TARBALLS_DIR}目录下,重新编译了一次。
最后一步:进入crosstool-0.43目录,输入./demo-arm9tdmi.sh,然后就是泡茶、看书。经过不到3小时的编译(公司的烂电脑所用的时间,配置好的可以更快),就可以在${RESULT_TOP}目录中看到想要的工具链、头文件、库文件等文件了,在${RESULT_TOP}/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/tmp文件夹中有Hello,world!测试程序。一般不会失败,我编了2.6.15.4内核和2.6.22.2内核都顺利结束,且移植U-boot1.2.0、Linux2.6.22.2、busybox1.9.0和其他的驱动或应用程序都十分顺利,从没出过错!下载到S3c2410和S3c2440的开发板上(2.6.22.2内核)测试,都没问题。证明编译出的程序绝对可用!
Host CPU:AMD 3000+ (X86-64)
RAM: DDR400 1GB (双通道)
OS: Fedora 8
同样使用crosstool-0.43,因为没有新的版本(截止2008年1月24日),强烈希望Dan Kegel能出新的版本!
我在上看到arm9tdmi平台的交叉编译器最新的成功组合为
gcc-4.1.1
cgcc-3.3.6
glibc-2.3.2
binutils-2.16.1
linux-2.6.15.4
hdrs-2.6.12.0
我回来看了看去年我在f7下做gcc-4.1.0还不是最新的,而且现在的内核已经是linux-2.6.24,所以决定重做交叉编译器。
我对demo-arm9tdmi.sh的修改为:
|
gcc-4.1.1-glibc-2.3.2.dat :
|
TARBALLS_DIR
文件夹,最后进入crosstool-0.43目录,输入./demo-arm9tdmi.sh,最后经过不到一个小时,编译成功!!!!
网友反馈: 1、有位网友按以上的方法做,碰到了如下错误提示:
原因是他用root登录编译,后来他以普通用户登录,就成功了! 所以我在这里再次建议:在嵌入式开发时,最好以普通用户登录,这样Host系统会比较安全。《构建嵌入式Linux系统》里也是这样建议的!!! 2、有位网友碰到了如下错误提示:
问题的解决办法: 在shell中输入:
类似的问题也可这么解决的! |
saiyang2008-09-18 19:15:39
你好! 按你以面的编译出现问题,请教: 编译时出现错误: a collect2: ld 返回1 make[2]: *** [cc1-dummy] 错误 1 make[2]: Leaving directory `/home/arm/downloads/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-4.1.1-glibc-2.3.2/build-gcc/gcc' make[1]: *** [all-gcc] 错误 2 make[1]: Leaving directory `/home/arm/downloads/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-4.1.1-glibc-2.3.2/build-gcc' make: *** [all] 错误 2 我用的 Host CPU:AMD 3000+ (X86-64) RAM: DDR400 1GB (双通道) OS: Fedora 8
chinaunix网友2008-07-28 10:37:38
我遇到的问题是: + grep -l '^install-lib-all:' /home/ttvv305/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-3.4.5-glibc-2.3.5/glibc-2.3.5/Makerules + GLIBC_INITIAL_BUILD_RULE=lib + GLIBC_INITIAL_INSTALL_RULE='install-lib-all install-headers' + GLIBC_INSTALL_APPS_LATER=yes + make LD=arm-9tdmi-linux-gnu-ld RANLIB=arm-9tdmi-linux-gnu-ranlib lib make: *** 没有规则可以创建目标“lib”。 停止。 所用的软件为: linux-2.6.8, glibc-2.3.5,gcc-3.4.5,其余的他楼主一样,请问如何解决???