Jedi2000 发表于 2009-7-23 00:47:25

不会被忽悠了吧

按照下面这个帖子里的说法编译uClinux-dist-20070130 在skyeye下运行
http://skyeye.wiki.sourceforge.net/uClinux#tocuClinux0

这个帖子里的步骤总结一下:
1、安装 arm-linux-tools-20061213.tar.gz 工具链;
2、解压缩 uClinux-dist-20070130.tar.gz ;
3、"make menuconfig", select GDB/Armulator 和 linux-2.6.xoption.
4、然后
      make CROSS_COMPILE=arm-elf- dep
      make CROSS_COMPILE=arm-elf-
5、就可以运行了 "skyeye -e linux-2.6.x/linux" .

事实上这个做法是不行的:
1、尽管解压 arm-linux-tools-20061213.tar.gz 到了正确的位置,但是在 make 时提示gcc too old。
    奇怪的是,既然制定了 CROSS_COMPILE=arm-elf-,为啥装的工具链不是 arm-elf-前缀的?
    估计 arm-linux-tools-20061213.tar.gz 里面根本没有需要的 arm-elf-gcc,所以 make提示gcc 版本问题。

2、在 make menuconfig 时吧 uClinux 的版本换为 2.4.x,这次编译通过了,但是 skyeye 运行时提示找不到
    romfs.img,
   原因是 skyeye.conf 里有下面这句:
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./romfs.img
事实上 make 后根本没有生成这个文件。所以出现错误提示。

3、按照 make lib_only, make user_only, make 的顺序编译 (都指定 CROSS_COMPILE=arm-elf-)
   这次前两个编译通过,make 却又报错,错误提示见后
这次解决不了了,奇怪的是前面直接 make dep 再 make 却又为什么能编译通过。

这次试了网上 N多个帖子的在 skyeye 下运行 uClinux 的方法,无一例外全部都失败了。即使
每次都用和这些帖子中完全相同版本的所有工具和源码。包括这一次来自 skyeye Wiki的。
难道真像某人所说是我用的 Redhat 9 的问题?

-------------------- make 的错误提示 --------------------
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/kernel/kernel.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/kernel/kernel.o
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/mm/mm.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/mm/mm.o
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/mach-atmel/atmel.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/mach-atmel/atmel.o
/usr/local/bin/arm-linux-ld.real: ERROR: kernel/kernel.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file kernel/kernel.o
/usr/local/bin/arm-linux-ld.real: ERROR: mmnommu/mmnommu.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file mmnommu/mmnommu.o
/usr/local/bin/arm-linux-ld.real: ERROR: fs/fs.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file fs/fs.o
/usr/local/bin/arm-linux-ld.real: ERROR: ipc/ipc.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file ipc/ipc.o
/usr/local/bin/arm-linux-ld.real: ERROR: drivers/char/char.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file drivers/char/char.o
/usr/local/bin/arm-linux-ld.real: ERROR: drivers/block/block.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file drivers/block/block.o
/usr/local/bin/arm-linux-ld.real: ERROR: drivers/net/net.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file drivers/net/net.o
/usr/local/bin/arm-linux-ld.real: ERROR: net/network.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file net/network.o
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(backtrace.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(backtrace.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(csumpartial.o)
uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(csumpartial.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(csumpartialcopy.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(csumpartialcopy.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(csumpartialcopyuser.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(csumpartialcopyuser.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(clearbit.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(clearbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(delay.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(delay.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(findbit.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(findbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(memchr.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(memchr.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(memcpy.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(memcpy.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(memset.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(memset.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(memzero.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(memzero.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(setbit.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(setbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(strncpy_from_user.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(strncpy_from_user.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(strnlen_user.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(strnlen_user.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(strchr.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(strchr.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(testclearbit.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(testclearbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(testsetbit.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(testsetbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(uaccess.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(uaccess.o)
/usr/local/bin/arm-linux-ld.real: ERROR: /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(errno.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(string.o)
/usr/local/bin/arm-linux-ld.real: ERROR: /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(vsprintf.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(vsprintf.o)
/usr/local/bin/arm-linux-ld.real: ERROR: /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(cmdline.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(cmdline.o)
/usr/local/bin/arm-linux-ld.real: ERROR: /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(zlib_inflate.o) uses hardware FP, whereas linux uses software FP/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(zlib_inflate.o)
make: *** Error 1
make: Leaving directory `/home/limq/uClinux2/uClinux-dist/linux-2.4.x'
make: *** Error 1

Jedi2000 发表于 2009-7-23 00:51:43

希望不是 Redhat 9 的问题

正在下载 FC7,估计明天才能下完。
本来想用 Cygwin试试,但是 Cygwin 下载太麻烦了,也太大了。
这个帖子里有个裁剪好的版本 cygwin-for-skyeye-allinone.tar.bz2 ,不到100M,
http://www.linuxfans.org/bbs/thread-132451-1-1.html
但是这个网站似乎死去很久了。google了一下,居然网上所有提到 cygwin-for-skyeye-allinone.tar.bz2
的连接都指向这个已经不存在的 gro.clinux.org。谁知道这个网站究竟怎么回事,有没有可用的镜像?

[ 本帖最后由 Jedi2000 于 2009-7-23 02:15 编辑 ]

crook 发表于 2009-7-24 16:43:57

晕 你的问题真多!
如果你只是想运行下hello类似的程序,看看论坛里的帖子里面的照片就行了;
否则就好好google你发现的问题,想想每一步操作是为什么,为什么!!

jiangtao9999 发表于 2009-7-24 19:18:00

看上去楼主你的编译器和你当前编译的程序使用了两种不同的 float abi 。
页: [1]
查看完整版本: 不会被忽悠了吧