解决hi3716的机顶盒烧录SDK遇到的Kernel panic - not syncing: No init found. Try passing init= option to kernel

在这里插入图片描述
机顶盒使用的的hi3716mv300芯片,SDK是自己编译的,make版本4.1,可能是版本太高导致编译的时候一堆问题,至今不知道怎么解决:(


如上图所示,写了路径的都是通过网口烧录的,bootargs是我通过串口发送的文件命令,命令复制于SDK中的install_notes.txt文件.

每一次都显示如下错误:
Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.

在看了这篇文章之后,我对bootargs有了一定了解,参考那个install_notes.txt里面给出的命令,我确定是因为里面的命令少了init=/linuxrc。完整的命令应该是:

setenv bootcmd 'nand read 0x82000000 0x100000 0x400000;bootm 0x82000000'

setenv bootargs 'mem=96M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hinand:1M(boot),4M(kernel),60M(rootfs),1M(baseparam),1M(logo),20M(fastplay),-(others) mmz=ddr,0,0x86000000,160M DmxPoolBufSize=0x200000 init=/linuxrc'

saveenv

reset

如果分区和文件系统和我的不一样,不可照搬,有些地方要修改


重新设置了bootargs后,还是出现上面的错误.
这可能是因为文件系统里面没有/linuxrc文件,可以看看pub目录下的rootbox文件夹,我这个文件夹里面就没有这个文件.可以下载busybox,编译好后,把_install文件夹里面的文件复制到rootbox1.修改makefile里面的的文件系统的编译部分,主要是把里面的前置条件rootfs去掉,防止rootbox被修改,然后重新编译文件系统


  1. make menuconfig,make,make install来自<Linux开发环境用户指南> ↩︎

猜你喜欢

转载自blog.csdn.net/zhaojun666/article/details/115200570
今日推荐