日期:2014-05-16  浏览次数:20710 次

挂载yaffs2错误:Kernel panic - not syncing: No init found. Try passing init
在挂载yaffs2时出现在

0x00000000-0x00040000 : "uboot"
0x00040000-0x00060000 : "uboot-argv"
0x00060000-0x00260000 : "kernel"
0x00260000-0x10000000 : "rootfs"

yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs2 filesystem).
Freeing init memory: 132K
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.

这样的错误,其中我的用来做yaffs2镜像的根文件系统采用nfs是能挂载起来的,但挂载yaffs2就不行。
烧写的地址就是0x260000

内核启动参数: bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rw noinitrd init=/linuxrc rootfstype=yaffs2

而且在nfs里mount了mtdblock3 后直接复制根文件系统到里面就可以,请问大家这是什么问题?怎么解决?

采用网上的
mknod null 和console解决不了。

请教大家啊~~

------解决方案--------------------
mkyaffs2image制作出的yaffs2映像文件格式不对。
------解决方案--------------------
制作yaffs2镜像的工具mkyaffs2image已经跟不上时代了,要手动修改,将所有OOB数据后移两个字节,并注意ECC算法和内核中选择的ECC算法要匹配。
详细描述可以自己Google一下mkyaffs2image工具的修改问题。

在下载的yaffs2的源码包中有一个utils目录,该目录中的mkyaffs2image.c即是mkyaffs2image的源代码。主要就是修改这个文件中的write_chunk函数。

具体修改可参照
http://read.pudn.com/downloads128/sourcecode/embed/541512/yaffs2/utils/mkyaffs2image.c__.htm