QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2079|回复: 2

内核无法加载文件系统,请教!!!!

[复制链接]
发表于 2006-7-27 11:16:23 | 显示全部楼层 |阅读模式
Power on reset
Read chip id = ec76
Nand flash status = c0
Env.Os_Auto_Flag=1
************************************
*                                  *
*     FS2410 Board BIOS V2.36       *
*     Http://www.ucdragon.com      *
*                                  *
************************************
NAND Flash Boot

Please select function :
0 : USB download file
1 : Uart download file
2 : Write Nand flash with download file
3 : Load Pragram from Nand flash and run
4 : Erase Nand flash regions
5 : Write NOR flash with download file
6 : Set boot params
7 : Set AutoBoot parameter,1:linux 2:wince
Read chip id = ec76
Nand flash status = c0
Set boot params = root=/dev/mtdblock2 load_ramdisk=0 init=/linuxrc console=ttyS0 mem=64M devfs=mount
Linux version 2.6.8.1-ptx1 ([email protected]) (gcc version 3.3.2) #11 Wed Jun 21 15:01:08 CST 2006

CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)

CPU: D VIVT write-back cache

CPU: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets

CPU: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets

Machine: SMDK2410

ATAG_INITRD is deprecated; please update your bootloader.

Memory policy: ECC disabled, Data cache writeback

S3C2410: core 200.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz

Built 1 zonelists

Kernel command line: root=/dev/mtdblock2 load_ramdisk=0 init=/linuxrc console=ttyS0 mem=64M devfs=mount

irq: clearing pending ext status 00007000

irq: clearing pending status 00002000

irq: clearing subpending status 00000092

irq: clearing subpending status 00000092

irq: clearing subpending status 00000092

irq: clearing subpending status 00000092

Trying to install chained handler for IRQ47

PID hash table entries: 512 (order 9: 4096 bytes)

setup_timer tcon=00090d00, tcnt c350, tcfg 00000400,00001030

Console: colour dummy device 80x30

Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)

Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)

Memory: 64MB = 64MB total

Memory: 62224KB available (1975K code, 458K data, 124K init)

Calibrating delay loop... 99.73 BogoMIPS

Mount-cache hash table entries: 512 (order: 0, 4096 bytes)

CPU: Testing write buffer coherency: ok

NET: Registered protocol family 16

S3C2410: Initialising architecture

SCSI subsystem initialized

usbcore: registered new driver usbfs

usbcore: registered new driver hub

VA=0xffc00000, PA=0x33f40000, size=0x00027000

NetWinder Floating Point Emulator V0.97 (double precision)

devfs: 2004-01-31 Richard Gooch ([email protected])

devfs: boot_options: 0x1

Console: switching to colour frame buffer device 30x40

s3c2410ts init

s3c2410ts device driver MAJOR:253

s3c2410ts initialized

S3C2410 Real Time Clock Driver v0.1

S3C2410X Serial, (c) 2003 Simtec Electronics

ttyS0 at MMIO 0x50000000 (irq = 70) is a S3C2410

ttyS1 at MMIO 0x50004000 (irq = 73) is a S3C2410

ttyS2 at MMIO 0x50008000 (irq = 76) is a S3C2410

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

loop: loaded (max 8 devices)

Using anticipatory io scheduler

nbd: registered device at major 43

PPP generic driver version 2.4.2

PPP Deflate Compression module registered

PPP BSD Compression module registered

NET: Registered protocol family 24

Cirrus Logic CS8900A driver for Linux (V0.02)

eth0: incorrect signature 0x000e

Linux video capture interface: v1.00

NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)

Scanning device for bad blocks

Creating 5 MTD partitions on "NAND 64MiB 3,3V 8-bit":

0x00000000-0x00040000 : "boot"

0x00040000-0x00200000 : "kernel"

0x00200000-0x02000000 : "rootfs"

0x02000000-0x03000000 : "ext-fs1"

0x03000000-0x04000000 : "ext-fs2"

drivers/usb/host/ohci-s3c2410.c: ohci_hcd (S3C2410) at 0xf0200000, irq 42


s3c2410-ohci s3c2410-ohci5: new USB bus registered, assigned bus number 1

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 2 ports detected

usbcore: registered new driver usbhid

drivers/usb/input/hid-core.c: v2.0:USB HID core driver

mice: PS/2 mouse device common for all mice

input: S3C2410 buzzer

S3C2410-UDA1341 Probe

UDA1341 audio driver initialized

NET: Registered protocol family 2

IP: routing cache hash table of 512 buckets, 4Kbytes

TCP: Hash tables configured (established 4096 bind 8192)

NET: Registered protocol family 1

NET: Registered protocol family 17

end_request: I/O error, dev mtdblock2, sector 16

ReiserFS: mtdblock2: warning: sh-2006: read_super_block: bread failed (dev mtdblock2, block 2, size 4096)

end_request: I/O error, dev mtdblock2, sector 128

ReiserFS: mtdblock2: warning: sh-2006: read_super_block: bread failed (dev mtdblock2, block 16, size 4096)

end_request: I/O error, dev mtdblock2, sector 2

EXT2-fs: unable to read superblock

end_request: I/O error, dev mtdblock2, sector 0

Buffer I/O error on device mtdblock2, logical block 0

end_request: I/O error, dev mtdblock2, sector 0

Buffer I/O error on device mtdblock2, logical block 0

end_request: I/O error, dev mtdblock2, sector 8

Buffer I/O error on device mtdblock2, logical block 1

end_request: I/O error, dev mtdblock2, sector 8

Buffer I/O error on device mtdblock2, logical block 1

end_request: I/O error, dev mtdblock2, sector 16

Buffer I/O error on device mtdblock2, logical block 2

end_request: I/O error, dev mtdblock2, sector 16

Buffer I/O error on device mtdblock2, logical block 2

end_request: I/O error, dev mtdblock2, sector 24

Buffer I/O error on device mtdblock2, logical block 3

end_request: I/O error, dev mtdblock2, sector 24

Buffer I/O error on device mtdblock2, logical block 3

end_request: I/O error, dev mtdblock2, sector 0

romfs: unable to read superblock

Kernel panic: VFS: Unable to mount root fs on unknown-block(31,2)
到这里就停住了

我已经按照kernel启动过程中所打印的nandflash分区信息来修改了bootldr的分区情况,还是不能加载.但如果是使用另外一个完全成功引导的bootldr来先烧写kernel和rootfs分区,再将上述bootldr烧写替换掉可以成功的bootloader,则也是可以成功引导系统并加载文件系统的.

个人认为在利用两种bootldr烧写rootfs分区时,还是地址不同导致的这个情况,可是我确实把本bootldr对nand的分区改成了和正确的boot一样的情况,请朋友们帮忙分析一下,谢谢!
 楼主| 发表于 2006-7-27 11:23:18 | 显示全部楼层
还有一点是,我发现/driver/mtd/nand/s3c2410_nand.c里的分区情况居然和可以成功引导的boot有所不同,主要是第0区boot和第1区kernel对2M空间的的分配情况不同,第2区rootfs的开始地址还是相同的.不是说boot和nand驱动里的分区情况应该严格一致吗?
回复

使用道具 举报

发表于 2006-8-13 03:37:20 | 显示全部楼层
检测你的内核是否让启用devfs并自动加载,如果自动加载,将root=/dev/mtdblock2 改为root=/dev/mtdblock、2应该可成功。
如果没有加载,你又不想改内核,请将root=/dev/mtdblock2 改为root=/mtdblock2
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-22 23:24 , Processed in 0.034856 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表