本文转载自【微信公众号:羽林君,ID:Conscience_Remains】,经微信公众号授权转载,如需转载与原文作者联系
总述
这是之前调试遇到过的一个问题,这次就发出来分享一下,Kernel panic - not syncing: No initfound. Try passing init= option tokernel. See Linux Documentation/init.txt for guidance.s 打印信息如上,我一直以为这是初始化的问题,然后找资料,有些文章说是eabi编译选项的问题,然而发现是错误的,所以就记录下来,虽然说不是硬核的技术文章,但是希望可以帮到类似问题的人多一个正解。
这是我编译完新的内核加载之后出现的bug:
然后在网上找一些资料,会有人这么说
说是eabi编译选项的问题,但是我修改之后发现问题依旧没有解决掉,这个时候发现我的分区地址有些不一样
后来我在StackOverflow上面也找到类似的Kernel panic - not syncing,表明我的分区地址有问题
知道这个问题之后,我反查发现是单板的型号选择出现问题,uboot通过对machid进行识别,进而设置不同的分区大小,
本次调试的 在UBOOT里,有两个相近的ID:
set machid 16a // 代表smdk2440 mach-smdk2440.c
set machid 7CF // 代表mini2440 mach-mini2440.c
然后我在uboot源码查看,发现目前的分区的地址是mini2440的分区,然后我在uboot启动中重新设置set machid 16a
文件系统就可以正常挂载了