“No init found. Try passing init= option to kernel”这个问题困扰了我两天才解决,在网上也查了很多资料,基本上都答案一样的,当然也可能是造成这个原因的一种,现在把它们小结一下:
1、首先保证在uboot中使用nand write.yaffs x x x,而不是nand write
2、保证内核支持nand驱动以及yaffs2,需要注意的是不需要yaffs2文件系统进行ecc校验交给内核的MTD完成即可!
3、保证文件系统格式正确,根据nand的特性“pagesize”“ecctype”就可以了,一般的OOB都是“64Byte”具体需要看手册“spare area”的Value
4、保证在进行nand write.yaffs 命令中烧写的文件系统的大小必须是真实大小,精确到K,例如:
write_yaffs2:
1.1 com:
(18.2M:0x1246440):
nand erase 0x600000 0x5100000;mw.b 0x82000000 ff 0x1246440;loadb 0x82000000;nand write.yaffs 0x82000000 0x600000 0x1246440;reset (128M,81M,20M)
nand erase 0x600000 0x7D00000;mw.b 0x82000000 ff 0x1246440;loadb 0x82000000;nand write.yaffs 0x82000000 0x600000 0x1246440;reset (256M,125M,20M)
5、yaffs2文件系统制作命令:
root@u12d32:/qy_work/a3518_v080_develop/fs_kernel# ./mkyaffs2image
mkyaffs2image: image building tool for YAFFS2, last update Jun 25 2014 20:40:22.
Version: Linux-2.6.35-Google Nand Controller V301
Usage:
mkyaffs2image dir image pagesize ecctype [-v].
dir the directory tree to be converted
image the output file to hold the image
pagesize the page size to be converted
0 : 512 Bytes pagesize
1 : 2K Bytes pagesize
2 : 4K Bytes pagesize
3 : 8K Bytes pagesize
ecctype ECC type
0 : no ecc
1 : used 1bit ecc
2 : used 4byte ecc
3 : used 8byte ecc
4 : used 24bit/1k ecc
-v verbosely list files processed
root@u12d32:/qy_work/a3518_v080_develop/fs_kernel#
我实际使用的命令为2k、1bit:
{