|
我用的S3C2410,linux2.4内核,cramfs作为根文件系统,将norflash分三个区,分别放bootloader,kernel,cramfs .我的问题是在系统启动后,挂载文件后,执行到解压文件系统后就死机了,(在执行unlock_kernel()函数内出错),蜂鸣器狂叫。从屏幕打印信息看,似乎在读取cramfs时也不正常,只读了两个16K且不连续。屏幕打印信息:
Uncompressing Linux................................................................ done, booting the kernel.
Linux version 2.4.18-rmk7-pxa1 ([email protected]) (gcc version 2.95.3 20010315 (release)) #47 二 12月 12 15:55:49 CST 2006
CPU: ARM/CIRRUS Arm920Tsid(wb) revision 0
Machine: Samsung-SMDK2410
On node 0 totalpages: 2048
zone(0): 2048 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 load_ramdisk=0 init=/linuxrc console=ttyS0 mem=8M devfs=mount
DEBUG: timer count 15626
Console: colour dummy device 80x30
Calibrating delay loop... 99.94 BogoMIPS
Memory: 8MB = 8MB total
Memory: 5884KB available (1723K code, 338K data, 72K init)
Dentry-cache hash table entries: 1024 (order: 1, 8192 bytes)
Inode-cache hash table entries: 512 (order: 0, 4096 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 2048 (order: 1, 8192 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
CPU clock = 200.000 Mhz, HCLK = 100.000 Mhz, PCLK = 50.000 Mhz
Initializing S3C2410 buffer pool for DMA workaround
S3C2410 USB Controller Core Initialized
USB Function Character Driver Interface - 0.5, (C) 2001, Extenex Corp.
usbctl: Opened for usb-char
usbctl: Started for usb-char
Starting kswapd
devfs: v1.10 (20020120) Richard Gooch ([email protected])
devfs: boot_options: 0x1
tts/00 at I/O 0x50000000 (irq = 52) is a S3C2410
tts/01 at I/O 0x50004000 (irq = 55) is a S3C2410
tts/02 at I/O 0x50008000 (irq = 5 is a S3C2410
Console: switching to colour frame buffer device 30x40
Installed S3C2410 frame buffer
pty: 256 Unix98 ptys configured
s3c2410-ts initialized
s3c2410-pwm initialized
S3C2410 Real Time Clock Driver v0.1
block: 64 slots per queue, batch=16
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
cs89x0: no cs8900 or cs8920 detected.Be sure to disable PnP with SETUP
loop: loaded (max 8 devices)
PPP generic driver version 2.4.1
PPP BSD Compression module registered
Linux video capture interface: v1.00
SCSI subsystem driver Revision: 1.00
physmap flash device: 0 at 0
Enter ioremap in asm-mips64//io.h/nFailed to ioremap
s3c2410 flash device: 400000 at 0
Enter ioremap in asm-mips64//io.h/n<6>Search for id74 ea00) interleave(1) type(2)
Search for id74 ea00) interleave(1) type(2)
Search for id74 ea00) interleave(1) type(2)
Search for id74 ea00) interleave(1) type(2)
Search for id74 ea00) interleave(1) type(2)
Search for id74 00) interleave(2) type(1)
Search for id74 00) interleave(2) type(1)
Search for idbf 5b) interleave(2) type(1)
MTD jedec_match(): Check fit 0x00000000 + 0x00400000 = 0x00400000
MTD jedec_match(): 0x00bf 0x235b 4194304KiB doesn't fit
MTD jedec_match(): Check fit 0x00000000 + 0x00100000 = 0x00100000
MTD jedec_match(): check unlock addrs 0x5555 0x2aaa
MTD jedec_match(): check ID's disappear when not in ID mode
MTD jedec_match(): return to ID mode
MTD jedec_probe_chip(): matched device 0xbf,0x5b unlock_addrs: 0x5555 0x2aaa
Found: SST 49LF080A
s3c2410 flash device: Found 2 x8 devices at 0x0 in 16-bit mode
number of JEDEC chips: 1
Using word write method
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Creating 3 MTD partitions on "s3c2410 flash device":
0x00000000-0x00040000 : "reserved for bootloader"
mtd: Giving out device 0 to reserved for bootloader
0x00040000-0x00140000 : "reserved for kernel"
mtd: Giving out device 1 to reserved for kernel
0x00140000-0x00400000 : "reserved for cramfs"
mtd: partition "reserved for cramfs" extends beyond the end of device "s3c2410 flash device" -- size truncated to 0xc0000
mtd: Giving out device 2 to reserved for cramfs
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb-ohci.c: USB OHCI at membase 0xe9000000, IRQ 26
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
port #1 suspened!
port #0 alived!
hub.c: 1 port detected
usb.c: registered new driver usb_mouse
usbmouse.c: v1.6:USB HID Boot Protocol mouse driver
usb.c: registered new driver keyboard
usbkbd.c: :USB HID Boot Protocol keyboard driver
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 512)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
prepare_namespace()Finished!
mtdblock_open
ok
mtdblock_open
mtdblock: read on "reserved for cramfs" at 0x400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x600, size 0x200
mtdblock_release
ok
mtdblock_open
mtdblock: read on "reserved for cramfs" at 0x0, size 0x200
mtdblock: read on "reserved for cramfs" at 0x200, size 0x200
mtdblock: read on "reserved for cramfs" at 0x400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x600, size 0x200
mtdblock: read on "reserved for cramfs" at 0x800, size 0x200
mtdblock: read on "reserved for cramfs" at 0xa00, size 0x200
mtdblock: read on "reserved for cramfs" at 0xc00, size 0x200
mtdblock: read on "reserved for cramfs" at 0xe00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x1000, size 0x200
mtdblock: read on "reserved for cramfs" at 0x1200, size 0x200
mtdblock: read on "reserved for cramfs" at 0x1400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x1600, size 0x200
mtdblock: read on "reserved for cramfs" at 0x1800, size 0x200
mtdblock: read on "reserved for cramfs" at 0x1a00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x1c00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x1e00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x2000, size 0x200
mtdblock: read on "reserved for cramfs" at 0x2200, size 0x200
mtdblock: read on "reserved for cramfs" at 0x2400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x2600, size 0x200
mtdblock: read on "reserved for cramfs" at 0x2800, size 0x200
mtdblock: read on "reserved for cramfs" at 0x2a00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x2c00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x2e00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x3000, size 0x200
mtdblock: read on "reserved for cramfs" at 0x3200, size 0x200
mtdblock: read on "reserved for cramfs" at 0x3400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x3600, size 0x200
mtdblock: read on "reserved for cramfs" at 0x3800, size 0x200
mtdblock: read on "reserved for cramfs" at 0x3a00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x3c00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x3e00, size 0x200
mtdblock_release
ok
VFS: Mounted root (cramfs filesystem) readonly.
Mounted devfs on /dev
prepare_namespace()Finished!
Freeing init memory: 72K
free_initmem()Finished!
mtdblock: read on "reserved for cramfs" at 0x66000, size 0x200
mtdblock: read on "reserved for cramfs" at 0x66200, size 0x200
mtdblock: read on "reserved for cramfs" at 0x66400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x66600, size 0x200
mtdblock: read on "reserved for cramfs" at 0x66800, size 0x200
mtdblock: read on "reserved for cramfs" at 0x66a00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x66c00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x66e00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x67000, size 0x200
mtdblock: read on "reserved for cramfs" at 0x67200, size 0x200
mtdblock: read on "reserved for cramfs" at 0x67400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x67600, size 0x200
mtdblock: read on "reserved for cramfs" at 0x67800, size 0x200
mtdblock: read on "reserved for cramfs" at 0x67a00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x67c00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x67e00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x68000, size 0x200
mtdblock: read on "reserved for cramfs" at 0x68200, size 0x200
mtdblock: read on "reserved for cramfs" at 0x68400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x68600, size 0x200
mtdblock: read on "reserved for cramfs" at 0x68800, size 0x200
mtdblock: read on "reserved for cramfs" at 0x68a00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x68c00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x68e00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x69000, size 0x200
mtdblock: read on "reserved for cramfs" at 0x69200, size 0x200
mtdblock: read on "reserved for cramfs" at 0x69400, size 0x200
mtdblock: read on "reserved for cramfs" at 0x69600, size 0x200
mtdblock: read on "reserved for cramfs" at 0x69800, size 0x200
mtdblock: read on "reserved for cramfs" at 0x69a00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x69c00, size 0x200
mtdblock: read on "reserved for cramfs" at 0x69e00, size 0x200
Error -3 while decompressing!
c01f830c(-1688056)->c0011000(4096)
Kernel panic: No init found. Try passing init= option to kernel. |
|