|
在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时出现以下错误:
[feiimi@macrohardf linux]$ pwd
/home/feiimi/arm-linux/linux
[feiimi@macrohardf 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[1]: 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[1]: 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 " -C kernel
make[1]: Entering directory `/home/feiimi/arm-linux/linux/kernel'
make all_targets
make[2]: Entering directory `/home/feiimi/arm-linux/linux/kernel'
make[2]: Nothing to be done for `all_targets'.
make[2]: Leaving directory `/home/feiimi/arm-linux/linux/kernel'
make[1]: 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 " -C drivers
make[1]: Entering directory `/home/feiimi/arm-linux/linux/drivers'
make -C block
make[2]: Entering directory `/home/feiimi/arm-linux/linux/drivers/block'
make all_targets
make[3]: Entering directory `/home/feiimi/arm-linux/linux/drivers/block'
make[3]: Nothing to be done for `all_targets'.
make[3]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/block'
make[2]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/block'
make -C cdrom
make[2]: Entering directory `/home/feiimi/arm-linux/linux/drivers/cdrom'
make all_targets
make[3]: Entering directory `/home/feiimi/arm-linux/linux/drivers/cdrom'
make[3]: Nothing to be done for `all_targets'.
make[3]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/cdrom'
make[2]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/cdrom'
make -C char
make[2]: Entering directory `/home/feiimi/arm-linux/linux/drivers/char'
make all_targets
make[3]: Entering directory `/home/feiimi/arm-linux/linux/drivers/char'
make[3]: Nothing to be done for `all_targets'.
make[3]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/char'
make[2]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/char'
make -C hotplug
make[2]: Entering directory `/home/feiimi/arm-linux/linux/drivers/hotplug'
make all_targets
make[3]: Entering directory `/home/feiimi/arm-linux/linux/drivers/hotplug'
make[3]: Nothing to be done for `all_targets'.
make[3]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/hotplug'
make[2]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/hotplug'
make -C media
make[2]: Entering directory `/home/feiimi/arm-linux/linux/drivers/media'
make -C radio
make[3]: Entering directory `/home/feiimi/arm-linux/linux/drivers/media/radio'
make all_targets
make[4]: Entering directory `/home/feiimi/arm-linux/linux/drivers/media/radio'
make[4]: Nothing to be done for `all_targets'.
make[4]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media/radio'
make[3]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media/radio'
make -C video
make[3]: Entering directory `/home/feiimi/arm-linux/linux/drivers/media/video'
make all_targets
make[4]: Entering directory `/home/feiimi/arm-linux/linux/drivers/media/video'
make[4]: Nothing to be done for `all_targets'.
make[4]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media/video'
make[3]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media/video'
make all_targets
make[3]: 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[3]: *** [media.o] Error 1
make[3]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media'
make[2]: *** [first_rule] Error 2
make[2]: Leaving directory `/home/feiimi/arm-linux/linux/drivers/media'
make[1]: *** [_subdir_media] Error 2
make[1]: Leaving directory `/home/feiimi/arm-linux/linux/drivers'
make: *** [_dir_drivers] Error 2
[feiimi@macrohardf linux]$
我看过了本论坛里的所有贴子, 请问这种错误是否为chyyuu所说的"Russel King 的补丁对ep7312支持不好"的缘故, 但好像我的现象与已有的类似问题又不太一样, 谁能指点一下?
若果真如此, 目前我想用2.4.18-rmk7的内核难道就只能用别的cpu类型了吗?因为我看到目前skyeye对ep7312的配置和应用文档最全, 所以我想尽量用ep7312来开始学习, 谁还有更好的建议?
谢谢! |
|