Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
内核版本
2.6.14
处理器平台
S3C2440
问题
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
解决方案
下载和内核一样老的yaffs2源码包,可能是nand的OOB不同。
下面是使用旧的(也就是和内核一样老)yaffs2源码包前的启动信息:
Starting kernel ...
Uncompressing Linux.............................................................................. done, booting the kernel.Linux version 2.6.14 (root@czu) (gcc version 3.4.1) #8 Sat Dec 22 13:23:39 CST 2012
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
Machine: SMDK2440
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C2440: core 405.600 MHz, memory 101.400 MHz, peripheral 50.700 MHz
S3C2410 Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists
Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
irq: clearing pending ext status 00000200
irq: clearing subpending status 00000002
PID hash table entries: 512 (order: 9, 8192 bytes)
timer tcon=00500000, tcnt a509, tcfg 00000200,00000000, usec 00001e4c
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: 62336KB available (1989K code, 439K data, 104K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
softlockup thread 0 started up.
NET: Registered protocol family 16
S3C2410 Power Management, (c) 2004 Simtec Electronics
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C2440: Clock Support, UPLL 48.000 MHz, DVS off
S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics
DMA channel 0 at c4800000, irq 33
DMA channel 1 at c4800040, irq 34
DMA channel 2 at c4800080, irq 35
DMA channel 3 at c48000c0, irq 36
NetWinder Floating Point Emulator V0.97 (double precision)
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
devfs: devfs_debug: 0x0
devfs: boot_options: 0x1
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
yaffs Dec 22 2012 13:19:49 Installing.
lp: driver loaded but no devices found
S3C2410 RTC, (c) 2004 Simtec Electronics
ppdev: user-space parallel port driver
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled
s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
devfs_mk_dev: could not append to parent for tts/0
s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
devfs_mk_dev: could not append to parent for tts/1
s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
devfs_mk_dev: could not append to parent for tts/2
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
BAST NOR-Flash Driver, (c) 2004 Simtec Electronics
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2410-nand: mapped registers at c4a00000
s3c2410-nand: timing: Tacls 20ns, Twrph0 60ns, Twrph1 20ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
NAND_ECC_NONE selected by board driver. This is not recommended !!
Scanning device for bad blocks
Bad eraseblock 1945 at 0x0f320000
Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x00000000-0x00080000 : "Board_uboot"
0x00240000-0x00440000 : "Board_kernel"
0x00440000-0x0ff80000 : "Board_yaffs2"
mice: PS/2 mouse device common for all mice
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c2440-i2c: bus frequency set to 99 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
Reading data from NAND FLASH without ECC is not recommended
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs: auto selecting yaffs2
block 1912 is bad
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
block 1912 is bad
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
下面是使用旧的(也就是和内核一样老)yaffs2源码包后的启动信息:
Starting kernel ...
Uncompressing Linux............................................................................. done, booting the kernel.
Linux version 2.6.14 (root@czu) (gcc version 3.4.1) #10 Sat Dec 22 15:33:15 CST 2012
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
Machine: SMDK2440
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C2440: core 405.600 MHz, memory 101.400 MHz, peripheral 50.700 MHz
S3C2410 Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists
Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
irq: clearing pending ext status 00000200
irq: clearing subpending status 00000002
PID hash table entries: 512 (order: 9, 8192 bytes)
timer tcon=00500000, tcnt a509, tcfg 00000200,00000000, usec 00001e4c
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: 62336KB available (1970K code, 443K data, 92K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
softlockup thread 0 started up.
NET: Registered protocol family 16
S3C2410 Power Management, (c) 2004 Simtec Electronics
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C2440: Clock Support, UPLL 48.000 MHz, DVS off
S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics
DMA channel 0 at c4800000, irq 33
DMA channel 1 at c4800040, irq 34
DMA channel 2 at c4800080, irq 35
DMA channel 3 at c48000c0, irq 36
NetWinder Floating Point Emulator V0.97 (double precision)
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
devfs: devfs_debug: 0x0
devfs: boot_options: 0x1
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
yaffs Dec 22 2012 15:29:35 Installing.
lp: driver loaded but no devices found
S3C2410 RTC, (c) 2004 Simtec Electronics
ppdev: user-space parallel port driver
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled
s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
devfs_mk_dev: could not append to parent for tts/0
s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
devfs_mk_dev: could not append to parent for tts/1
s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
devfs_mk_dev: could not append to parent for tts/2
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
loop: loaded (max 8 devices)
nbd: registered device at major 43
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
BAST NOR-Flash Driver, (c) 2004 Simtec Electronics
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2410-nand: mapped registers at c4a00000
s3c2410-nand: timing: Tacls 20ns, Twrph0 60ns, Twrph1 20ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
NAND_ECC_NONE selected by board driver. This is not recommended !!
Scanning device for bad blocks
Bad eraseblock 35 at 0x00460000
Bad eraseblock 36 at 0x00480000
Bad eraseblock 37 at 0x004a0000
Bad eraseblock 38 at 0x004c0000
Bad eraseblock 39 at 0x004e0000
Bad eraseblock 40 at 0x00500000
Bad eraseblock 41 at 0x00520000
Bad eraseblock 42 at 0x00540000
Bad eraseblock 43 at 0x00560000
Bad eraseblock 44 at 0x00580000
Bad eraseblock 45 at 0x005a0000
Bad eraseblock 46 at 0x005c0000
Bad eraseblock 47 at 0x005e0000
Bad eraseblock 48 at 0x00600000
Bad eraseblock 49 at 0x00620000
Bad eraseblock 50 at 0x00640000
Bad eraseblock 51 at 0x00660000
Bad eraseblock 52 at 0x00680000
Bad eraseblock 53 at 0x006a0000
Bad eraseblock 54 at 0x006c0000
Bad eraseblock 55 at 0x006e0000
Bad eraseblock 56 at 0x00700000
Bad eraseblock 57 at 0x00720000
Bad eraseblock 58 at 0x00740000
Bad eraseblock 59 at 0x00760000
Bad eraseblock 60 at 0x00780000
Bad eraseblock 61 at 0x007a0000
Bad eraseblock 62 at 0x007c0000
Bad eraseblock 63 at 0x007e0000
Bad eraseblock 64 at 0x00800000
Bad eraseblock 65 at 0x00820000
Bad eraseblock 66 at 0x00840000
Bad eraseblock 67 at 0x00860000
Bad eraseblock 68 at 0x00880000
Bad eraseblock 69 at 0x008a0000
Bad eraseblock 70 at 0x008c0000
Bad eraseblock 71 at 0x008e0000
Bad eraseblock 72 at 0x00900000
Bad eraseblock 73 at 0x00920000
Bad eraseblock 74 at 0x00940000
Bad eraseblock 75 at 0x00960000
Bad eraseblock 76 at 0x00980000
Bad eraseblock 77 at 0x009a0000
Bad eraseblock 78 at 0x009c0000
Bad eraseblock 79 at 0x009e0000
Bad eraseblock 80 at 0x00a00000
Bad eraseblock 81 at 0x00a20000
Bad eraseblock 82 at 0x00a40000
Bad eraseblock 83 at 0x00a60000
Bad eraseblock 84 at 0x00a80000
Bad eraseblock 85 at 0x00aa0000
Bad eraseblock 86 at 0x00ac0000
Bad eraseblock 87 at 0x00ae0000
Bad eraseblock 88 at 0x00b00000
Bad eraseblock 89 at 0x00b20000
Bad eraseblock 90 at 0x00b40000
Bad eraseblock 91 at 0x00b60000
Bad eraseblock 92 at 0x00b80000
Bad eraseblock 93 at 0x00ba0000
Bad eraseblock 94 at 0x00bc0000
Bad eraseblock 95 at 0x00be0000
Bad eraseblock 96 at 0x00c00000
Bad eraseblock 97 at 0x00c20000
Bad eraseblock 98 at 0x00c40000
Bad eraseblock 99 at 0x00c60000
Bad eraseblock 100 at 0x00c80000
Bad eraseblock 101 at 0x00ca0000
Bad eraseblock 102 at 0x00cc0000
Bad eraseblock 103 at 0x00ce0000
Bad eraseblock 104 at 0x00d00000
Bad eraseblock 105 at 0x00d20000
Bad eraseblock 106 at 0x00d40000
Bad eraseblock 107 at 0x00d60000
Bad eraseblock 108 at 0x00d80000
Bad eraseblock 109 at 0x00da0000
Bad eraseblock 110 at 0x00dc0000
Bad eraseblock 111 at 0x00de0000
Bad eraseblock 112 at 0x00e00000
Bad eraseblock 113 at 0x00e20000
Bad eraseblock 114 at 0x00e40000
Bad eraseblock 115 at 0x00e60000
Bad eraseblock 116 at 0x00e80000
Bad eraseblock 117 at 0x00ea0000
Bad eraseblock 118 at 0x00ec0000
Bad eraseblock 119 at 0x00ee0000
Bad eraseblock 120 at 0x00f00000
Bad eraseblock 1945 at 0x0f320000
Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x00000000-0x00080000 : "Board_uboot"
0x00240000-0x00440000 : "Board_kernel"
0x00440000-0x0ff80000 : "Board_yaffs2"
mice: PS/2 mouse device common for all mice
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c2440-i2c: bus frequency set to 99 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
Reading data from NAND FLASH without ECC is not recommended
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs: MTD device does not support have the right page sizes
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs: yaffs_GutsInitialise()
block 2 is bad
block 3 is bad
block 4 is bad
block 5 is bad
block 6 is bad
block 7 is bad
block 8 is bad
block 9 is bad
block 10 is bad
block 11 is bad
block 12 is bad
block 13 is bad
block 14 is bad
block 15 is bad
block 16 is bad
block 17 is bad
block 18 is bad
block 19 is bad
block 20 is bad
block 21 is bad
block 22 is bad
block 23 is bad
block 24 is bad
block 25 is bad
block 26 is bad
block 27 is bad
block 28 is bad
block 29 is bad
block 30 is bad
block 31 is bad
block 32 is bad
block 33 is bad
block 34 is bad
block 35 is bad
block 36 is bad
block 37 is bad
block 38 is bad
block 39 is bad
block 40 is bad
block 41 is bad
block 42 is bad
block 43 is bad
block 44 is bad
block 45 is bad
block 46 is bad
block 47 is bad
block 48 is bad
block 49 is bad
block 50 is bad
block 51 is bad
block 52 is bad
block 53 is bad
block 54 is bad
block 55 is bad
block 56 is bad
block 57 is bad
block 58 is bad
block 59 is bad
block 60 is bad
block 61 is bad
block 62 is bad
block 63 is bad
block 64 is bad
block 65 is bad
block 66 is bad
block 67 is bad
block 68 is bad
block 69 is bad
block 70 is bad
block 71 is bad
block 72 is bad
block 73 is bad
block 74 is bad
block 75 is bad
block 76 is bad
block 77 is bad
block 78 is bad
block 79 is bad
block 80 is bad
block 81 is bad
block 82 is bad
block 83 is bad
block 84 is bad
block 85 is bad
block 86 is bad
block 87 is bad
block 1912 is bad
yaffs: yaffs_GutsInitialise() done.
VFS: Mounted root (yaffs2 filesystem).
mount_devfs_fs(): unable to mount devfs, err: -2
Freeing init memory: 92K
Warning: unable to open an initial console.
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
继续加油!