最近在学习Linux内核移植,将Linux-2.6.32.2内核按照http://singleboy.blog.163.com/blog/static/5490019420114251536390/的步骤,移植到友善之臂的MINI2440开发板,加载了yaffs2根文件系统,挂载NFS网络根文件系统时一切正常,将文件系统烧写到NAND Flash中启动时确被卡在了 Failed to execute /linuxrc. Attempting defaults... Kernel panic - not syncing: No init found. Try passing init= option to kernel. 无法继续进行下去,已经确认使用友善开发板光盘自带的Linux内核可以正常进入根文件系统,一旦使用自己移植的内核却无法进入。确认问题出在了自己移植的内核上面。 随后,又按照“【申嵌培训】Mini2440 Linux移植开发实战指南-内核部分2010-9-9.pdf”重新移植了一遍,结果问题依旧。怀疑是在内核配置上面出的一些问题。 经过将友善之臂官方移植好内核源码运行“make menuconfig”之后,与自己移植的源码的“make menuconfig”进行对比,发现了不同之处: 在:File Systems ---> [*]Miscellaneous filesystems ---> [*]Enable yaffs2 xattr support 如下图所示: 左边的是友善官方给的源码的配置界面,右面的是我自己移植的配置界面([*]Enable yaffs2 xattr support 原来是选中的)。经过对比发现,多了三行配置,只有Enable yaffs2 xattr support 这一项是选中的,按空格键取消选中,退出保存,重新编译生成Image,烧写到开发板nand flash中,发现成功进入到了根文件系统 问题解决。