macrohardf 发表于 2005-2-1 00:22:52

如何解决编译linux-2.4.18-rmk7时出错?

在RedHat 9下, 我用的toolchain是ftp://ftp.arm.linux.org.uk上的cross-3.2.tar.bz2, 已安装好并设置好PATH.
内核源代码用的是ftp://166.111.68.183上的linux-2.4.18-rmk7.tar.bz2, 完全按照<<源码开放的嵌入式系统软件分析与实践>>一书的说明, 完成对顶层makefile的修改, 内核的配置(cpu选的就是ep7312)和make dep(这一步应该没有错误)后, 在make时出现以下错误:

$ pwd
/home/feiimi/arm-linux/linux
$ make
. scripts/mkversion > .tmpversion
/usr/local/arm/bin/arm-linux-gcc -D__KERNEL__ -I/home/feiimi/arm-linux/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -mapcs -fno-strict-aliasing -fno-common -fno-common -pipe -mapcs-32 -march=armv4 -mtune=arm7tdmi -mshort-load-bytes -msoft-float-DUTS_MACHINE='"arm"' -DKBUILD_BASENAME=version -c -o init/version.o init/version.c
make: Entering directory `/home/feiimi/arm-linux/linux/arch/arm/tools'
cmp constants.h /home/feiimi/arm-linux/linux/include/asm-arm/constants.h >/dev/null 2>&1 || cp -p constants.h /home/feiimi/arm-linux/linux/include/asm-arm/constants.h
make: Leaving directory `/home/feiimi/arm-linux/linux/arch/arm/tools'
make CFLAGS="-D__KERNEL__ -I/home/feiimi/arm-linux/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -mapcs -fno-strict-aliasing -fno-common -fno-common -pipe -mapcs-32 -march=armv4 -mtune=arm7tdmi -mshort-load-bytes -msoft-float " -Ckernel
make: Entering directory `/home/feiimi/arm-linux/linux/kernel'
make all_targets
make: Entering directory `/home/feiimi/arm-linux/linux/kernel'
make: Nothing to be done for `all_targets'.
make: Leaving directory `/home/feiimi/arm-linux/linux/kernel'
make: Leaving directory `/home/feiimi/arm-linux/linux/kernel'
make CFLAGS="-D__KERNEL__ -I/home/feiimi/arm-linux/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -mapcs -fno-strict-aliasing -fno-common -fno-common -pipe -mapcs-32 -march=armv4 -mtune=arm7tdmi -mshort-load-bytes -msoft-float " -Cdrivers
make: Entering directory `/home/feiimi/arm-linux/linux/drivers'
make -C block
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/block'
make all_targets
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/block'
make: Nothing to be done for `all_targets'.
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/block'
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/block'
make -C cdrom
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/cdrom'
make all_targets
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/cdrom'
make: Nothing to be done for `all_targets'.
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/cdrom'
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/cdrom'
make -C char
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/char'
make all_targets
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/char'
make: Nothing to be done for `all_targets'.
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/char'
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/char'
make -C hotplug
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/hotplug'
make all_targets
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/hotplug'
make: Nothing to be done for `all_targets'.
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/hotplug'
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/hotplug'
make -C media
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/media'
make -C radio
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/media/radio'
make all_targets
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/media/radio'
make: Nothing to be done for `all_targets'.
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media/radio'
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media/radio'
make -C video
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/media/video'
make all_targets
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/media/video'
make: Nothing to be done for `all_targets'.
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media/video'
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media/video'
make all_targets
make: Entering directory `/home/feiimi/arm-linux/linux/drivers/media'
rm -f media.o
/usr/local/arm/bin/arm-linux-ld-r -o media.o video/video.o radio/radio.o
/usr/local/arm/bin/arm-linux-ld: internal error earmelf_linux.c 160
make: *** Error 1
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media'
make: *** Error 2
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media'
make: *** Error 2
make: Leaving directory `/home/feiimi/arm-linux/linux/drivers'
make: *** Error 2
$

我看过了本论坛里的所有贴子, 请问这种错误是否为chyyuu所说的"Russel King 的补丁对ep7312支持不好"的缘故, 但好像我的现象与已有的类似问题又不太一样, 谁能指点一下?
若果真如此, 目前我想用2.4.18-rmk7的内核难道就只能用别的cpu类型了吗?因为我看到目前skyeye对ep7312的配置和应用文档最全, 所以我想尽量用ep7312来开始学习, 谁还有更好的建议?
谢谢!

ksh 发表于 2005-2-4 14:28:19

应该换编译器试试

zbluecn 发表于 2008-1-30 00:39:41

请问你有下载好的文件吗 我现在不能下载啊
页: [1]
查看完整版本: 如何解决编译linux-2.4.18-rmk7时出错?