|
我的出错过程大致包括以下几步:
(1)下载后,原封不动:编译通过,在skyeye上顺利运行;
(2)修改:将类型从GDB/Armulator改为AT91,编译错;
(3)终于编译通过:但运行死机;
详细过程:
(在Redhat9-fedoro下,已成功编译/安装skyeye-0.7.7)
A:修改:
======================================
$tar zxf uClinux-dist-20040408.tar.gz
$make xconfig
---->choose AT91 (instead of GDB),
---->choose kernel linux-2.4.x
----->save and exit
$make dep (PASS!)
$make
---> error ...../boa/src/auth.c:281:undefined reference to "crypt_old"
<--- (按照精华版的文档)修改 config/.config uncoment CONFIG_USER_OLD_PASS
B:再来一编(严格按照精华版操作)
====================================
$ make menuconfig
$ make dep lib_only user_only romfs image
---> error ...../boa/src/auth.c:281:undefined reference (还是这个问题)
C:干脆,我直接执行
========================
$ make
(竟然通过了)
D:试运行一下 (但死机了)
=============================
[lal@ada304 uClinux-dist]$ skyeye linux-2.4.x/linux
***************************************************************
**** ****
**** SkyEye Simulator Ver 0.7.7 with GDB 5.3 Interface ****
**** ****
***************************************************************
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This SkyEye was configured as "--host=i686-pc-linux-gnu --target=arm-elf"...
(SkyEye) target sim
cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0
mach info: name at91, mach_init addr 0x813db08
SKYEYE: use arm7100 mmu ops
Loaded ROM images/romfs.img
Connected to the simulator.
(SkyEye) load
Loading section .init, size 0xa000 vma 0x1000000
Loading section .text, size 0xd12c0 vma 0x100a000
Loading section .data, size 0x89d4 vma 0x10dc000
Start address 0x1000000
Transfer rate: 7464096 bits in <1 sec.
(SkyEye) run
Starting program: /home/lal/skyeye/uClinux-dist/linux-2.4.x/linux
(死机,很久。。。。)
Program received signal SIGINT, Interrupt.
panic (fmt=0x10cc9ac "VFS: Unable to mount root fs on %s") at panic.c:107
107 for(;;) {
(SkyEye) exit
Undefined command: "exit". Try "help".
(SkyEye) quit
The program is running. Exit anyway? (y or n) y
[lal@ada304 uClinux-dist]$
E:我完全重新开始(不知是否删除了一些“重要东西”?)
=======================================
# make clean
# make menuconfig
(稍微检查以下,感觉配置都对)
# make dep
# make lib_only user_only romfs image
(报告:[image] 无法发现linux-2.4.x/linux文件,果然没有,是xxx_only的原因?漏编译kernel了?我之前做了make clean)
#make
(通过)
:
:
:
1 sbin [0x302 , 0x590378 ] 0120777, sz 4, at 0xb96e0
arm-elf-objcopy -O binary --remove-section=.romvec \
--remove-section=.text --remove-section=.ramvec \
--remove-section=.init \
--remove-section=.bss --remove-section=.eram \
/home/lal/skyeye/uClinux-dist/linux-2.4.x/linux /home/lal/skyeye/uClinux-dist/images/linux.data
arm-elf-objcopy -O binary --remove-section=.ramvec \
--remove-section=.bss --remove-section=.data \
--remove-section=.eram \
--set-section-flags=.romvec=CONTENTS,ALLOC,LOAD,READONLY,CODE \
/home/lal/skyeye/uClinux-dist/linux-2.4.x/linux /home/lal/skyeye/uClinux-dist/images/linux.text
cat /home/lal/skyeye/uClinux-dist/images/linux.text /home/lal/skyeye/uClinux-dist/images/linux.data /home/lal/skyeye/uClinux-dist/images/romfs.img > /home/lal/skyeye/uClinux-dist/images/image.bin
[ -n "" ] || cp /home/lal/skyeye/uClinux-dist/images/image.bin /tftpboot
make[1]: Leaving directory `/home/lal/skyeye/uClinux-dist/vendors/Atmel/AT91'
[lal@ada304 uClinux-dist]$ ls
autoconf.h COPYING lib linux.rom skyeye.conf.gdb vendors
bin Documentation linux-2.0.x Makefile SOURCE
config freeswan linux-2.4.x README tools
config.arch glibc linux-2.6.x romfs uClibc
config.in images linux.elf skyeye.conf~ user
[lal@ada304 uClinux-dist]$ skyeye linux-2.4.x/linux
再执行步骤(D)----问题现象一样!?
(Add-on)
==============================================
[lal@ada304 uClinux-dist]$ cat skyeye.conf
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=images/romfs.img
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000
mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000
mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000
mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000 |
|