Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentat

在移植嵌入式linux时,串口打印出错误信息“Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.......”

产生错误的原因是文件系统内的init程序不能被执行。

有一个很有意思的现象是,我们在做第一次移植时不会产生这种错误,而在第二次第三次.....移植则可能出现这种错误。

其实问题的根源在我们复制文件出了问题。制作文件系统除了使用busybox生成必要的文件,还要复制交叉编译器的库文件以及自定义启动文件。将这么多的文件整理完然后打包,形成我们的文件系统镜像。在第一次移植时,我们会按步骤逐个文件的复制或创建,这个过程没有问题;而在后续的移植过程中,我们很可能为图方便,将第一次制作的且这次不需要修改的文件复制过来使用。在复制过程中,如果我们使用cp命令,则文件的软链接及权限都会发生变化,这将导致烧录到开发板后文件系统内的程序不能执行。正确的做法是,在复制时使用cp -a,这能保留文件的软链接及权限。在整理完全部文件后,可进入制作的文件系统内,使用ll命令检查文件的软链接和权限是否完好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值