问题点:
1 YAFFS2根文件系统无法挂载
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
原因:mkyaffs2image工具有问题,制作的YAFFS2文件系统不能被内核识别,参考:http://blog.csdn.net/itismine/article/details/4799770,重新编译支持128M nandflash的YAFFS2文件系统,成功解决。
2,ECC 校验没有关闭
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
FAT: unable to read boot sector
VFS: Cannot open root device "mtdblock2" or unknown-block(31,2)
Please append a correct "root=" boot option; here are the available partitions:
1f00 2048 mtdblock0 (driver?)
1f01 8192 mtdblock1 (driver?)
1f02 120832 mtdblock2 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
【原因】:一般是NAND ECC校验错误:内核编译启用了MTD的ECC,文件系统制作过程禁用了的ECC;
【解决】:禁用内核编译时的MTD的ECC:
drivers/mtd/nand/s3c2410.c
将chip->ecc.mode = NAND_ECC_SOFT;
改为 chip->ecc.mode = NAND_ECC_NONE;
3, Kernel panic - not syncing: Attempted to kill init!
【原因】:内核和文件系统编译时选用的配置不一致:一般是文件系统启用了ARM EABI,但内核编译时,未打开此编译选项;
【解决】:make menuconfig
Kernel Features ---> [*] Use the ARM EABI to compile the kernel [*] Allow old ABI binaries to run with this kernel (EXPERIMENTA)